diff --git a/.forge/SPRING-ARC-FINDINGS-1783836352-attempt-2-run-141babd7c350.md b/.forge/SPRING-ARC-FINDINGS-1783836352-attempt-2-run-141babd7c350.md deleted file mode 100644 index fd998cf..0000000 --- a/.forge/SPRING-ARC-FINDINGS-1783836352-attempt-2-run-141babd7c350.md +++ /dev/null @@ -1,3 +0,0 @@ -# SPRING-ARC-FINDINGS-1783836352-attempt-2-run-141babd7c350 - -Forge 이슈 작업 브랜치 `forge/SPRING-ARC-FINDINGS-1783836352-attempt-2-run-141babd7c350`. diff --git a/.forge/iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1.md b/.forge/iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1.md new file mode 100644 index 0000000..5bab659 --- /dev/null +++ b/.forge/iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1.md @@ -0,0 +1,3 @@ +# iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1 + +Forge 이슈 작업 브랜치 `forge/iss-d0bdbb1b07fc-attempt-2-run-11c166a4a0e1`. diff --git a/docs/architecture/adr-payment-boundary.md b/docs/architecture/adr-payment-boundary.md deleted file mode 100644 index 2c91b63..0000000 --- a/docs/architecture/adr-payment-boundary.md +++ /dev/null @@ -1,18 +0,0 @@ -# ADR: 결제 경계 정의 - -## Context -현재 시스템에서 결제 전환 기능은 여러 외부 결제 게이트웨이와 통합되어 있습니다. 이러한 통합은 도메인 모델과 긴밀하게 연결되어 있기 때문에, 외부 게이트웨이의 변화가 도메인 모델에 미치는 영향을 최소화할 필요가 있습니다. - -## Decision -결제 시스템 아키텍처는 외부 결제 게이트웨이를 포트 인터페이스 뒤에 두고, 도메인에서 어댑터를 직접 참조하지 않도록 설계합니다. 이를 통해 도메인의 독립성을 유지하고, 외부 변경에 대한 영향을 최소화할 수 있습니다. - -## Alternatives -1. **직접 통합**: 외부 결제 게이트웨이를 도메인 모듈과 직접 통합하는 방안. - - 장점: 통합이 간단하고 초기 개발 속도가 빠름. - - 단점: 외부 변경에 취약하고, 도메인이 의존성이 증가함. -2. **중간 서비스**: 중간 서비스를 두어 결제 처리를 담당하게 하는 방안. - - 장점: 도메인 모델이 외부 게이트웨이로부터 완전히 격리됨. - - 단점: 추가적인 서비스 개발 및 유지보수 비용 증가. - -## Consequences -이 아키텍처 결정은 도메인 모델이 외부 결제 변동에 덜 영향을 받도록 하는 장점을 가지지만, 초기 개발에 있어서는 인터페이스 설계 및 구현이 다소 복잡해질 수 있습니다. 이러한 복잡성은 향후 유지보수에서 이점으로 작용할 수 있습니다. \ No newline at end of file diff --git a/docs/architecture/transaction-sequence.md b/docs/architecture/transaction-sequence.md new file mode 100644 index 0000000..6c81673 --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,35 @@ +--- +# 결제 전환 아키텍처 + +## 트랜잭션 시퀀스 다이어그램 + +```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를 직접 참조하지 않는다. +--- \ No newline at end of file