하나의 큰 어플리케이션을 여러개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍쳐
Monolithic Architecture는 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어있는 형태이다.
형태가 간단다고 유지보수가 용이해 소규모 프로젝트에는 Monolithic Architecture가 합리적일 경우가 많다.
하지만 서비스의 규모가 커지거나 투입되는 개발자가 많이지면 아래와 같은 한계가 보이게 된다.
이처럼 Monolithic Architecture의 한계점을 극복하고자 MSA가 등장하게 되었다.
MSA는 1개의 시스템을 독립적으로 배포 가능한 각각의 서비스로 분할하고 그 서비스들은 API를 통해 데이터를 주고 받으며 1개의 큰 서비스를 구성한다.
이처럼 Monolithic Architecture에서의 단점을 채워주는 장점을 가지고 있다.
MSA의 단점은 서비스가 분리됨에 따른 비용과 복잡도 증가에 의한 결과로 보인다.
출처 : https://dev-coco.tistory.com/164
https://velog.io/@tedigom/MSA-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1-MSA%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-3sk28yrv0e