[Kotlin Side Project] Clean Architecture 구현

2022. 3. 4. 17:29Kotlin/Kotlin Side Project

 

  • CA를 적용한 프로젝트 구조를 생성
    • entity : 가장 안쪽의 레이어로, 프레임워크의 제약을 받지 않는 plain object로 구성
    • domain : 비지니스 로직을 처리하는 레이어
    • data : 데이터를 처리하는 레이어
    • presentation : UI를 처리하는 레이어
  • CA 적용은 presentation, data -> domain -> data 방향으로만 의존성이 성립이 되므로, 내부 레이어는 외부 레이어에 대해 알 필요가 없다.(알아서는 안된다.) data -> domain 에서는 이를 구현하기 위해 domain 영역에 repository의 interface를 생성해 DI(의존성 주입)을 통한 의존성 역전을 필요로 한다.
    • presentation -> domain 시, presentation은 domain의 UseCase만을 사용
    • data -> domain 시, data는 domain의 repository interface만을 사용