결제 전환 목표 아키텍처 정의 #1

Open
forge-bot wants to merge 6 commits from forge/SPRING-ARC-CONVERGE-1783828654-attempt-2 into main
Showing only changes of commit 90a44290b4 - Show all commits

View file

@ -1,15 +1,20 @@
# 결제 경계 결정 (ADR 001)
# 결제 아키텍처 결정 기록 (ADR)
## Context
결제 시스템의 아키텍처에서는 결제 게이트웨이를 외부의 포트 인터페이스 뒤에 배치하고, 도메인에서 어댑터를 직접 참조하지 않도록 합니다. 이는 결제 전환의 안정성을 높이고, 유지보수를 용이하게 하기 위한 결정입니다.
결제 처리 시스템의 아키텍처를 정의하기 위한 선택과 이유에 대한 문서이다. 시스템의 다양한 패키지 간의 경계와 의존성을 명확히 하고, 외부 결제 게이트웨이에 대한 접근 방식도 정의한다.
## Decision
결제 시스템은 아래와 같은 구조로 구성됩니다:
- 결제 프로세싱: 결제 요청을 받아 처리하며, 외부 결제 게이트웨이와의 인터페이스를 통해 결제를 수행합니다.
1. 외부 결제 게이트웨이는 포트 인터페이스 뒤에 두며, 도메인 레이어는 애드패터를 직접 참조하지 않는다.
2. 결제 시스템은 도메인 주도 설계를 따르며, 결제 관련 책임을 도메인 모델로 전이한다.
## Alternatives
- 결제 어댑터를 도메인에서 직접 참조하는 방안: 이 경우 모든 변경 사항이 도메인에 직접 영향을 미치게 되며, 결제 시스템의 회복력이 떨어질 수 있습니다.
- 결제 게이트웨이를 도메인에서 직접 참조하는 접근 방식을 고려했으나, 이는 도메인과 외부 시스템 간의 결합도를 높여 유지보수성을 저하시킬 수 있다.
- 다른 아키텍처 패턴인 CRUD API 패턴을 고려했으나, 비즈니스 로직의 복잡성을 처리하기 적합하지 않다.
## Consequences
- 외부 결제 게이트웨이와의 의존성을 최소화한다는 장점을 가집니다. 그러나 외부 시스템의 변경 시 유연성이 떨어질 수 있는 단점이 있습니다.
- 결제 시스템의 유연성과 확장성이 향상되며, 외부 시스템과의 결합이 줄어들어 재사용성과 유지보수성이 증가한다.