💻/BOOK
만들면서 배우는 클린 아키텍처 - (1) 계층형 아키텍처의 문제는 무엇일까?
김씨리
2023. 2. 8. 23:12
기술 서적은 기록을 해두지 않으면 금방 잊어버리는 것 같다...
필요한 내용을 찾을 때 뭔가 관련된 부분이 있었는데 하는 생각은 들지만 바로 찾아내기는 어려울 때도 많아서, 아무튼 내용 정리의 중요성을 느끼고 진짜 간단하게 작성하는 글.
계층형 아키텍처는 데이터베이스 주도 설계를 유도한다.
전통적인 계층형 아키텍처의 토대 = 데이터베이스
앱을 만드는 목적은 state가 아니라 behavior!
그런데 우리는 늘 db를 먼저 생각해왔다. → orm을 쓰기 때문
orm에 의해 관리되는 엔티티는 영속성 계층.
계층은 아래 방향으로만 접근 가능하므로 도메인과 강한 결합이 생긴다.
지름길 모드
점점 쉽게 접근할 수 있는 지름길 모드를 추구하게 되어 영속성 계층이 비대해질 것…
테스트 어려움
엔티티의 필드를 하나만 조작하면 되는 경우, 도메인 건너뛰고 웹 → 영속성 접근하는 방법을 쓸 수도.
- 문제점 1) 도메인 로직을 웹 계층에서 구현하게 된다.
- 문제점 2) 웹 계층 테스트에서 도메인 계층뿐만 아니라 영속성 계층도 mocking 해야 한다. ⇒ 단위 테스트 복잡도 올라감
유스케이스 숨김
‘너비’를 강제하지 않기 때문에 시간이 지나면 여러 유스케이스를 담당하는 아주 넓은 서비스가 만들어지기도 한다.
넓은 서비스는,
- 영속성 계층에 많은 의존성 갖게 됨
- 웹 계층의 많은 컴포넌트가 이 서비스에 의존
- 테스트하기 어려워지고
- 작업해야 할 유스케이스를 책임지는 서비스를 찾기도 어려워진다
⇒ 그럼 고도로 특화된 좁은 도메인 서비스가 유스케이스 하나씩만 담당하게 한다면!!
「만들면서 배우는 클린 아키텍처-자바 코드로 구현하는 클린 웹 애플리케이션」 을 읽고 개인 학습용으로 정리한 내용입니다.