📝 MSA란 무엇인가?
MSA(Microservice Architecture)는 하나의 애플리케이션을 작고 독립적인 단위의 서비스들로 분리하여 운영하는 아키텍처 방식이다. 각 서비스는 하나의 기능 또는 도메인을 담당하며, 독립적으로 배포, 개발, 유지보수할 수 있다.
- 각 서비스는 독립된 DB를 가질 수 있음
- 서비스 간 통신은 HTTP 기반의 REST API 또는 메시지 브로커를 통해 수행
- 팀 단위로 책임 분담 가능
⚙️ MSA 도입 및 적용 흐름
1. 단일 애플리케이션을 도메인별로 나누기
기존 모놀리식(monolithic) 구조에서 다음과 같은 단위로 분리한다.
각 서비스는 별도의 Spring Boot 프로젝트 등으로 관리할 수 있다.
2. 서비스별 데이터베이스 분리
- 각 마이크로서비스는 자신의 데이터베이스만 접근
- 다른 서비스의 데이터가 필요할 경우 직접 접근이 아닌 API 호출 또는 메시지를 통한 간접 연동이 원칙
3. 서비스 간 통신 방식 구성