diff --git a/docs/architecture/adr-payment-boundary.md b/docs/architecture/adr-payment-boundary.md new file mode 100644 index 0000000..ea1a8ba --- /dev/null +++ b/docs/architecture/adr-payment-boundary.md @@ -0,0 +1,18 @@ +# ADR: 결제 경계 정의 + +## Context +현재 시스템에서 결제를 처리하는 방식은 여러 서비스 간 의존성이 크고, 특정 결제 게이트웨이에 종속적입니다. 이를 개선하기 위해 결제 서비스의 경계를 명확히 하고 독립성을 확보하는 것이 필요합니다. + +## Decision +결제 서비스는 외부 결제 게이트웨이에 대한 포트 인터페이스를 정의하고, 도메인 모델에서 애드블레이터를 직접 참조하지 않도록 설계합니다. 이를 통해 결제 관련 기능을 서비스와 리포지토리 계층으로 분리하여 각 층의 독립성을 강화합니다. + +## Alternatives +1. 결제 서비스를 기존 방식대로 유지하고 결제 게이트웨이에 직접 의존하도록 하는 것 + - 장점: 기존 코드 변경 없음 + - 단점: 유지보수 및 확장성 저하 +2. 결제 서비스를 완전 독립형으로 개발 + - 장점: 독립성 극대화 + - 단점: 초기 개발 비용 증가 + +## Consequences +양방향 의존성을 제거함으로써 시스템 전체의 유지보수성이 향상되고, 독립적으로 결제 서비스를 변경할 수 있는 능력이 확보됩니다. 그러나 초기 설계와 변경 과정에서 추가적인 리소스를 소요할 수 있습니다.