본문 바로가기
TIL

[TIL] 클린 아키텍처(Clean Architecture)

by chengzior 2024. 12. 24.
  • 클린 아키텍처
    • 계층으로 나누어서 개발하는 아키텍처
    • 의존성 방향은 외부 -> 내부 
      • 내부에서는 외부 계층을 모르도록.
    • 구조
      • Entities : 비즈니스의 핵심 개념 나타내는 객체
        • 예) user, product 클래스
      • Use Cases : 사용자가 시스템을 어떻게 사용할 지 정의하는 애플리케이션의 특정 기능
        • 예) 회원가입, 상품등록
      • Interface Adapters : Use Cases와 Frameworks and Drivers 사이의 중간 역할
        • 예) Controller, Presenter, ViewModel
      • Frameworks and Drivers : 시스템 핵심 업무와는 상관없는 계층
        • 예)Web, Database, UI, 외부 API
      • Entities ⊂ Use Cases ⊂ Interface Adapters ⊂ Frameworks and Drivers
    • 장점
      • 각각의 계층 서로 수정해도 서로 영향 없음(유지 보수 용이)
      • 의존성이 단방향이므로 가짜데이터로 테스트 가능(Mocking)