MSA 적용 - 분리

박수민·2024년 6월 5일
0

MSA 적용 단계

step 0 모놀리식 아키텍쳐 상태에서 MSA를 적용할 때 급박하게 바로 step3로 넘어가는 것은 위험부담이 있어, step을 차례로 진행해 보겠다.

모놀리식 -> MSA Step1 적용 실습

위 사진은 모놀리식 프로젝트의 구조입니다. 이커머스 프로젝트를 진행 중이며 패키지별 간단한 설명을 하고 넘어가겠습니다.

  • address : 사용자 주소 관련 내용입니다. 사용자 1명이 여러개의 주소를 가질 수 있어 별도로 분리되어있습니다.

  • global : 설정관련 내용이 담겨있습니다. JWT토큰이나 Global Exception 등이 담겨있습니다.

  • kakaopay : 결제모듈로 선택한 kakao pay 부분 입니다.

  • order : 실질적인 주문 내용입니다.

  • product : 상품 관련 내용입니다.

  • review : 주문 상품에 대한 리뷰 내용입니다.

  • s3 : 상품과 리뷰에 관한 이미지 관련 내용입니다.

  • user : 유저에 관한 내용입니다.

각 도메인 패키지에는 각각 controller, service, repository, entity, dto로 구성되어있다
이를 MSA로 분리해보겠습니다. 예시로 한 부분만 표시하겠습니다.

요약

먼저 모놀리식 아키텍쳐에서 각각의 파트로 코드를 분리하였고, 데이터 베이스를 하나만 사용하고 있으며 각각의 프로젝트가 각각의 기능을 수행하고 있습니다. 다만 여러 문제점 또한 발생하고 있습니다.

우선 분리된 프로젝트의 기능을 정리해보겠다.

  • User : User 패키지 & Address 패키지

  • Product : Product 패키지 & S3 패키지

  • Order : Order 패키지 & KakaoPay 패키지

  • Review : Review 패키지 & S3 패키지

    • S3나 KakaoPay는 별도로 분리하면 좋겠지만 외부 API와의 통신파트이기 때문에 통신과정에서의 문제를 아직 해결하기 어려울 거 같다는 분석 하에 통합하기로 결정하였다.
  • 공통적으로 JWT 토큰 관련 로직, Global Exception부분에서 중복이 발생하였습니다.

    • 모든 프로젝트에 공통으로 들어가는 내용이다 이 코드가 모든 프로젝트에 공통적으로 작성되고 있다.

다음 게시글에서는 중복이 발생하는 문제에 대해 해결하는 방법에 대해서 다뤄보겠습니다.

0개의 댓글