[Flutter] 자동 종속성 관리 - Binding

Obebe·2025년 4월 13일

Flutter

목록 보기
8/10

앞서 종속성에 대해 알아보고 크게 Get.put과 Get.lazyPut의 차이에 대해 알아보았습니다.


이번 글에서는 GetX에서 자동 종속성 관리인 Binding에 대해 알아보겠습니다.

https://pub.dev/documentation/binding/latest/

🔗 Binding

Binding은 GetX에서 종속성 주입을 자동으로 관리하는 기능으로 페이지 전환 시 필요한 컨트롤러를 자동으로 등록/해제해주므로, 더 깔끔하고 효율적인 코드를 작성할 수 있습니다.

✅ Binding을 사용하는 이유

❌ Get.put()을 직접 여러 번 쓰면 코드 중복 발생

❌ 컨트롤러 삭제(Get.delete())를 직접 처리해야 함

✅ Binding을 쓰면 페이지 진입 시 자동 등록, 이탈 시 자동 제거

✨ 사용 예제

// controller.dart

class HomeController extends GetxController {
  var count = 0.obs;
  void increment() => count++;
}
// binding.dart

class HomeBinding extends Bindings {
  @override
  void dependencies() {
    Get.lazyPut<HomeController>(() => HomeController());
  }
}
// main.dart

GetMaterialApp(
  initialRoute: '/',
  getPages: [
    GetPage(
      name: '/',
      page: () => HomePage(),
      binding: HomeBinding(),
    ),
  ],
);

페이지 전환 시 자동으로 HomeController가 생성되고, 페이지가 제거되면 메모리에서 정리됩니다.

📌 Binding을 사용하기 좋은 상황

상황설명
View와 Controller가 1:1 대응각 페이지마다 컨트롤러 하나씩 있을 때
컨트롤러를 자동으로 관리하고 싶을 때Get.put() / Get.delete() 없이 깔끔하게 관리
유지보수성을 높이고 싶을 때코드가 명확하게 분리됨 (페이지 단위로 관리)
profile
다른 건 노력의 시간

0개의 댓글