결제 전환 목표 아키텍처 정의 #2
4 changed files with 65 additions and 0 deletions
3
.forge/SPRING-ARC-REVIEW-1783824683-attempt-3.md
Normal file
3
.forge/SPRING-ARC-REVIEW-1783824683-attempt-3.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
# SPRING-ARC-REVIEW-1783824683-attempt-3
|
||||||
|
|
||||||
|
Forge 이슈 작업 브랜치 `forge/SPRING-ARC-REVIEW-1783824683-attempt-3`.
|
||||||
18
docs/architecture/adr-payment-boundary.md
Normal file
18
docs/architecture/adr-payment-boundary.md
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
# 결제 경계 결정 기록 (ADR)
|
||||||
|
|
||||||
|
## Context
|
||||||
|
결제 시스템은 사용자와 상호작용하여 결제를 처리하는 핵심 기능을 제공합니다. 이 시스템은 다양한 결제 수단을 지원하며, 외부 서비스와의 통합이 필요합니다.
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
결제 경계는 다음과 같이 정의됩니다:
|
||||||
|
- 결제 요청 수신
|
||||||
|
- 결제 처리
|
||||||
|
- 결제 결과 반환
|
||||||
|
|
||||||
|
## Alternatives
|
||||||
|
1. 결제 처리 로직을 서비스 계층에 두기
|
||||||
|
2. 결제 처리 로직을 도메인 계층에 두기
|
||||||
|
|
||||||
|
## Consequences
|
||||||
|
- 서비스 계층에 두면 테스트가 용이하지만, 도메인 로직이 분산될 수 있습니다.
|
||||||
|
- 도메인 계층에 두면 비즈니스 로직이 명확해지지만, 테스트가 복잡해질 수 있습니다.
|
||||||
7
docs/architecture/package-map.md
Normal file
7
docs/architecture/package-map.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
| 패키지 | 책임 | 금지 의존성 |
|
||||||
|
|--------------|--------------------------------------|------------------|
|
||||||
|
| controller | 사용자 요청 처리 및 응답 반환 | service, repository |
|
||||||
|
| service | 비즈니스 로직 처리 | controller |
|
||||||
|
| repository | 데이터베이스와의 상호작용 | service |
|
||||||
|
| domain | 도메인 모델 및 비즈니스 규칙 정의 | integration |
|
||||||
|
| integration | 외부 서비스와의 통합 | domain |
|
||||||
37
docs/architecture/transaction-sequence.md
Normal file
37
docs/architecture/transaction-sequence.md
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant User
|
||||||
|
participant Controller
|
||||||
|
participant Service
|
||||||
|
participant Repository
|
||||||
|
participant Database
|
||||||
|
|
||||||
|
User->>Controller: 결제 요청
|
||||||
|
Controller->>Service: 결제 처리 요청
|
||||||
|
Service->>Repository: 결제 정보 저장
|
||||||
|
Repository->>Database: DB에 결제 정보 저장
|
||||||
|
Database-->>Repository: 저장 완료
|
||||||
|
Repository-->>Service: 저장 완료
|
||||||
|
Service-->>Controller: 결제 결과 반환
|
||||||
|
Controller-->>User: 결제 완료
|
||||||
|
|
||||||
|
Note over User, Controller: 외부 실패 발생
|
||||||
|
User->>Controller: 결제 요청
|
||||||
|
Controller->>Service: 결제 처리 요청
|
||||||
|
Service->>Repository: 결제 정보 저장
|
||||||
|
Repository->>Database: DB에 결제 정보 저장
|
||||||
|
Database-->>Repository: 저장 실패
|
||||||
|
Repository-->>Service: 저장 실패
|
||||||
|
Service-->>Controller: 결제 실패
|
||||||
|
Controller-->>User: 결제 실패
|
||||||
|
|
||||||
|
Note over User, Controller: DB 실패 발생
|
||||||
|
User->>Controller: 결제 요청
|
||||||
|
Controller->>Service: 결제 처리 요청
|
||||||
|
Service->>Repository: 결제 정보 저장
|
||||||
|
Repository->>Database: DB에 결제 정보 저장
|
||||||
|
Database-->>Repository: 저장 실패
|
||||||
|
Repository-->>Service: 저장 실패
|
||||||
|
Service-->>Controller: 결제 실패
|
||||||
|
Controller-->>User: 결제 실패
|
||||||
|
```
|
||||||
Loading…
Add table
Add a link
Reference in a new issue