Onion Architecture
“도메인 모델을 가장 중심에 두고, 의존성은 바깥에서 안쪽으로만 향하게 구성한 아키텍처. 핵심 비즈니스 로직은 외부 변화에 영향을 받지 않도록 보호된다.”
- 도메인 모델이 핵심 (Core Domain)
- 의존성은 바깥에서 안쪽으로만
- 인프라/프레임워크는 가장 바깥쪽
항목 | 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 |
'Dev > Article' 카테고리의 다른 글
OAuth2와 OIDC(OpenID Connect) (0) | 2025.05.30 |
---|---|
MSA 아키텍처(Microservices Architecture) (0) | 2025.05.30 |
[용어/개념] Head-of-Line Blocking (0) | 2025.05.29 |
동시성 문제 - Priority Inversion(우선순위 역전) (0) | 2025.05.28 |
OLTP(Online Transaction Processing), OLAP(Online Analytical Processing) (0) | 2025.05.22 |