지금까지 진행했던 프로젝트는 대부분 동아리나 개인 프로젝트 형태였기 때문에, 하나의 애플리케이션 중심으로 개발을 진행하는 경우가 많았다.
하지만 현재 회사에서 진행 중인 프로젝트는 각 기능을 모듈 단위로 분리하여 여러 개의 애플리케이션으로 구성되어 있다.
이러한 구조를 Microservices Architecture(MSA) 라고 한다.
이번 글에서는 MSA의 개념과 특징에 대해 정리해보고자 한다.
[모놀리식 - 전통 방식]
┌─────────────────────────┐
│ 하나의 큰 애플리케이션 │
│ - 회원 관리 │
│ - 주문 처리 │
│ - 결제 처리 │
│ - 상품 관리 │
└─────────────────────────┘
→ 한 부분만 수정해도 전체 재배포
[MSA - 마이크로서비스]
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│회원 서비스 │ │주문 서비스 │ │결제 서비스 │ │상품 서비스 │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
→ 각각 독립적으로 개발/배포/운영
각 모듈(서비스)은:
쿠팡 같은 서비스:
- 회원 모듈 (로그인, 회원가입)
- 상품 모듈 (상품 검색, 상세)
- 주문 모듈 (장바구니, 주문)
- 결제 모듈 (결제 처리)
- 배송 모듈 (배송 추적)
- 리뷰 모듈 (상품 리뷰)
→ 각각 별도 팀이 개발/관리
장점:
단점: