Topic

Hexagonal Architecture

JackerLab 2025. 5. 5. 12:06
728x90
반응형

개요

Hexagonal Architecture(육각형 아키텍처)는 어플리케이션의 핵심 도메인 로직을 외부와 분리하여 유연성과 테스트 용이성을 극대화하는 아키텍처 패턴입니다. Alistair Cockburn이 제안한 이 구조는 ‘포트와 어댑터(Ports and Adapters)’라는 개념을 중심으로, 의존성을 반전시켜 깔끔한 경계를 정의합니다.


1. 개념 및 정의

Hexagonal Architecture는 시스템의 핵심 비즈니스 로직을 중앙(코어) 도메인에 배치하고, 이를 다양한 외부 시스템(API, DB, 메시징 등)과 **포트(Ports)**와 **어댑터(Adapters)**를 통해 연결하는 방식의 아키텍처입니다.

  • 목적: 도메인 로직의 독립성과 테스트 용이성 확보
  • 필요성: 지속 가능한 소프트웨어 구조와 변화 대응력 확보
  • 기반 이론: 의존성 역전 원칙(DIP: Dependency Inversion Principle)

2. 특징

특징 설명 비고
포트와 어댑터 외부 인터페이스를 어댑터로 추상화 DB, UI, 메시징 등 다양하게 확장 가능
도메인 중심 비즈니스 로직을 중심에 배치 응집력 높은 설계 가능
테스트 용이성 외부 의존성 최소화로 단위 테스트 용이 TDD에 적합한 구조

이 아키텍처는 유스케이스 주도 설계, 클린 아키텍처, DDD 등과도 개념적으로 밀접한 연관이 있습니다.


3. 구성 요소

구성 요소 설명 예시
Application Core 비즈니스 로직과 유스케이스 처리 영역 서비스 클래스, 도메인 모델 등
Ports 내부와 외부를 연결하는 추상 인터페이스 Repository, Service Port
Adapters 외부 시스템과 포트를 연결하는 구체 구현체 JDBC, REST Controller, Kafka Adapter 등

포트는 내부와 외부의 계약을 정의하고, 어댑터는 해당 계약의 실제 구현 역할을 수행합니다.


4. 기술 요소

기술 요소 설명 예시
DI 프레임워크 의존성 주입으로 유연한 바인딩 Spring Framework, Guice
테스트 프레임워크 도메인 레벨 단위 테스트 수행 JUnit, Mockito
비동기 메시징 연계 어댑터 기반 이벤트 처리 가능 Kafka, RabbitMQ
REST API/GraphQL 외부 입력 어댑터 구현 Spring Web, Apollo Server

기술 스택과 무관하게 구조 자체의 일관성을 유지할 수 있는 점이 이 아키텍처의 강점입니다.


5. 장점 및 이점

장점 설명 기대 효과
변경 격리 외부 시스템 변경 시 내부 영향 최소화 유지보수 비용 절감
테스트 용이성 도메인 테스트 독립적 실행 가능 높은 테스트 커버리지 확보
유연한 통합 다양한 외부 시스템과 유연하게 연계 확장성 향상

지속 가능한 코드베이스를 구성하고, 팀 간 역할 분담을 명확히 할 수 있는 구조입니다.


6. 주요 활용 사례 및 고려사항

활용 사례 설명 고려사항
마이크로서비스 아키텍처 도메인 경계 중심의 서비스 구성 서비스 간 인터페이스 설계 중요
레거시 시스템 현대화 UI, DB 등을 점진적으로 교체 포트-어댑터 분리 필요
테스트 중심 개발 도메인 로직 테스트 용이 의존성 주입 구조 확립 필수

지나치게 많은 어댑터와 포트 정의는 오히려 복잡도를 증가시킬 수 있으므로 균형 있는 설계가 중요합니다.


7. 결론

Hexagonal Architecture는 변화가 빠르고 복잡한 시스템 환경에서 도메인 로직을 보호하고, 외부 변경에 유연하게 대응할 수 있는 이상적인 구조입니다. 비즈니스 중심의 소프트웨어 개발을 지향하며, 유지보수성과 테스트 용이성을 중시하는 팀에 매우 적합합니다. 클린 아키텍처 및 도메인 주도 설계의 실질적 구현으로도 널리 활용됩니다.

728x90
반응형

'Topic' 카테고리의 다른 글

Event Storming  (0) 2025.05.05
Onion Architecture  (0) 2025.05.05
Disciplined Agile (DA)  (1) 2025.05.05
IT4IT Reference Architecture  (0) 2025.05.05
Technology Radar  (1) 2025.05.05