Compare commits
2 commits
main
...
forge/SPRI
| Author | SHA1 | Date | |
|---|---|---|---|
| a0fb965ff6 | |||
| 0e5946c995 |
4 changed files with 21 additions and 38 deletions
|
|
@ -0,0 +1,3 @@
|
|||
# SPRING-ARC-FINDINGS-1783836352-attempt-2-run-141babd7c350
|
||||
|
||||
Forge 이슈 작업 브랜치 `forge/SPRING-ARC-FINDINGS-1783836352-attempt-2-run-141babd7c350`.
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1
|
||||
|
||||
Forge 이슈 작업 브랜치 `forge/iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1`.
|
||||
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
|
||||
이 아키텍처 결정은 도메인 모델이 외부 결제 변동에 덜 영향을 받도록 하는 장점을 가지지만, 초기 개발에 있어서는 인터페이스 설계 및 구현이 다소 복잡해질 수 있습니다. 이러한 복잡성은 향후 유지보수에서 이점으로 작용할 수 있습니다.
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
---
|
||||
# 결제 전환 아키텍처
|
||||
|
||||
## 트랜잭션 시퀀스 다이어그램
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User
|
||||
participant PaymentGateway
|
||||
participant Database
|
||||
participant Application
|
||||
|
||||
User->>Application: 결제 요청
|
||||
Application->>Database: 트랜잭션 시작
|
||||
Application->>PaymentGateway: 결제 요청
|
||||
alt 정상 흐름
|
||||
PaymentGateway-->>Application: 결제 성공
|
||||
Application->>Database: 트랜잭션 커밋
|
||||
Database-->>Application: 커밋 완료
|
||||
Application-->>User: 결제 완료
|
||||
else 외부 실패
|
||||
PaymentGateway-->>Application: 결제 실패
|
||||
Application->>Database: 트랜잭션 롤백
|
||||
Database-->>Application: 롤백 완료
|
||||
Application-->>User: 결제 실패
|
||||
else DB 실패
|
||||
Application->>Database: 트랜잭션 롤백
|
||||
Database-->>Application: 롤백 실패
|
||||
Application-->>User: 시스템 오류
|
||||
end
|
||||
```
|
||||
|
||||
## 주의사항
|
||||
- 외부 결제 gateway는 port interface 뒤에 두고 domain에서 adapter를 직접 참조하지 않는다.
|
||||
---
|
||||
Loading…
Add table
Add a link
Reference in a new issue