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