결제 전환 목표 아키텍처 정의 #1
1 changed files with 6 additions and 12 deletions
|
|
@ -1,20 +1,14 @@
|
||||||
# 결제 아키텍처 결정 기록 (ADR)
|
# ADR: Payment Boundary
|
||||||
|
|
||||||
## Context
|
## Context
|
||||||
|
In our architecture, we aim to define the boundaries of the payment domain. This is vital for ensuring that our system is modular and easily maintainable. The payment process will interface with external gateways while keeping the core business logic separate from these integrations.
|
||||||
결제 처리 시스템의 아키텍처를 정의하기 위한 선택과 이유에 대한 문서이다. 시스템의 다양한 패키지 간의 경계와 의존성을 명확히 하고, 외부 결제 게이트웨이에 대한 접근 방식도 정의한다.
|
|
||||||
|
|
||||||
## Decision
|
## Decision
|
||||||
|
We have decided to place the external payment gateway behind a port interface. This allows us to decouple our domain logic from the specific implementations of payment providers, thus making it easier to adapt to changes in external systems.
|
||||||
1. 외부 결제 게이트웨이는 포트 인터페이스 뒤에 두며, 도메인 레이어는 애드패터를 직접 참조하지 않는다.
|
|
||||||
2. 결제 시스템은 도메인 주도 설계를 따르며, 결제 관련 책임을 도메인 모델로 전이한다.
|
|
||||||
|
|
||||||
## Alternatives
|
## Alternatives
|
||||||
|
1. **Direct integration with payment gateways:** This approach would tightly couple our domain layer with external systems, making changes difficult and increasing risk.
|
||||||
- 결제 게이트웨이를 도메인에서 직접 참조하는 접근 방식을 고려했으나, 이는 도메인과 외부 시스템 간의 결합도를 높여 유지보수성을 저하시킬 수 있다.
|
2. **Using an event-driven architecture:** While this could provide more flexibility, it introduces complexity and may lead to challenges in ensuring consistency.
|
||||||
- 다른 아키텍처 패턴인 CRUD API 패턴을 고려했으나, 비즈니스 로직의 복잡성을 처리하기 적합하지 않다.
|
|
||||||
|
|
||||||
## Consequences
|
## Consequences
|
||||||
|
By implementing this boundary, we gain the ability to change payment providers with minimal changes to our internal domain logic. However, we must carefully manage the interfaces and ensure that they are well-defined and stable to avoid integration challenges in the future.
|
||||||
- 결제 시스템의 유연성과 확장성이 향상되며, 외부 시스템과의 결합이 줄어들어 재사용성과 유지보수성이 증가한다.
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue