## `Micro Service Architecture` 란?
줄여서 **MSA**. [[0. Monolithic Architecture|Monolithic Architecture]]의 대안인 분산 시스템 아키텍쳐 중 한 종류. 한 애플리케이션에서 모든 기능을 제공하지 **않**고, 기능 위주로 애플리케이션을 분리한 다음 미리 정의된 인터페이스를 통해 서로 유기적으로 동작하도록 설계된 것. 대규모 시스템 구축에 적합하다.
#Micro_Service_Architecture
## MSA 예시
![[Pasted image 20231205123225.png]][출처](https://medium.com/design-microservices-architecture-with-patterns/microservices-architecture-2bec9da7d42a)
## 언제 MSA가 필요한가?
| 시나리오 | Monolith | MSA |
| --------------------------------------------- | -------- | --- |
| 소규모 애플리케이션 개발 | O | X |
| 개발 자원이 부족한 상황 | O | X |
| 서비스 기능이 단순한 경우 | O | X |
| 유지보수의 필요성이 적은 경우 | O | X |
| 니즈에 맞춰 추가 기능을 빠르게 많이 개발하는 경우 | X | O |
| 높은 확장성이 필요한 경우 | X | O |
| [[IT 용어 정리 📕#`단일 장애 지점`\|결함 허용 시스템]]이 필요한 경우 | X | O |
| 여러 기술 스택을 활용하고 싶은 경우 | X | O |
## 참조
- [Monolithic vs Microservices Architecture](https://www.geeksforgeeks.org/monolithic-vs-microservices-architecture/)