본문으로 건너뛰기

12 아키텍처 스타일 결정하기

지금까지 육각형 아키텍처 스타일로 웹 애플리케이션을 만드는 방법을 설명했다. 그렇다면 실제로 육각형 아키텍처 스타일을 사용해야 할까? 그리고 언제 육각형 아키텍처 스타일 대신 계층형 아키텍처 스타일을 사용해야할까?

도메인이 왕이다.

지금까지 살펴본 내용을 통해 영속성 관심사나 외부 시스템에 대한 의존성 등의 변화로부터 자유롭게 도메인 코드를 개발할 수 있는 것이 육각형 아키텍처 스타일의 주요 특징이라는 점이 명확해졌을 것이다.

important

외부의 영향을 받지않고 도메인 코드를 자유롭게 발전시킬 수 있다는 것은 육각형 아키텍처 스타일이 내세우는 가장 중요한 가치다.

이것이 육각형 아키텍처 스타일이 도메인 주도 설계 방식과 정말 잘 어울리는 이유다. 당연한 말이지만 DDD에서는 도메인이 개발을 주도한다. 그리고 영속성 문제나 다른 기술적인 측면에 대해서 함께 생각할 필요가 없게 되면 도메인에 대해 가장 잘 고려할 수 있게 된다.

육각형 스타일과 같은 도메인 중심의 아키텍처 스타일은 DDD의 조력자라고까지 말할 수 있다. 도메인 중심에 두는 아키텍처 없이는, 또 도메인 코드를 향한 의존성을 역전시키지 않고서는, DDD를 제대로 할 가능성이 없다. 즉 설계가 항상 다른 요소들에 의해 주도되고 말 것이다.

경험이 여왕이다.

아키텍처 스타일에 대해서 괜찮은 결정을 내리는 유일한 방법은 다른 아키텍처 스타일을 경험해 보는 것이다. 육각형 아키텍처에 대한 확신이 없다면 지금 만들고 있는 애플리케이션의 작은 모듈에 먼저 시도해 보라. 개념에 익숙해지고 스타일에 익숙해져라. 이 책에 있는 아이디어들을 적용하고, 수정하고, 자신만의 아이디어를 추가해서 편하게 느껴지는 스타일을 개발하라.

그러면 이 경험이 다음 아키텍처 결정을 이끌어 줄 것이다.

그때그때 다르다

어떤 아키텍처 스타일을 골라야 하는가에 대한 내 대답은 전문 컨설턴트의 "그때그때 달라요..."와 같다. 어떤 소프트웨어를 만드느냐에 따라서도 다르고, 도메인 코드의 역할에 따라서도 다르다. 팀의 경험에 따라서도 다르다. 그리고 최종적으로는 내린 결정이 마음에 드느냐에 따라서도 다르다.