Dart에서 함수는 숫자·문자열처럼 변수에 담고 넘길 수 있는 값이다. JS와 똑같다. (일반 개념)
doSomething(myHandler) // ✅ 함수 자체를 넘김 (나중에 실행)
doSomething(myHandler()) // ❌ 지금 실행해서 그 결과를 넘김
괄호 ()가 있고 없고의 차이. JS의 addEventListener("click", handler)에서 handler를 넘기는 것과 같다. 이걸 **콜백(callback)**이라 부른다 — "나중에 조건이 되면 대신 불러달라"고 함수를 맡기는 것.
이름 없이 그 자리에서 만드는 함수. Flutter 콜백에 아주 흔하다.
onPressed: () { print("클릭"); } // JS: () => { ... }
onSuccess: (result) { handle(result); } // 인자 받는 즉석 함수
Flutter는 이벤트를 콜백으로 처리한다. 버튼 클릭(onPressed), 성공/실패 핸들러(onSuccess/onError), 푸시 수신 핸들러 등이 전부 "함수를 값으로 넘기는" 패턴이다. 이 프로젝트의 ViewModel도 onSuccess/onError 같은 콜백을 받아 UI에 결과를 전달한다.