Compare commits
3 commits
forge/SPRI
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| e0e33a73be | |||
| 99a0f07095 | |||
| fefbf1c42b |
5 changed files with 13 additions and 55 deletions
|
|
@ -1,3 +0,0 @@
|
||||||
# SPRING-ARC-BOUNDARY-1783841726-attempt-1-run-aed3e587b299
|
|
||||||
|
|
||||||
Forge 이슈 작업 브랜치 `forge/SPRING-ARC-BOUNDARY-1783841726-attempt-1-run-aed3e587b299`.
|
|
||||||
3
.forge/iss-3f29c0d83954-attempt-1-run-62fa40d5b77b.md
Normal file
3
.forge/iss-3f29c0d83954-attempt-1-run-62fa40d5b77b.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
# iss-3f29c0d83954-attempt-1-run-62fa40d5b77b
|
||||||
|
|
||||||
|
Forge 이슈 작업 브랜치 `forge/iss-3f29c0d83954-attempt-1-run-62fa40d5b77b`.
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
# 결제 전환 목표 아키텍처 결정 기록 (ADR)
|
|
||||||
|
|
||||||
## Context
|
|
||||||
결제 시스템의 전환 목표를 정의하고, 외부 결제 게이트웨이와의 통신을 관리하기 위한 아키텍처를 설정합니다. 외부 결제 게이트웨이는 도메인에서 직접 참조되지 않고, 포트 인터페이스를 통해 접근합니다.
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
결제 도메인과 외부 결제 게이트웨이 간의 의존성을 최소화하기 위해, 포트 인터페이스를 사용하여 어댑터 패턴을 적용합니다. 이를 통해 도메인 로직은 외부 시스템에 대한 의존성을 가지지 않게 됩니다.
|
|
||||||
|
|
||||||
## Alternatives
|
|
||||||
1. 직접 외부 결제 게이트웨이를 도메인에서 참조하는 방법
|
|
||||||
- 장점: 구현이 간단함
|
|
||||||
- 단점: 도메인 로직의 테스트가 어려워짐
|
|
||||||
|
|
||||||
2. 서비스 레이어에서 외부 결제 게이트웨이를 호출하는 방법
|
|
||||||
- 장점: 도메인과의 의존성 감소
|
|
||||||
- 단점: 서비스 레이어가 복잡해질 수 있음
|
|
||||||
|
|
||||||
## Consequences
|
|
||||||
- 도메인 로직의 독립성을 유지할 수 있으며, 외부 결제 시스템의 변경에 유연하게 대응할 수 있습니다. 또한, 테스트가 용이해집니다.
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
| 패키지 | 책임 | 금지 의존성 |
|
# 패키지 맵
|
||||||
|--------------|-----------------------------------------|-------------------------|
|
|
||||||
| controller | 사용자 요청 처리 및 응답 반환 | domain, service |
|
| 패키지 | 책임 | 금지 의존성 |
|
||||||
| service | 비즈니스 로직 처리 및 트랜잭션 관리 | repository |
|
|----------------|----------------------------------------------|------------------|
|
||||||
| repository | 데이터베이스와의 상호작용 | domain |
|
| controller | 외부 요청 수신 및 처리 | repository |
|
||||||
| domain | 도메인 모델 및 비즈니스 규칙 정의 | integration |
|
| service | 비즈니스 로직 수행 및 데이터 처리 | integration |
|
||||||
| integration | 외부 시스템과의 통신 (예: 결제 게이트웨이) | domain |
|
| repository | 데이터 저장소와의 상호작용 | controller, domain |
|
||||||
|
| domain | 핵심 비즈니스 도메인 모델 | integration |
|
||||||
|
| integration | 외부 서비스와의 통신 | controller, domain |
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
```mermaid
|
|
||||||
sequenceDiagram
|
|
||||||
participant User
|
|
||||||
participant Controller
|
|
||||||
participant Service
|
|
||||||
participant Repository
|
|
||||||
participant PaymentGateway
|
|
||||||
|
|
||||||
User->>Controller: 결제 요청
|
|
||||||
Controller->>Service: 결제 처리 요청
|
|
||||||
Service->>Repository: 트랜잭션 시작
|
|
||||||
alt 정상 흐름
|
|
||||||
Service->>PaymentGateway: 결제 요청
|
|
||||||
PaymentGateway-->>Service: 결제 성공
|
|
||||||
Service->>Repository: 트랜잭션 커밋
|
|
||||||
else 외부 실패
|
|
||||||
Service->>PaymentGateway: 결제 요청
|
|
||||||
PaymentGateway-->>Service: 결제 실패
|
|
||||||
Service->>Repository: 트랜잭션 롤백
|
|
||||||
else DB 실패
|
|
||||||
Service->>Repository: 트랜잭션 시작
|
|
||||||
Repository-->>Service: DB 오류
|
|
||||||
Service->>Repository: 트랜잭션 롤백
|
|
||||||
end
|
|
||||||
Controller-->>User: 결제 결과 반환
|
|
||||||
```
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue