종우의 삶 (전체 공개)

MSA Project - Monolithic 구성 본문

개발/Spring

MSA Project - Monolithic 구성

jonggae 2024. 7. 16. 14:01

* 따로 정리하던 내용들을 하나씩 블로그로 작성함.

* 현재 진행중인 MSA 관련 프로젝트에서, 어떤 것들을 진행하고 있는지 살펴보자.

 

* 모놀리식 구성과 이후  MSA의 형태는 약간 다르다. 각각의 단계에서 어떤 것들을 구현하였는지 정리하였다.

 

MSA를 도입하기 전, 우선 하나의 프로젝트를 구성

사실 MSA에 대한 큰 고려를 하지 않고 늘 하던대로 하나의 프로젝트를 구성하였는데, 이후 서비스를 분리하여 구성할 때 분리 자체가 어려운 부분이 있었다. 그건 나중의 이야기이므로 현재의 상황을 살펴보자

 

Customer, Product, Order 3개의 커다란 서비스를 중심으로 세부적인 내용들을 조정하였다. 

주요 서비스 외에도 Security, Redis, Api응답을 위한 일반적인 서비스들도 존재한다.

 

Customer Service

Api 명세

  • 회원 가입 요청, 회원 가입 확인 이메일 발송,  redis의 토큰 관리
  • 회원 가입 확인
  • 로그인
  • 로그아웃
  • 마이 페이지 (나의 주문목록과 위시리스트를 확인할 수 있음)
  • 마이 페이지 수정 (회원 정보 수정)

Customer - Spring Security

회원과 관련된 Customer 서비스에서는 회원 가입과 로그인 등 인증, 인가에 필요한 시큐리티 설정이 필요하다.

  • JWT
  • Refresh Token
  • Access Token
  • 로그아웃

Product Service

Api 명세

  • 상품 등록 (상품 등록 권한 필요)
  • 상품 목록 전체 조회
  • 상품 상세 조회
  • 상품 정보 수정, 삭제
  • 위시리스트에 상품 추가
  • 위시리스트 상품 제거
  • 위시리스트 상품 수량 변경
  • 위시리스트 전체 비우기

Order Service

Api 명세

  • 상품을 주문에 추가하기
  • 주문 확정하기
  • 주문 상태 변경 (Admin의 권한)
  • 주문 수량 수정
  • 주문 취소

 

모놀리식 구조에서는 결제 프로세스를 작성하지 않았음.

기본적인 3개의 서비스가 서로 의존하고 참조하며 기본적인 기능들을 완성하였다.

이러한 구성을 기반으로 MSA로 어떻게 분리하게 될 지 살펴보자

Comments