2.1 네 개의 영역
표현
, 응용
, 도메인
, 인프라스트럭처
는 아키텍처를 설계할 때 출현하는 전형적인 네 가지 영역이다. -p.62
- 솔직히 항상 계층형 아키텍처를 떠올릴때
표현/응용/영속성 + 인프라스트럭처
,혹은 구현 레벨에서
컨트롤러/서비스/리포지토리 + 인프라스트럭처(설정 등)
- 으로 세가지 계층 + 인프라 영역 으로 나누어 생각했기 때문에
- 도메인을 하나의 계층으로 표현하고 인프라를 가장 하단에 표현한 이책의 네 가지 영역의 계층형 아키텍처가 익숙하게 느껴지지 않았다.
- 링크 오션 프로젝트 초기에 고려했던 Facade 패턴과 관련이 깊어 보인다.
2.2 계층 구조 아키텍처
도메인의 복잡도에 따라 응용과 도메인을 분리하기도 하고 한 계층으로 합치기도 하지만 전체적인 아키텍처는 [그림 2.4]의 계층 구조를 따른다. -p.65
응용 계층이 인프라 레이어에 의존하게 되면 생기는 문제점
- 테스트 어려움
- 기능 확장의 어려움
- 네이버 D2의 ArchUnit 아키텍처 검사 규칙을 잘 못 이해해서 프로젝트에 잘못된 의존성 룰을 도입한것 같다. Support 패키지와 Infrastructure 계층을 착각해서 Domain → Infrastructure 계층의 접근이 가능하고 그 역방향 접근을 막아야 되는 것으로 이해 해버렸다. 바꾸어야 겠다.
반대가 되어야 함!!!!
2.3 DIP
DIP - 고수준 모듈은 저수준 모듈에 직접 의존하지 않아야 한다. 고수준 모듈과 저수준 모듈은 모두 추상에 의존해야 한다.