결제 전환 목표 아키텍처 정의 (1/2) (1/2) #5

Open
forge-bot wants to merge 2 commits from forge/SPRING-ARC-RUN-1783834407-attempt-3-run-54cc6f6291b4 into main
Showing only changes of commit 1d2de8eff4 - Show all commits

View file

@ -0,0 +1,24 @@
# ADR: Payment Boundary
## Context
결제 시스템은 다양한 서비스와 상호 작용하며, 이러한 상호 작용의 경계와 책임을 명확히 하는 것이 중요합니다. 본 ADR은 결제 관련 서비스의 경계를 정의합니다.
## Decision
결제 서비스는 다음과 같은 주요 구성 요소와 인터페이스를 포함해야 합니다:
- 사용자 인증 및 권한 부여
- 결제 생성 및 처리
- 결제 상태 조회 API
결제 시스템은 서비스 간의 명확한 경계를 유지하도록 설계합니다. 각 서비스는 독립적으로 배포 가능해야 하며, 결제 처리는 비동기식으로 진행됩니다.
## Alternatives
1. 모든 결제 관련 기능을 단일 서비스로 통합
- 장점: 구현이 간단하고 초기 개발 속도가 빠름
- 단점: 서비스가 무거워지고 확장성이 낮아짐
2. 서버리스 아키텍처를 사용하여 각 기능을 독립적인 Lambda 함수로 구현
- 장점: 비용 효율적이고 유연함
- 단점: 관리해야 할 함수의 수가 많아질 수 있음
## Consequences
이 결정에 따라 결제 시스템은 서비스 간의 책임 분리 및 독립적인 배포가 가능해지고, 운영 효율성이 향상됩니다. 그러나 각 서비스 간의 데이터 일관성을 유지하는 추가적인 작업이 필요할 수 있습니다. 또한, 비동기 결제 처리는 사용자의 응답 시간이 길어질 수 있습니다.