Skip to content

Repository files navigation

간편결제 시스템
Domain Driven Desgin 개발 철학, Micro Server Architecture, Hexagonal Architecture를 연습 및 적용해보고자 한 간편결제 프로젝트입니다.

이 시스템의 주요 목적은 사용자가 MK머니를 충전하고, 외부 가맹점 또는 특정 사용처에서 이를 소비할 수 있도록 지원하는 것입니다. 수익 모델은 사용자의 포인트를 보유함으로써 발생하는 이자 수익과, 가맹점 또는 사용처로부터 수수료를 받는 구조입니다. 따라서, 사용자가 쉽고 안정적으로 포인트를 충전하고 소비할 수 있도록 하는 것이 가장 핵심적인 비즈니스 로직입니다.

필요한 기능은 다음과 같습니다.

  1. 머니 충전 및 차감
  2. 사용자 관리
  3. 계좌 관리
  4. 결제한 내역 관리
  5. 가맹점 관리

각 기능들은 독립적인 책임과 역할을 가지며 다른 기능과 상호작용합니다. 기능들이 하나의 서비스에서 개발된다면 응집력이 낮아지고 서로 결합되며 big ball of mud 형태가 될 수 있고 각 명확한 책임을과 역할을 가지고 주요한 도메인이 존재하기 때문에 DDD의 Bounded-context 개념과 context-map을 통해 적절히 나눴습니다.

MSA와 DDD를 통해서 다음과 같은 이점을 얻을 수 있었습니다.

  1. 서비스간 결합성을 낮추고 응집력 올려 각 서비스의 명확한 역할을 부여할 수 있었습니다.
  2. 유연한 기능 확장 및 배포단위 최소화
  3. 변경에 빠른 대처가 가능하다.
  4. 다른 서비스의 오류에 영향이 낮음
  5. 단독적인 스케일 가능

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages