: 마이크로서비스는 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식이다. 원래는 전체적으로 통제하던것을 API하나하나에 직접 연결해서 유지보수와 기능구현을 편하게 해주는 것이다.
- 분산형 개발을 통해 효율적인 개발 가능(출시 기간 단축)
- 개별 서비스가 다른 서비스에 부정적인 영향을 주지 않으면서 작동할 수 있음(유지보수)
- 다른 서비스들과 유연하게 결합하며(언어의 제약 X) 향후 확장 및 새로운 기능 통합 등에 대비할 수 있음(높은 확장성)
- 기존의 모놀리식에 비해 더욱 모듈화되었기 때문에 배포에 따른 우려 사항들이 적어짐(손쉬운 배포)
- 개발자들이 각각의 서비스를 파악하고 개선하기에 용이해짐(편리한 액세스)
- 큰 프로젝트에는 많은 서비스들이 존재하므로, 모든 서비스를 모니터링 하는 오버헤드가 증가함
- 서비스에서 다른 서비스를 호출하므로 서비스에 장애가 발생한 경우 경로 및 장애 추적이 힘들 수 있음
- 서비스별로 로그가 생성되기 때문에 중앙 로그 모니터링은 존재하지 않음
- 각 서비스는 API를 통해 통신하므로 네트워크 통신에 의한 오버헤드가 발생