User Domain Service는 사용자(User) 도메인의 비즈니스 로직을 담당하는 서비스입니다.
사용자 정보 관리의 책임을 가집니다.
- GrapQL BFF로부터 gRPC 요청을 수신합니다.
- 사용자 도메인 로직을 처리합니다.
- 다른 서비스에서 참조 가능한 사용자 정보를 제공합니다.
- 사용자 CRUD
- 사용자 정보 관리
- Hexagonal Architecture(Ports & Adapter)를 적용하여 도메인 로직과 외부 기술을 분리합니다.
┌────────────────────┐
│ gRPC Adapter │ (inbound)
└─────────┬──────────┘
↓
┌────────────────────┐
│ Application │ (UseCase)
└─────────┬──────────┘
↓
┌────────────────────┐
│ Domain │
└─────────┬──────────┘
↓
┌────────────────────┐
│ Persistence Adapter│ (JPA)
└────────────────────┘
최소 데이터 전략
- 다른 도메인은 userId만 참조로 가집니다.
Hexagonal Architecture
- 외부 의존성(gRPC, DB)을 Adapter로 분리합니다.
- Domain Layer는 기술에 의존하지 않습니다.
- 언어: Java
- 프레임워크: Spring Boot
- 통신: gRPC
- ORM: JPA
- DB: PostgreSQL