Server System/Software Architecture

클린 아키텍쳐 vs 헥사고날 아키텍쳐 (2)

알파해커 테크노트 2024. 6. 5. 19:33
반응형

2024.06.03 - [Server System/Software Architecture] - 클린 아키텍쳐 vs 헥사고날 아키텍쳐 (1)

 

클린 아키텍쳐 vs 헥사고날 아키텍쳐 (1)

클린아키텍쳐를 처음 소개한 Bob Martin의 블로그(blog entry about Clean Architecture)에 다음과 같은 말이 나온다(https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)."The diagram at the top of this article [

alphahackerhan.tistory.com

클린 아키텍쳐, 헥사고날 아키텍쳐의 공통의 목표와 의존성 방향에 대한 이해를 하고 싶다면, 위 포스팅 내용을 확인해주세요!


 

지난 포스팅에서 두 아키텍쳐의 공통적인 목표가 무엇인지, 그 목표를 달성하기 위해 가장 핵심적인 요소가 무엇인지 살펴봤다.

이번에는 그 공통의 목표를 달성하기 위해서 두 아키텍쳐가 어떤 이름으로 개념들을 설명하는지, 차이점은 무엇인지에 대해서 알아보자.


“헥사고날 아키텍처 Hexagonal Architecture는 클린 아키텍처를 구현하는 가장 대표적인 모델입니다.”

 

앞서 의존성 방향에 대한 설명을 잘 이해했다면, 이제 클린 아키텍쳐 그림이나 헥사고날 아키텍쳐 그림에서 표현된 화살표 방향의 의미를 이해할 수 있을 것이다.

 

클린 아키텍쳐에서는 외부 요소 영역을 아래 이미지에서 파란색(Frameworks & Drivers)으로, 비즈니스 로직이 있는 도메인 영역을 빨간색(Application Business Rules)과 노란색(Enterprise Business Rules)로 표현했다. 그리고 외부 요소의 영역과 도메인 영역을 연결해주는 인터페이스를 초록색(Interface Adapters)으로 표현했다. (그리고 의존성 방향은 외부에서 도메인으로 향한다)

 

 

헥사고날 아키텍쳐에서는 포트(Ports)와 어댑터(Adapters)라는 개념을 이용해서 외부 요소 영역과 도메인 영역을 연결해주는 인터페이스를 구현했다. 클린 아키텍쳐에서 Interface Adapters의 역할이라고 볼 수 있다.

  • 포트: 내부 도메인 로직을 외부와 연결하는 추상적인 인터페이스.
  • 어댑터: 포트를 구현하여 실제 외부 시스템과 상호작용하는 구현체.

 

그리고 클린아키텍쳐에서 Usecase와 Entity를 통해 표현된 도메인 영역을 Application Service와 Domain Model이라는 개념으로 표현했다. 아래 그림에서는 노란색 구름 모양으로 표현한 것이 외부 요소 영역이다.

 

 

 

반응형