spring-architecture-resilie.../docs/architecture/adr-payment-boundary.md

1.1 KiB

결제 경계에 대한 결정 기록

Context

결제 시스템은 사용자에게 다양한 결제 수단을 제공하여 전환율을 높이는 목표를 가지고 있다. 사용자가 결제하는 동안 안정성을 보장하고, 시스템의 확장성과 유지 관리성을 확보해야 한다.

Decision

결제를 처리하는 주요 경계는 controller, service, repository, integration으로 정의된다. 외부 결제 게이트웨이는 포트 인터페이스 뒤에 위치해야 하며, 도메인에서 어댑터를 직접 참조하지 않는다. 이는 시스템의 결합도를 낮추고, 테스트 용이성을 높인다.

Alternatives

  1. 모든 레이어에서 외부 서비스 직접 호출: 이는 결합도를 높이고 테스트를 복잡하게 만든다.
  2. 다양한 결제 수단을 위해 여러 서브 도메인 생성: 이는 시스템을 복잡하게 한다.

Consequences

현재 결정된 경계에 따라, 결제 전환 목표를 달성하기 위한 기본 아키텍처가 수립됨. 그러나 외부 서비스의 변경이나 결제 방식을 추가할 때 경계가 신중하게 다루어져야 한다.