From fc5b9deb4da8c8ddb66a9bf46a4d7db23301a60b Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 04:26:29 +0000 Subject: [PATCH 1/5] forge: open work branch for SPRING-ARC-SCHEMA-1783830385-attempt-1 --- .forge/SPRING-ARC-SCHEMA-1783830385-attempt-1.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .forge/SPRING-ARC-SCHEMA-1783830385-attempt-1.md diff --git a/.forge/SPRING-ARC-SCHEMA-1783830385-attempt-1.md b/.forge/SPRING-ARC-SCHEMA-1783830385-attempt-1.md new file mode 100644 index 0000000..928292a --- /dev/null +++ b/.forge/SPRING-ARC-SCHEMA-1783830385-attempt-1.md @@ -0,0 +1,3 @@ +# SPRING-ARC-SCHEMA-1783830385-attempt-1 + +Forge 이슈 작업 브랜치 `forge/SPRING-ARC-SCHEMA-1783830385-attempt-1`. -- 2.49.1 From 8a242e35861d9e3a9498c55cfb85a6d7dbd3f635 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 04:27:58 +0000 Subject: [PATCH 2/5] =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EC=A0=84=ED=99=98=20?= =?UTF-8?q?=EB=AA=A9=ED=91=9C=20=EC=95=84=ED=82=A4=ED=85=8D=EC=B2=98=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20(SPRING-ARC-SCHEMA-1783830385)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architecture/adr-payment-boundary.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 docs/architecture/adr-payment-boundary.md diff --git a/docs/architecture/adr-payment-boundary.md b/docs/architecture/adr-payment-boundary.md new file mode 100644 index 0000000..b7a15de --- /dev/null +++ b/docs/architecture/adr-payment-boundary.md @@ -0,0 +1,15 @@ +# 결제 전환 목표 아키텍처 결정 기록 + +## Context +결제 시스템의 경계를 정의하고, 외부 결제 게이트웨이와의 상호작용을 명확히 하기 위해 아키텍처 결정을 내린다. + +## Decision +결제 도메인은 외부 결제 게이트웨이에 대한 의존성을 포트 인터페이스를 통해 관리하며, 도메인에서 직접 어댑터를 참조하지 않는다. + +## Alternatives +1. 도메인에서 직접 외부 결제 게이트웨이를 참조하는 방법 +2. 포트 인터페이스를 사용하지 않고 모든 의존성을 직접 관리하는 방법 + +## Consequences +- 외부 결제 시스템과의 의존성이 줄어들어 테스트 용이성이 증가한다. +- 시스템의 유연성이 향상되어 다양한 결제 게이트웨이와의 통합이 용이해진다. \ No newline at end of file -- 2.49.1 From 0189a9e5020f382a5dc685620bd00ac8e1cbfeb6 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 04:27:59 +0000 Subject: [PATCH 3/5] =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EC=A0=84=ED=99=98=20?= =?UTF-8?q?=EB=AA=A9=ED=91=9C=20=EC=95=84=ED=82=A4=ED=85=8D=EC=B2=98=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20(SPRING-ARC-SCHEMA-1783830385)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architecture/package-map.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docs/architecture/package-map.md diff --git a/docs/architecture/package-map.md b/docs/architecture/package-map.md new file mode 100644 index 0000000..d39b306 --- /dev/null +++ b/docs/architecture/package-map.md @@ -0,0 +1,7 @@ +| 패키지 | 책임 | 금지 의존성 | +|--------------|--------------------------------------------|--------------------------| +| controller | 사용자 요청을 처리하고 응답을 반환 | service, repository | +| service | 비즈니스 로직을 처리 | repository | +| repository | 데이터베이스와의 상호작용 | domain | +| domain | 도메인 모델과 비즈니스 규칙을 정의 | integration | +| integration | 외부 시스템과의 통합을 처리 | domain | \ No newline at end of file -- 2.49.1 From bfd8645542ad3df9443a1469cbe658249e4acbf9 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 04:28:00 +0000 Subject: [PATCH 4/5] =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EC=A0=84=ED=99=98=20?= =?UTF-8?q?=EB=AA=A9=ED=91=9C=20=EC=95=84=ED=82=A4=ED=85=8D=EC=B2=98=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20(SPRING-ARC-SCHEMA-1783830385)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architecture/transaction-sequence.md | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 docs/architecture/transaction-sequence.md diff --git a/docs/architecture/transaction-sequence.md b/docs/architecture/transaction-sequence.md new file mode 100644 index 0000000..fdc2ff0 --- /dev/null +++ b/docs/architecture/transaction-sequence.md @@ -0,0 +1,29 @@ +```mermaid +sequenceDiagram + participant User + participant Controller + participant Service + participant Repository + participant ExternalGateway + + User->>Controller: 결제 요청 + Controller->>Service: 결제 처리 요청 + Service->>Repository: 결제 정보 저장 + alt 정상 흐름 + Repository-->>Service: 저장 성공 + Service->>ExternalGateway: 결제 요청 + ExternalGateway-->>Service: 결제 성공 + Service-->>Controller: 성공 응답 + Controller-->>User: 결제 완료 + else 외부 실패 + Repository-->>Service: 저장 성공 + Service->>ExternalGateway: 결제 요청 + ExternalGateway-->>Service: 결제 실패 + Service-->>Controller: 실패 응답 + Controller-->>User: 결제 실패 + else DB 실패 + Repository-->>Service: 저장 실패 + Service-->>Controller: 실패 응답 + Controller-->>User: 결제 실패 + end +``` \ No newline at end of file -- 2.49.1 From f8ad884870849e2b20b528945a82e407941f0c04 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sun, 12 Jul 2026 04:29:19 +0000 Subject: [PATCH 5/5] =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EC=A0=84=ED=99=98=20?= =?UTF-8?q?=EB=AA=A9=ED=91=9C=20=EC=95=84=ED=82=A4=ED=85=8D=EC=B2=98=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20(1/2)=20(SPRING-ARC-SCHEMA-1783830385)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/architecture/adr-payment-boundary.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/architecture/adr-payment-boundary.md b/docs/architecture/adr-payment-boundary.md index b7a15de..d1034a3 100644 --- a/docs/architecture/adr-payment-boundary.md +++ b/docs/architecture/adr-payment-boundary.md @@ -1,15 +1,21 @@ -# 결제 전환 목표 아키텍처 결정 기록 +# Payment Boundary Architectural Decision Record (ADR) ## Context -결제 시스템의 경계를 정의하고, 외부 결제 게이트웨이와의 상호작용을 명확히 하기 위해 아키텍처 결정을 내린다. +이 문서에서는 결제 관련 시스템의 경계를 정의합니다. 결제 시스템은 다양한 외부 결제 게이트웨이와 통신하여 트랜잭션을 처리하며, 이와 관련된 도메인 모델과 서비스를 제공합니다. ## Decision -결제 도메인은 외부 결제 게이트웨이에 대한 의존성을 포트 인터페이스를 통해 관리하며, 도메인에서 직접 어댑터를 참조하지 않는다. +결제 시스템은 포트-어댑터 패턴(또는 헥소고날 아키텍처)을 기반으로 하여 외부 결제 게이트웨이와의 의존성을 최소화합니다. 도메인 계층은 직접적으로 외부 결제 게이트웨이에 의존하지 않고, 인터페이스를 통해 이들에 접근합니다. ## Alternatives -1. 도메인에서 직접 외부 결제 게이트웨이를 참조하는 방법 -2. 포트 인터페이스를 사용하지 않고 모든 의존성을 직접 관리하는 방법 +1. **직접 의존성** + - 도메인 모델이 외부 결제 게이트웨이 API를 직접 호출. + - 이 방식은 의존성이 강해지며, 결제를 처리하는 로직의 변경이 필요할 때마다 도메인 모델의 변경이 필요하게 됩니다. + +2. **서비스 레이어 사용** + - 서비스 계층이 외부 결제 게이트웨이와의 통신을 담당. + - 의존성을 줄이기는 하였으나, 도메인 계층과 서비스 계층 간의 서비스 호출이 필요하여 복잡성이 증가할 수 있습니다. ## Consequences -- 외부 결제 시스템과의 의존성이 줄어들어 테스트 용이성이 증가한다. -- 시스템의 유연성이 향상되어 다양한 결제 게이트웨이와의 통합이 용이해진다. \ No newline at end of file +- **긍정적인 결과**: 도메인 모델의 변경 없이 결제 게이트웨이를 교체할 수 있어 확장성이 증가합니다. +- **부정적인 결과**: 인터페이스의 변경이 발생할 경우, 해당 인터페이스를 구현한 어댑터에 대한 유지보수가 필요합니다. + -- 2.49.1