BackEnd

헥사고날 아키텍처(Hexagonal Architecture)_ 추가 수정 필요

Raconer 2024. 8. 27. 00:00
728x90

1. 헥사고날 아키텍처 란?

헥사고날 아키텍처(Hexagonal Architecture)소프트웨어 설계 패턴 중 하나로, 시스템을 다양한 모듈로 나누어 유지보수성확장성높이기 위해 고안된 구조입니다. 2005년 Alistair Cockburn에 의해 제안되었으며,
포트와 어댑터 아키텍처(Ports and Adapters Architecture)라고도 불립니다.

2. 주요 개념

헥사고날 아키텍처의 주요 개념애플리케이션 코어외부 시스템과의 의존성에서 분리하는 것입니다.
이를 통해 시스템 내부 로직외부 인터페이스가 느슨하게 결합되어 변경유연하게 대응할 수 있습니다.
이 구조는 애플리케이션의 핵심 비즈니스 로직이 외부의 세부 사항에 의존하지 않고, 포트와 어댑터를 통해 외부와 통신합니다.

 

3. 주요 요소

  1. 코어(Core)
    1. 비즈니스 로직과 도메인 규칙이 포함된 애플리케이션의 중심 부분입니다.
    2. 외부 시스템과는 전혀 연결되지 않은 순수한 로직으로 구성됩니다.
  2. 포트(Ports)
    1. 애플리케이션 코어에서 제공하는 서비스나 외부에서 코어에 접근하기 위한 인터페이스입니다.
    2. 포트는 코어가 외부와 통신하는 유일한 통로 역할을 합니다.
  3. 어댑터(Adapters)
    1. 포트를 구현하여 외부 시스템이나 데이터베이스, 사용자 인터페이스(UI) 등과 실제로 연결되게 해주는 부분입니다.
    2. 어댑터는 외부 시스템의 구체적인 세부 사항을 처리합니다.

4. 장점

  • 유연성: 비즈니스 로직을 변경하지 않고도 외부 시스템과의 통신 방식을 쉽게 변경할 수 있습니다.
  • 테스트 용이성: 외부 시스템과의 의존성이 없기 때문에 코어를 독립적으로 테스트할 수 있습니다.
  • 모듈화: 시스템이 자연스럽게 여러 모듈로 나누어지기 때문에 유지보수와 확장이 용이합니다.
728x90

'BackEnd' 카테고리의 다른 글

함수형 프로그래밍의 장단점  (0) 2025.01.19
함수형 프로그래밍이란?  (0) 2025.01.19
멀티 스레드 환경에 대한 이해  (0) 2024.02.05
Timline 읽어오는법 ( pull/push Model )  (0) 2024.02.03
커버링 인덱스  (0) 2024.01.25