경계선 : 계층 구조의 개념이 널리 적용
유스케이스 : 도메인 계층의 분리로 소스코드 변경 안정성이 높아짐
소스코드 변경되어도 유스케이스만 교체하면 된다
험블 오브젝트 : 프리젠테이션 계층의 테스트 가능성, 가독성, 유지보수성을 향상
의존성 역전 : modular한 프로젝트 구조의 확산(모듈 단위)
컴포넌트 간의 의존 관계를 소스코드 내부가 아닌 외부 설정 파일등을 통해 정의되게 하는 디자인 패턴 중 하나
객체를 직접 생성하지 않고 외부에서 주입한 객체를 사용하는 방식
인스턴스 간 디커플링을 만들어줌 -->> 유닛테스트 용이성 증대
ex> Hilt, Dagger
중앙 등록자인 'Service Locator'를 통해 요청이 들어왔을 때 특정 인스턴스 반환
apk 크기, 빌드 속도, 메서드 수 등 복잡한 제약이 있는 경우 사용하기 편함
ex> Koin (경량화된 DI라고 소개하지만, 내부 동작은 Service Locator로 봐도 무방)
장점 : DI에 비해 application 크기 작다 /
빌드 속도 빠르다 / DI보다 메서드 수 적다
@@ 대표 키워드 @@
@@ 장점 @@
@@ 단점 @@
런타임 시 주입이 필요한 컴포넌트가 생성이 되어있지 않는 파라미터가 존재하는 경우 크래시 발생
컴파일 타임에 주입 대상을 정하는 DI에 비해 런타임에 서비스 로케이팅을 통해 인스턴스를 동적으로 주입해주기 때문에 런타임 퍼포먼스가 떨어진다