Study

헥사고날 아키텍처 vs 레이어드 아키텍처

kinim329 2026. 4. 21. 23:38

주식 관리 프로젝트를 진행하면서, 현재 내가 하고 있는 프로젝트에 어떤 아키텍처가 더 적합할지 고민하게 되었다.

레이어드 아키텍처

개념

애플리케이션을 역할별 계층으로 나누는 구조

구조

Controller→Service →Repository →DB

특징

  • 위에서 아래로 흐르는 구조
  • 역할이 명확하고 이해하기 쉬움
  • 빠른 개발에 적합

한계

  • Service가 DB, 외부 API에 직접 의존
  • 변경 시 영향 범위가 큼
  • 테스트가 어려워질 수 있음

헥사고날 아키텍처

개념

비즈니스 로직을 중심에 두고 외부 요소를 분리하는 구조

구조

Controller →InPort →Service →OutPort →Adapter →DB

핵심 개념

Core

  • 비즈니스 로직이 위치하는 중심영역
  • DB, 외부 API등 기술 요소를 알고 있지 않음

Port

InPort

  • 외부 요청이 Core로 들어오는 통로
  • Controller가 호출하는 인터페이스

OutPort

  • Core가 외부에 요청하기 위한 통로
  • DB 조회, API 호출 등을 추상화

Adapter

  • Port를 구현하는 실제 코드
  • DB, 외부 API와 연결되는 영역

Repository

  • Adapter 내부에서 사용하는 접근 기술
  • 아키텍처 흐름에서는 드러나지 않는 내부 구현
구분 레이어드 헥사고날
구조 계층 중심 Core중심
DB 의존 Service가 직접 의존 Port를 통해 간접 의존
유연성 낮음 높음

 

'Study' 카테고리의 다른 글

OSI 7계층 / TCP-IP 4계층  (0) 2026.04.23
Redis Pub/Sub  (0) 2026.04.22
Websocket 정리  (0) 2026.04.19
그래프 표현, DFS/BFS, 최단경로  (0) 2026.04.17
서비스 간 통신 방법  (0) 2026.04.16