본문 바로가기
Dev/Article

어니언 아키텍처 (Onion Architecture)

by Luigi.yoon 2025. 5. 29.

Onion Architecture

“도메인 모델을 가장 중심에 두고, 의존성은 바깥에서 안쪽으로만 향하게 구성한 아키텍처. 핵심 비즈니스 로직은 외부 변화에 영향을 받지 않도록 보호된다.”


  • 도메인 모델이 핵심 (Core Domain)
  • 의존성은 바깥에서 안쪽으로만
  • 인프라/프레임워크는 가장 바깥쪽

출처 : https://github.com/NilavPatel/dotnet-onion-architecture

 

항목 Onion Architecture Hexagonal Architecture
핵심 구성 도메인 → 앱서비스 → 어댑터 도메인 + 포트 → 어댑터
의존 방향 바깥 → 안쪽 (단방향) 포트를 기준으로 양방향 허용(유연한 구조)
주요 중심 도메인 모델 도메인과 포트
외부 시스템 분리 명확 (외곽에 존재) 명확 (Adapter로 분리)
유연성/테스트성 높음 높음
레이어간 인터페이스 내부에 인터페이스 존재 내부 포트(인터페이스) 기반
주로 사용되는 곳 DDD, 도메인 중심 설계 다양한 외부 인터페이스가 많은 시스템
 

 


🛠 구성 설명

계층 설명 예시
Domain Layer 비즈니스 규칙, 엔티티, 밸류 오브젝트 User, Order, PricePolicy
Application Layer 유스케이스/서비스 로직 UserService.Register()
Interface Layer API, CLI, 메시징 등의 입출력 REST Controller, GraphQL, CLI
Infrastructure Layer DB, API client, 파일시스템 등 MySQLRepo, RedisCache