오늘은 결제 파트를 DDD 구조 기준으로 정리하면서, 계층별 책임을 명확히 구분하는 연습을 했다.
결제 기능을 구현할 때 가장 중요한 건 “취소/승인 같은 비즈니스 규칙”과 “DB/외부 결제사 API 같은 기술 구현”이 섞이지 않게 분리하는 것이다.
결제 파트에서 계층별 책임은 다음처럼 정리했다.
- Presentation: 결제 요청(승인/취소)을 HTTP로 받고, 필요한 값만 추려 Application에 전달한 뒤 결과를 응답한다.
- Application: 결제 유스케이스 실행 흐름을 담당한다. 예를 들어 결제 취소라면 결제 조회 → 취소 처리 호출 → 상태 변경 → 저장 같은 흐름을 조합한다.
- Domain: Payment가 중심이 되어 결제 상태, 취소 가능 여부 판단 같은 결제 규칙을 가진다.
- Infrastructure: DB 저장(JPA/Repository 구현)과 토스 결제 API 호출(Client)처럼 기술 구현을 담당한다.
이렇게 나누면 결제 기능을 확장할 때 핵심 규칙은 유지하면서 기술 부분만 교체할 수 있다는 점을 확인했다.
'TIL' 카테고리의 다른 글
| TIL - 결제 로직 변경 (0) | 2026.03.06 |
|---|---|
| TIL - 결제 승인·취소 서비스 구현과 PaymentController API 구성 (0) | 2026.03.05 |
| TIL - 결제 서비스 도메인 설계 및 구현 (0) | 2026.03.03 |
| TIL - Redis TTL 개념정리 (0) | 2026.03.02 |
| TIL - PostgreSQL과 MySQL의 차이점 정리 (0) | 2026.02.28 |