Compare commits
No commits in common. "forge/SPRING-ARC-VERIFIED-1783826844-attempt-2" and "main" have entirely different histories.
forge/SPRI
...
main
4 changed files with 0 additions and 53 deletions
|
|
@ -1,3 +0,0 @@
|
|||
# SPRING-ARC-VERIFIED-1783826844-attempt-2
|
||||
|
||||
Forge 이슈 작업 브랜치 `forge/SPRING-ARC-VERIFIED-1783826844-attempt-2`.
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
# 결제 전환 목표 아키텍처 정의
|
||||
|
||||
## Context
|
||||
결제 처리 시스템은 다양한 결제 수단과의 통합을 요구하며, 도메인 객체를 통해 결제 업무를 표준화하고 통제할 수 있어야 한다. 시스템 내부에서 외부 결제 게이트웨이와의 통신을 추상화하기 위해 포트 인터페이스를 사용한다.
|
||||
|
||||
## Decision
|
||||
결제 처리의 성공과 실패를 명확하게 정의하고, 특정 외부와의 상호작용을 가진 경우에만 결제 작업을 수행하도록 의사 결정을 내렸다. 외부 결제 게이트웨이는 도메인에서 직접 참조되기보다는 포트 인터페이스로 접근한다.
|
||||
|
||||
## Alternatives
|
||||
1. **직접 참조**: 도메인이 외부 시스템을 직접 호출하는 방식 (회피됨)
|
||||
2. **포트-어댑터 패턴**: 도메인에서 포트를 사용하고, 외부 시스템과의 통신을 어댑터가 처리 (선택됨)
|
||||
|
||||
## Consequences
|
||||
이 아키텍처 접근 방식은 결제 처리 시스템을 유연하게 만들어 주며, 외부 결제 시스템의 변경에 대한 내성을 제공한다. 그러나 초기 구현 시 추가적인 설계와 구현이 요구된다.
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
| 패키지 | 책임 | 금지 의존성 |
|
||||
|------------|-----------------------------------------------|----------------
|
||||
| controller | 사용자 요청을 처리하고 응답을 반환 | domain에 직접 의존하지 않음
|
||||
| service | 비즈니스 로직을 수행하고, controller와 repository를 연결 | 외부 결제 gateway에 직접 의존하지 않음 |
|
||||
| repository | 데이터베이스와의 상호작용을 관리 | service에 의존하지 않음
|
||||
| domain | 도메인 객체와 그 관련 비즈니스 규칙을 정의 | 기타 패키지에 의존하지 않음
|
||||
| integration | 외부 시스템과의 통합을 처리 | business logic에 의존하지 않음
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
sequenceDiagram
|
||||
participant C as Controller
|
||||
participant S as Service
|
||||
participant R as Repository
|
||||
participant DB as Database
|
||||
participant E as External Payment Gateway
|
||||
|
||||
C->>S: 결제 요청
|
||||
S->>R: 결제 정보 요청
|
||||
R->>DB: 결제 정보 저장
|
||||
DB-->>R: 저장 성공
|
||||
S->>E: 결제 진행
|
||||
E-->>S: 결제 성공
|
||||
S->>C: 결제 성공 응답
|
||||
|
||||
note over C: 외부 실패와 같은 경우
|
||||
S->>E: 결제 진행
|
||||
E-->>S: 결제 실패
|
||||
S->>R: 데이터 롤백
|
||||
R->>DB: 롤백 처리
|
||||
DB-->>R: 롤백 성공
|
||||
S->>C: 결제 실패 응답
|
||||
|
||||
note over C: DB 실패의 경우
|
||||
S->>R: 결제 정보 요청
|
||||
R->>DB: 결제 정보 저장
|
||||
DB-->>R: 저장 실패
|
||||
R-->>S: 에러 응답
|
||||
S->>C: 결제 실패 응답
|
||||
Loading…
Add table
Add a link
Reference in a new issue