학습노트에서 용어를 누르면 여기로 옵니다. 각 용어의 동작 원리·트레이드오프·과설계 경계를 정리했습니다.
17개 용어 · 상세 정리 17개
UI·도메인·데이터로 나누고 의존을 위에서 아래로만 흐르게 하는 권장 구조.
의존성 화살표가 항상 안쪽(도메인)을 향하게 하는 구조. 격리를 얻고 보일러플레이트를 낸다.
계층 경계에서 모델을 변환하는 함수. 스키마 변경의 파급을 경계에서 끊는다.
상태는 아래로, 이벤트는 위로만 흐르게 하는 규칙. 상태 변경 경로를 하나로 만든다.
토스트·네비게이션처럼 한 번만 소비돼야 하는 신호. 상태가 아니라 별도 스트림으로 보낸다.
화면 전체를 하나의 불변 객체로 표현한 것. 일회성 이벤트는 여기 넣지 않는다.
구성 변경을 넘어 살아남으며 UI 상태를 보유하는 컴포넌트. 화면보다 오래 산다.
앱을 여러 Gradle 모듈로 쪼개는 것. 빌드 속도와 경계 강제를 얻는다.
의존성을 감추느냐 내보내느냐. 이 한 줄이 재컴파일 범위를 정한다.
상태를 컴포저블 밖으로 끌어올려 재사용·테스트 가능하게 만드는 패턴.
ViewModel이 프로세스 종료까지 상태를 넘기게 해 주는 Bundle 기반 저장소.
로컬 DB를 진실의 원천으로 삼고 네트워크는 그것을 갱신만 하는 구조.
데이터 출처를 감추고 단일 출처를 제공하는 계층. 오프라인 우선에서는 DB가 진실의 원천이다.
주입된 객체가 얼마나 오래 살아 있고 누구와 공유되는지를 정하는 범위.
Dagger 기반의 컴파일 타임 의존성 주입 라이브러리. 안드로이드 컴포넌트에 자동으로 연결된다.
코틀린 DSL 기반의 런타임 DI. 학습·빌드가 가볍지만 누락이 런타임에 드러난다.
하나의 비즈니스 동작을 캡슐화한 클래스. 여러 Repository를 조합하거나 규칙이 복잡할 때 쓴다.