강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

nmy6452님의 프로필 이미지
nmy6452

작성한 질문수

견고한 결제 시스템 구축

Payment Service 데이터 모델링

프로그램 아키텍쳐

작성

·

18

0

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

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

답변 1

0

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

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

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

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

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

단점:

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

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

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

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

nmy6452님의 프로필 이미지
nmy6452

작성한 질문수

질문하기