MSA ‐ Microservice와 Spring Cloud - dnwls16071/Backend_Study_TIL GitHub Wiki
📚 Monolith Architecture vs Microservice Architecture
[ Monolith Architecture ]
- 모든 업무 로직이 하나의 애플리케이션 형태로 패키지되어 서비스
- 애플리케이션에서 사용하는 데이터가 한 곳에 모여 참조되어 서비스되는 형태
[ Microservice Architecture ]

- 전체 시스템을 여러 개의 작은 서비스(마이크로서비스)로 분리하여 각각 독립적으로 개발, 배포, 운영할 수 있는 아키텍처
- 각 서비스는 특정 비즈니스 기능을 담당하며, 자체 데이터베이스와 저장소를 가질 수 있음
- 서비스 간에는 주로 API(REST, gRPC 등)를 통해 통신하며, 느슨하게 결합되어 있음
- 개별 서비스의 확장, 장애 대응, 배포가 용이하여 민첩성과 유연성이 높음
- 다양한 기술 스택을 서비스별로 선택하여 적용할 수 있음
📚 SOA vs MSA
- 서비스 공유 지향점에서의 차이
- SOA - 재사용을 통한 비용 절감
- MSA - 서비스 간 결합도를 낮추어 변화에 능동적으로 대응
- 기술 방식
- SOA - 공통 서비스를 ESB에 모아 사업 측면에서 공통 서비스 형식으로 제공
- MSA - 각 독립된 서비스가 노출된 REST API를 사용
📚 Spring Cloud
- Spring Cloud는 마이크로서비스 환경에서 필요한 다양한 인프라 문제(서비스 등록/발견, 설정 관리, 장애 대응, 트래픽 관리 등)를 손쉽게 처리할 수 있도록 여러 프로젝트를 통합한 솔루션
- Spring Boot와 함께 사용하면 마이크로서비스 개발이 더욱 간편