inflearn logo
강의

講義

知識共有

堅牢な決済システムの構築

Payment Service データモデリング

프로그램 아키텍쳐

60

nmy6452

投稿した質問数 1

0

혹시 프로젝트 아키텍처는 어떤 구성을 위주로 구성하였을까요?
제가 보기에는 핵사고날 아키텍처를 일부 차용하여 성향에 맞게 적용한 것 같은데

이 아키텍처로 페이먼트서비스를 만든 이유와 장단점 같은 게 궁금합니다.

spring spring-boot dbms/rdbms backend payments 아키텍처

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. nmy6452님.

프로젝트 아키텍처에 관한 질문에 대해 생각해보면, “핵사고날 아키텍처(Hexagonal Architecture)“로 결제 시스템을 구현한 이유와 그 장단점에 관해 알려드리겠습니다.

핵사고날 아키텍처는 내부 도메인 로직을 외부로부터 보호하고, 외부 시스템 교체를 용이하게 하기 위해 만들어진 아키텍처 패턴입니다. 이 아키텍처는 사용하는 기술이 변경되더라도 최소한의 영향만 받도록 설계되었습니다.

핵사고날 아키텍처의 장점:

  1. 격리성: 내부 비즈니스 로직을 외부로부터 격리하여 외부 서비스, 라이브러리, UI 등 기술 스택의 변동에 대한 복잡성을 줄입니다.
  2. 유연성: 시스템의 주요 기능을 테스트하기 용이하게 만들어 빠른 피드백 기반의 개발을 지원합니다.
  3. 유지보수 용이성: 각 모듈이 명확히 분리되어 있어 유지보수성이 높습니다. 새로운 기능을 추가하거나 수정할 때도 다른 부분에 영향을 덜 줍니다.

단점:

  1. 복잡성 증가: 패턴을 이해하고 사용하는 데 있어 초기 학습 곡선이 있을 수 있습니다.
  2. 중복 가능성: 인터페이스와 어댑터가 많아지면 중복 코드가 생길 가능성이 있습니다.

이 아키텍처를 선택한 주된 이유는, 외부 결제 시스템과의 통합 및 사용 기술(예: Spring Webflux)를 변경할 가능성을 염두에 두고, 안정적인 결제 서비스를 제공하기 위함입니다.

추가적으로 Webflux 사용에 대한 내용도 궁금하실 것 같아 기존의 유사한 논의가 있었던 링크를 참고하시기 바랍니다:
- 강의를 듣고 문득 궁금한 점이 생겼습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

실습코드 압축해제

0

78

1

confirm 로직에서 amount를 검증하는 부분에서 질문이 있습니다.

0

53

1

Transaction Demo 질문 드립니다.

0

60

1

cdc 방식

0

83

1

seed 키 및 orderId 에 대한 질문

0

65

1

결제 이후 404 Error 발생

0

167

1

테스트 코드 중 isPaymentDone 변환

0

76

1

가상의 Checkout 기능 구현 중 질문

0

183

1

docker Mysql 설정 문의

0

106

1

allOpen 설정이 잘못된 거 같습니다.

0

115

1

recovery 동시성 처리 관련 문의

0

119

1

confluent > skip 이 더이상 안되나봅니다.

0

107

1

강의 클론 코딩한 것 public repo에 올려도 되나요?

0

330

1

멱등키에 request를 넘기는 것

0

257

1

동시성 제어 (optimistic locking) 재시도 부분 질문 드립니다.

0

173

1

결제 복구의 세부 과정을 병렬로 처리한 이유가 궁금합니다

0

222

1

전체적인 헥사고날 아키텍쳐 설명

0

275

1

주문, 결제 로직에 대해서 질문이 있습니다.

0

281

1

주문 번호 생성 방식 관련 질문 있습니다

0

927

1

R2DBC 관련해서 질문 드립니다.

0

586

3

payment 상태 업데이트 변경 메서드를 3개나 두는 이유가 궁금합니다.

0

230

2

'더 견고해지기 위해 남은 작업' 수업자료

0

298

1

혹시 코드 리뷰 신청해도 될까요...?

0

310

1

코틀린 선택 이유

0

290

1