Compare commits

..

2 commits

Author SHA1 Message Date
a61ca7b3d2 결제 전환 목표 아키텍처 정의 (2/2) (iss-2499ff1ad79a)
All checks were successful
ci / test (pull_request) Successful in 6s
2026-07-12 07:51:36 +00:00
6546954823 forge: open work branch for iss-2499ff1ad79a-attempt-3-run-30d98199f9aa 2026-07-12 07:51:30 +00:00
4 changed files with 27 additions and 23 deletions

View file

@ -1,3 +0,0 @@
# SPRING-ARC-RECOVERY-1783842535-attempt-1-run-32404d54d934
Forge 이슈 작업 브랜치 `forge/SPRING-ARC-RECOVERY-1783842535-attempt-1-run-32404d54d934`.

View file

@ -0,0 +1,3 @@
# iss-2499ff1ad79a-attempt-3-run-30d98199f9aa
Forge 이슈 작업 브랜치 `forge/iss-2499ff1ad79a-attempt-3-run-30d98199f9aa`.

View file

@ -1,20 +0,0 @@
# 결제 경계 결정 (ADR)
## Context
본 ADR은 결제 서비스 전환을 위한 아키텍처 경계를 정의합니다. 이 경계는 서비스의 상호작용 및 책임을 명확히 하여, 나중에 시스템 통합 및 확장성을 고려한 설계를 지원합니다.
## Decision
우리 결제 서비스의 경계를 다음과 같이 정의합니다:
1. **결제 서비스**: 결제 처리, 결제 취소, 환불 등의 기능을 담당합니다.
2. **사용자 서비스**: 사용자 정보 관리 및 인증을 담당합니다.
3. **상품 서비스**: 상품 정보 및 재고 관리를 부담합니다.
결제 서비스는 사용자 서비스 및 상품 서비스와 각기 다른 경계를 두고 상호작용하며, API를 통해 필요한 데이터를 요청하고 응답받습니다. 또한 결제 시스템은 장애 복구 및 트랜잭션 관리를 위한 메커니즘도 갖출 것입니다.
## Alternatives
- 모든 서비스가 결제 기능을 직접 처리하는 방안: 이는 시스템 복잡성을 증가시키고, 결제 관련 로직을 재사용하기 어렵게 만듭니다.
- 외부 결제 처리기로의 의존성 강화: 제약이 클 수 있으며, 자체 관리가 어려워질 수 있습니다.
## Consequences
결제 기능을 별도로 관리함으로써 시스템의 모듈화 및 확장성을 확보할 수 있습니다. 그러나 서비스 간의 연동 및 데이터 일관성을 관리하기 위한 추가된 작업이 필요합니다.

View file

@ -0,0 +1,24 @@
```mermaid
sequenceDiagram
participant User
participant PaymentGateway
participant Application
participant Database
User->>Application: Initiate Payment
Application->>PaymentGateway: Process Payment
alt Successful Payment
PaymentGateway-->>Application: Payment Approved
Application->>Database: Commit Transaction
Database-->>Application: Transaction Committed
Application-->>User: Payment Successful
else External Failure
PaymentGateway-->>Application: Payment Error
Application-->>User: Payment Failed
else DB Failure
Application->>Database: Attempt Transaction
Database-->>Application: Transaction Error
Application->>Database: Rollback Transaction
Database-->>Application: Transaction Rolled Back
Application-->>User: Payment Failed
end
```