## `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/)