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