본문 바로가기

의존성 주입 프레임워크 koin Dagger 와 같은 Dependency Injection(이하 DI)을 사용하는 것을 종종 볼 수 있다. 각 컴포넌트간의 의존성을 외부 컨테이너에서 관리하는 방식을 통해 코드 재사용성을 높이고 Unit Test도 편하게 할 수 있게 되는 장점을 가지고 있다. 최근에는 코틀린이 안드로이드 앱 개발 공식 언어가 되면서 코틀린의 다양한 언어적 장점을 이용한 DI 라이브러리가 생겨났고 그 중 하나가 Koin 라이브러리다. 사실 엄밀히 따져말하면 Koin은 DI 라이브러리라기 보단 Service Locator Pattern의 구현체라고 봐야한다. Service Locator Pattern 과 Dependency Injection Pattern은 약간의 차이가 있으며 개발자들간에 이를 바라보는 시각도 다양하다.초.. 더보기
Android jetpack Android jetpack : 안드로이드 플랫폼에 속하지 않는 별도의 라이브러리로 안드로이드 앱을 만들기 위한 컴포넌트, 도구 , 지침세트이다. 1) Architecture : Databinding, LifeCycle, LiveData, Navigation, Paging ... 2) UI : Animation, Transitions, Emoji, Fragment, Layout, Pallette 3) Behavior : DownloadManager, Notification, Permission, Sharing, Slices, 4) Foundation : AppCompat, Android KTX, Multidex, Test 새로 추가된 5개의 컴포넌트 : Workmanager, Navigation, Pag.. 더보기
의존성주입 프레임워크 (dagger, dagger2) 1. 의존성 주입 프레임워크가 왜 필요할까? (1) 의존성 파라미터를 생성자에 작성하지 않아도 되니 보일러 플레이트 코드가 줄어든다. (2) 인터페이스에 구현체를 쉽게 교체하면서 상황에 따라 적절한 행동을 정의할수있다. -> 테스팅을 쉽게 할 수 있다. 2. dagger - DI Framework(의존성주입 프레임워크)이며 Square사의 dagger와 Google의 dagger2가 있다. 의존성주입이란 외부에서 의존객체를 생성해서 넘겨주는 것을 의미한다. 예를 들어 a class가 b class를 의존할때 b object를 a가 직접 생성하지 않고 외부에서 생성하여 넘겨주면 의존성을 주입했다고 한다. (2) dagger1 - square 다양한 인젝션 지점, 다양한 바인딩, 다양한 모듈, 다양한 객체 .. 더보기