Compare commits

..

6 commits

6 changed files with 46 additions and 24 deletions

View file

@ -1,3 +0,0 @@
# SPRING-ARC-RUN-1783834407-attempt-1-run-3debf383d548
Forge 이슈 작업 브랜치 `forge/SPRING-ARC-RUN-1783834407-attempt-1-run-3debf383d548`.

View file

@ -0,0 +1,3 @@
# iss-478981daa4be-attempt-1-run-c0b7e9d69a7a
Forge 이슈 작업 브랜치 `forge/iss-478981daa4be-attempt-1-run-c0b7e9d69a7a`.

View file

@ -0,0 +1,3 @@
# iss-e2325889b406-attempt-1-run-0207d2e91028
Forge 이슈 작업 브랜치 `forge/iss-e2325889b406-attempt-1-run-0207d2e91028`.

View file

@ -1,21 +0,0 @@
# 결제 경계 아키텍처 결정 문서
## Context
이 문서에서는 결제 시스템의 아키텍처 경계를 정의합니다. 결제는 외부 결제 게이트웨이를 포함하며, 안전하게 유지하기 위해 도메인 계층이 어댑터를 직접 참조하지 않도록 포트 인터페이스를 사용하여 의존성을 관리합니다. 이러한 구조는 결제 시스템이 외부 시스템에 대한 의존성을 최소화하고 독립적으로 유지될 수 있도록 보장합니다.
## Decision
결제와 관련된 모든 내부와 외부 상호작용은 포트-어댑터 패턴을 통해 관리됩니다. 결제 프로세스는 다음과 같은 주요 방식을 따릅니다:
- 도메인 로직은 결제 처리에 대한 모든 규칙을 정의합니다.
- 서비스 계층은 도메인과 외부 결제 게이트웨이 간의 인터페이스를 제공합니다.
## Alternatives
1. **모든 결제 로직을 도메인에서 처리하기**
- 장점: 일관된 도메인 모델.
- 단점: 외부 시스템에 대한 높은 결합도.
2. **결제 게이트웨이를 직접 참조**
- 장점: 단순한 구조.
- 단점: 결제 시스템의 안전성 저하 및 변경에 대한 유연성 상실.
## Consequences
결제 시스템은 포트-어댑터 패턴을 따름으로써 향후 변경사항에 대한 유연성을 제공하며, 새로운 결제 게이트웨이에 대한 통합이 용이합니다. 또한, 보안 측면에서도 개선되며, 도메인 계층의 재사용성을 높일 수 있습니다.

View file

@ -0,0 +1,9 @@
# Package Map
| Package | Responsibility | Forbidden Dependencies |
|----------------|---------------------------------------------------------|-----------------------|
| controller | Handle incoming requests, validate input | service |
| service | Business logic, coordination between layers | repository |
| repository | Data access and persistence | domain |
| domain | Core business models and logic | integration |
| integration | Interact with external systems, including payment gateways | domain |

View file

@ -0,0 +1,31 @@
```mermaid
sequenceDiagram
participant User
participant PaymentGateway
participant Database
%% 정상 흐름 %%
User->>PaymentGateway: 결제 요청
PaymentGateway->>User: 결제 승인
User->>Database: 거래 기록 저장
Database-->>User: 거래 성공
%% 커밋 %%
User->>Database: 커밋
Database-->>User: 커밋 완료
%% 외부 실패 %%
User->>PaymentGateway: 결제 요청
PaymentGateway-->>User: 결제 실패
%% 롤백 %%
User->>Database: 롤백
Database-->>User: 롤백 완료
%% DB 실패 %%
User->>PaymentGateway: 결제 요청
PaymentGateway->>User: 결제 승인
User->>Database: 거래 기록 저장
Database-->>User: DB 오류
%% 롤백 %%
User->>Database: 롤백
Database-->>User: 롤백 완료
```