본문 바로가기

전체 글90

get_it + injectable로 의존성 주입 Flutter get_it + injectable로 의존성 주입(DI) 제대로 쓰기목차의존성 주입이 필요한 이유get_it vs injectable 역할 차이실무에서 자주 겪는 문제와 DI 적용 포인트프로젝트 구조 설계 (SOLID & Clean Architecture 기반)코드 예제: Service, Repository, ViewModel 등록 및 주입성능 최적화, 테스트 전략, 유지보수 팁결론1. 의존성 주입이 필요한 이유Flutter 앱이 커질수록 아래와 같은 문제가 발생한다:서비스 객체가 여러 곳에서 중복 생성됨 → 네트워크/DB 커넥션 비용 증가객체 간 결합도가 증가 → 테스트가 어려워지고 유지보수 비용 상승Feature 간 의존성 꼬임 → 리팩터링할 때 연쇄 오류 발생get_it과 inject.. 2025. 12. 8.
Cubit 완전 정복: 실무 중심의 가이드 Cubit 완전 정복: 실무 중심의 가이드Flutter 앱 개발 시 상태 관리는 성능, 유지보수성, 개발 생산성에 직결되는 중요한 요소입니다. 많은 상태관리 라이브러리 중 Bloc 패키지의 하위 개념인 Cubit은 더 간결하면서도 실무에서 자주 활용되는 구조로 각광받고 있습니다. 본 글에서는 실무 환경에서 자주 마주하는 문제와 Cubit을 통한 해결 방안, 코드 예시, 성능 최적화 및 테스트 전략까지 폭넓게 다루어보겠습니다.목차Cubit이란 무엇인가?Cubit vs Bloc: 언제 어떤 것을 선택할까?Cubit 구조 이해하기실무에서 자주 쓰이는 패턴코드 예제: ToDo 앱 상태 관리성능 최적화 고려사항테스트 전략유지보수 및 확장성 팁1. Cubit이란 무엇인가?Cubit은 bloc 패키지에서 제공하는 클.. 2025. 8. 8.
Flutter의 PaintingBinding 완전 이해하기 Flutter 프레임워크는 여러 개의 Binding 클래스를 통해 시스템을 구성합니다. 그중 PaintingBinding은 렌더링 파이프라인의 하위 시스템 중 그래픽 리소스 관리 및 페인팅 관련 기능을 담당하는 핵심 클래스입니다. 이번 글에서는 PaintingBinding의 구조와 역할, 실무에서 마주치는 사례, 그리고 성능 최적화에 필요한 인사이트를 함께 살펴보겠습니다.목차Binding 시스템 이해하기PaintingBinding의 정의와 역할실무에서의 활용 사례성능 최적화와 페인팅 캐시커스텀 페인팅과의 연관성테스트 및 유지보수 고려사항맺으며1. Binding 시스템 이해하기Flutter에서 Binding은 애플리케이션의 다양한 레이어를 초기화하고 결합하는 역할을 합니다. WidgetsBinding, R.. 2025. 7. 29.
Flutter에서 RepaintBoundary란? RepaintBoundary 성능 최적화를 위한 핵심 위젯Flutter로 앱을 개발할 때 퍼포먼스 최적화는 매우 중요한 요소입니다. 특히 복잡한 UI 구성이나 애니메이션이 많은 화면에서는 불필요한 위젯 리빌드 및 리페인트를 방지하는 것이 중요하죠. 이때 활용할 수 있는 위젯이 바로 RepaintBoundary입니다.이 글에서는 RepaintBoundary의 개념부터 사용 방법, 실전 적용 사례까지 상세히 설명합니다.1. RepaintBoundary란?RepaintBoundary는 Flutter 렌더링 파이프라인에서 위젯의 리페인트 범위를 분리하여 불필요한 리페인트를 방지하는 역할을 합니다.쉽게 말해, 해당 위젯 이하를 독립적인 렌더링 단위로 묶어주는 역할을 합니다.왜 필요할까?Flutter는 위젯 트리에.. 2025. 7. 16.
Flutter에서 get_it을 활용한 안전한 비동기 초기화 및 Splash 화면 구성 방법 앱을 개발하다 보면 SharedPreferences, 로컬 데이터베이스(SQLite, Hive 등), HTTP 클라이언트(Dio 등)와 같은 객체들을 앱 시작과 동시에 초기화해야 할 때가 많습니다. 이때 중요한 점은 이러한 리소스를 완전히 초기화한 뒤에야 실제 앱 로직이 실행되어야 한다는 것입니다.Flutter에서는 이를 효율적으로 처리하기 위해 get_it 패키지를 사용할 수 있습니다. 본 글에서는 get_it의 signalsReady 기능을 활용하여 Splash 화면에서 비동기 초기화를 안전하게 마친 후 앱을 시작하는 방법을 자세히 소개합니다.목차get_it 소개 및 설치signalsReady란?초기화가 필요한 객체 예시Splash 화면 구성전체 구조 예제마무리 및 추천사항1. get_it 소개 및 .. 2025. 6. 5.
Flutter에서의 의존성 주입(DI, Dependency Injection) 완전 정복 의존성 주입(Dependency Injection, 이하 DI)은 모듈 간의 결합도를 낮추고 테스트 및 유지보수를 용이하게 하기 위한 핵심 디자인 패턴입니다. Flutter에서도 DI를 효과적으로 적용하면 앱의 구조를 더 탄탄하게 만들 수 있습니다. 이 글에서는 Flutter에서의 DI 개념, 활용 방법, 주요 라이브러리, 실전 예제까지 상세히 다루어 보겠습니다.목차의존성 주입이란?Flutter에서 DI를 사용하는 이유Flutter에서의 주요 DI 방법3.1 Constructor Injection3.2 Provider 패턴3.3 GetIt을 활용한 서비스 로케이터 패턴주요 DI 라이브러리 비교실전 예제: Flutter 앱에 DI 적용하기테스트와 유지보수 측면에서 DI의 이점결론 및 추천 가이드라인1. 의.. 2025. 6. 5.