‘만들면서 배우는 클린 아키텍처’ 기술 서적을 읽고 학습 내용을 정리하기 위한 목적의 TIL 포스팅입니다🙆♂️ 예제코드는 깃허브 레포지토리를 참고해주세요.
12장 - 아키텍처 스타일 결정하기
- 언제 실제로 육각형 아키텍처 스타일을 사용해야 할까? 그리고 언제 전통적인 계층형 아키텍처 스타일(혹은 그외의 어떤 스타일이든)을 고수해야 할까? 에 대해 알아보자.
도메인이 왕이다
- 영속성 관심사나 외부 시스템에 대한 의존성 등의 변화로부터 자유롭게 도메인 코드를 개발할 수 잇는 것이 육각형 아키텍처 스타일의 주요 특징이라는 점이 명확해졌을것이다.
- “외부의 영향을 받지 않고 도메인 코드를 자유롭게 발전시킬수 있다는것은 육각형 아키텍처 스타일이 내세우는 가장 중요한 가치다” 이것이 도메인 주도 설계 방식과 정말 잘 어울리는 이유다.
- DDD에선 도메인이 개발을 주도한다. 그리고 영속성 문제나 다른 기술적인 측면에 대해서 함께 생각할 필요가 없게되면 도메인에 대해 가장 잘 고려할 수 있게 된다.
- 육각형 스타일과 같은 도메인 중심의 아키텍처 스타일은 DDD의 조력자라고까지 말할수 있다.
- 도메인을 중심에 두는 아키텍처 없이는, 또 도메인 코드를 향한 의존성을 역전시키지 않고서는, DDD를 제대로 할 가능성이 없다. 즉, 설계가 항상 다른 요소들에 의해 주도되고 말것이다.
- 만약 도메인 코드가 애플리케이션에서 가장 중요한것이 아니라면 이 아키텍처 스타일은 필요하지 않을것이다.
경험이 여왕이다
- 인간은 습관의 동물이다. 습관이 저절로 결정을 내리기에 우리는 무언가를 결정할때 시간을 들일 필요가 없다.
- 만약 새로운 웹 애플리케이션을 만든다면 습관처럼 계층형 아키텍처 스타일을 이용할수도 있다. 이는 나쁜 결정이라 말하는것은 아니다.
- 아키텍처 스타일에 대해서 괜찮은 결정을 내리는 유일한 방법은 다른 아키텍처 스타일을 경험해보는것이다.
- 육각형 아키텍처에 대한 확신이 없다면 지금 만들고 있는 애플리케이션의 작은 모듈부터 먼저 시도해보자. 개념에 익숙해지고 스타일에 익숙해져보자.
- 이 책에 있는 아이디어들을 적용하고, 수정하고, 자신만의 아이디어를 추가해서 편하게 느껴지는 스타일을 개발해보자.
- 그러면 이 경험이 다음 아키텍처 결정을 할때 도움을 줄것이다.
그때그때 다르다
- 어떤 아키텍처 스타일을 선택해야 하는지는 그때그때 다르다.
- 어떤 소프트웨어를 만드느냐에 따라서
- 도메인 코드의 역할에 따라서
- 팀의 경험에 따라서
- 최종적으로 내린 결정이 마음에 드느냐에 따라서