💻/BOOK

만들면서 배우는 클린 아키텍처 - (1) 계층형 아키텍처의 문제는 무엇일까?

김씨리 2023. 2. 8. 23:12

 

기술 서적은 기록을 해두지 않으면 금방 잊어버리는 것 같다...

필요한 내용을 찾을 때 뭔가 관련된 부분이 있었는데 하는 생각은 들지만 바로 찾아내기는 어려울 때도 많아서, 아무튼 내용 정리의 중요성을 느끼고 진짜 간단하게 작성하는 글.

 

 

 


 

계층형 아키텍처는 데이터베이스 주도 설계를 유도한다.

전통적인 계층형 아키텍처의 토대 = 데이터베이스

앱을 만드는 목적은 state가 아니라 behavior!

그런데 우리는 늘 db를 먼저 생각해왔다. → orm을 쓰기 때문

orm에 의해 관리되는 엔티티는 영속성 계층.

계층은 아래 방향으로만 접근 가능하므로 도메인과 강한 결합이 생긴다.

 

 

지름길 모드

점점 쉽게 접근할 수 있는 지름길 모드를 추구하게 되어 영속성 계층이 비대해질 것…

 

 

테스트 어려움

엔티티의 필드를 하나만 조작하면 되는 경우, 도메인 건너뛰고 웹 → 영속성 접근하는 방법을 쓸 수도.

  • 문제점 1) 도메인 로직을 웹 계층에서 구현하게 된다.
  • 문제점 2) 웹 계층 테스트에서 도메인 계층뿐만 아니라 영속성 계층도 mocking 해야 한다. ⇒ 단위 테스트 복잡도 올라감

 

 

유스케이스 숨김

‘너비’를 강제하지 않기 때문에 시간이 지나면 여러 유스케이스를 담당하는 아주 넓은 서비스가 만들어지기도 한다.

넓은 서비스는,

  • 영속성 계층에 많은 의존성 갖게 됨
  • 웹 계층의 많은 컴포넌트가 이 서비스에 의존
  • 테스트하기 어려워지고
  • 작업해야 할 유스케이스를 책임지는 서비스를 찾기도 어려워진다

⇒ 그럼 고도로 특화된 좁은 도메인 서비스가 유스케이스 하나씩만 담당하게 한다면!!

 

 

 

 


「만들면서 배우는 클린 아키텍처-자바 코드로 구현하는 클린 웹 애플리케이션」 을 읽고 개인 학습용으로 정리한 내용입니다.