diff --git a/.forge/SPRING-ARC-REVIEW-1783824683-attempt-2.md b/.forge/SPRING-ARC-REVIEW-1783824683-attempt-2.md new file mode 100644 index 0000000..300048d --- /dev/null +++ b/.forge/SPRING-ARC-REVIEW-1783824683-attempt-2.md @@ -0,0 +1,3 @@ +# SPRING-ARC-REVIEW-1783824683-attempt-2 + +Forge 이슈 작업 브랜치 `forge/SPRING-ARC-REVIEW-1783824683-attempt-2`. diff --git a/docs/architecture/adr-payment-boundary.md b/docs/architecture/adr-payment-boundary.md new file mode 100644 index 0000000..f102766 --- /dev/null +++ b/docs/architecture/adr-payment-boundary.md @@ -0,0 +1,15 @@ +# 결제 전환 목표 아키텍처 결정 기록 + +## Context +결제 시스템의 전환 목표를 정의하고, 시스템의 경계를 명확히 하여 결제 처리의 일관성을 확보한다. + +## Decision +결제 전환 목표는 API 기반의 마이크로서비스 아키텍처로 정의하며, 결제 서비스는 독립적으로 배포 가능해야 한다. + +## Alternatives +1. 모놀리식 아키텍처: 모든 결제 관련 기능을 단일 애플리케이션으로 구현. +2. 서버리스 아키텍처: 결제 기능을 서버리스로 구현하여 관리 부담을 줄임. + +## Consequences +- API 기반 아키텍처는 유연성과 확장성을 제공하지만, 초기 설정과 관리가 복잡할 수 있다. +- 모놀리식 아키텍처는 간단하지만, 확장성에 한계가 있다. \ No newline at end of file diff --git a/docs/architecture/package-map.md b/docs/architecture/package-map.md new file mode 100644 index 0000000..66d527b --- /dev/null +++ b/docs/architecture/package-map.md @@ -0,0 +1,7 @@ +| 패키지 | 책임 | 금지 의존성 | +|--------------|--------------------------------------|------------------| +| controller | 사용자 요청 처리 및 응답 반환 | service, repository | +| service | 비즈니스 로직 처리 | controller, repository | +| repository | 데이터베이스와의 상호작용 | service | +| domain | 도메인 모델 및 비즈니스 규칙 정의 | controller, service | +| integration | 외부 시스템과의 통합 | repository | \ 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..f4ceb5c --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,19 @@ +```mermaid +sequenceDiagram + participant User + participant PaymentService + participant Database + participant ExternalService + + User->>PaymentService: 결제 요청 + PaymentService->>Database: 트랜잭션 시작 + alt 정상 흐름 + PaymentService->>ExternalService: 결제 처리 요청 + ExternalService-->>PaymentService: 결제 성공 + PaymentService->>Database: 트랜잭션 커밋 + else 외부 실패 + PaymentService->>Database: 트랜잭션 롤백 + else DB 실패 + PaymentService->>Database: 트랜잭션 롤백 + end +``` \ No newline at end of file