1개의 시스템을 독립적으로 배포 가능한 각각의 서비스로 분할하는 것
분할된 각각의 서비스는 API를 통해 데이터를 주고 받으며 하나의 큰 서비스를 구성
모든 시스템의 구성요소가 한 프로젝트에 통합되어 있는 모놀리식아키텍쳐(Monolithic Architecture)의 한계점을 극복하고자 등장
일부 서비스에 장애가 발생해도 전체 서비스에 영향을 끼치지 않음
각각의 서비스들이 서로 다른 언어와 프레임워크로 구성될 수 있음
서비스 확장 용이
서비스가 분리되어 테스트나 트랜잭션 처리 등이 어려움
서비스 간 API 통신에 대한 비용 발생
서비스 간 호출이 연속적이어서 디버깅 및 에러 트레이싱이 어려움
서비스 복잡도 증가
데이터 정합성 관리 어려움
🐌 참고자료
신입 개발자 기술면접 질문 정리 - 프로그래밍 공통/기타
Micro Service Architecture 마이크로서비스 아키텍처 간단하게 그리고 도입시 고려사항까지 !! (부제: MSA 과연 득인가 독인가)