JUNGKIMHOON
MSA (Microservice Architecture)란? 본문

Monolithic Architecture (기존)
서비스의 아키텍처를 구성할 때 모든 서비스를 구성하는 비즈니스 로직, DB, UI를 하나의 패키지에 담아 빌드하고 배포하는 방법
장점
- 빠르고 단순하게 설계 가능하다.
단점
- 서비스 부하에 개별로 대응하기 쉽지않다.
- 문제 발생시 부분의 문제가 전체 서비스 장애를 부를 수 있다.
- 하나의 framework에 종속적이다. (Spring을 사용한다면 node.js의 모듈을 사용할 수 없음)
MSA (Microservice Archtecture) ?
MSA란 마이크로 서비스 아키텍처(Micro Service Architecture)의 약자로 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 API기반의 서비스 지향적 아키텍처 스타일
MSA는 API를 통해서만 상호작용할 수 있다. 즉, 마이크로 서비스는 서비스의 end-point(접근점)을 API 형태로 외부에 노출하고, 실질적인 세부 사항은 모두 추상화한다. 내부의 구현 로직, 아키텍처와 프로그래밍 언어, 데이터베이스, 품질 유지 체계와 같은 기술적인 사항들은 서비스 API에 의해 철저하게 가려진다.
장점
- 기능에 따라 기술 스택을 다르게 사용할 수 있다.
- 서비스의 부하에 따라 개별로 핸들링할 수 있다.
단점
- 복잡성이 증가한다.
- MSA는 서비스가 분산되어 있어 트랜잭션을 유지하는 것이 어렵다.
- 통합 테스트가 어렵다
결론 : 공부를 더해야겠다.
참조