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