종우의 삶 (전체 공개)

MSA Project - 개요 본문

개발/Spring

MSA Project - 개요

jonggae 2024. 7. 15. 16:11

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

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

 

프로젝트 소개

- Micro Service Architecture를 활용한 E- commerce 서버

- Eureka Server, API Gateway를 기반으로 서비스들을 하나로 묶어서 관리함

- Customer, Order, Product, Payment 등 필요한 서비스를 나누어 개별적인 서버로 분리

- 각 서비스의 DB는 Docker로 운영하였음. 

 

기술 스택

- Java 21

- Spring boot 3.3

- MySQL, Redis, Docker

- Eureka, API Gateway

 

 

프로젝트 주요 기능

- 일반적인 Commerce 서비스를 구성하는 기본적인 기능(상품 등록, 조회, 구매, 위시리스트 등)

- 가장 중요한 기능으로, 예약 구매라는 컨셉으로 특정한 시간에 오픈되어 소량만 구매 가능한 상품을 구매하는 서비스

- 오픈 시간에 맞추어 대량의 구매 요청을 어떻게 공정하고 빠르게 처리할 수 있는지에 대해 고민하였음.

 

ERD

Customer의 권한, 주소를 따로 구성함.

최소한의 필요한 정보들을 지정하여 상품, 사용자, 주문 등을 분리하기 쉽게 하고자 하였다.

상품, 주문, 결제 등의 기능을 MVP로 구성.

 

DB, Redis는 Docker-Compose로 구현하여 각 서비스마다 필요한 것들을 사용하였음.

이후 배포 과정에서 도움이 될 일이지만 현재로서는 배포는 고려하지 않았음.

마이크로 서비스로 분리된 서비스들을 서로 격리시켜 각각의 서비스의 독립성을 유지 할 수 있었다.

 

각 서비스의 DB는 설정이 간단하고 사용이 편리한 MySQL을 사용하였다.

Redis는 JWT Refresh 토큰, 이메일 인증에 쓰이는 인증 토큰의 처리, 상품의 재고 관리, 동시성 처리가 필요한 부분에 적절히 추가하여 사용하였음.

 

전체 아키텍쳐 설계는 이후 게시물들에서 추가함

 

이제 단계적으로 프로젝트 내용을 자세히 살펴보자.

Comments