상세 컨텐츠

본문 제목

[시스템 아키텍처] Monolithic Architecture vs MSA(Microservice Architecture)

Development Study/대용량 트래픽 처리

by yooputer 2025. 3. 25. 10:42

본문

본 포스팅은 인프런 강의

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

섹션 1을 수강  후 해당 내용을 정리하여 작성하였습니다. 


 

시스템 아키텍쳐란 시스템의 구조나 설계방식을 의미한다. 

대표적으로 Monolithic ArchitectureMicroservice Architecture가 있다. 

 

Monolithic Architecture는 모든 기능이 하나의 애플리케이션에 통합된 아키텍쳐이다. 

모든 기능이 통합되어 있기 때문에 개발이 쉽고 애플리케이션이 하나이기 때문에 관리하기 쉽다. 

시스템이 작은 경우 대부분 Monolithic Architecture으로 개발한다. 

하지만 시스템이 커지는 경우 일부 기능의 장애가 다른 기능으로 전파될 가능성이 있고

일부 기능만 배포하면 되는데 전체 시스템을 배포해야하기 때문에 유지보수가 힘들어 진다. 

거대한 시스템을 Monolithic Architecture으로 구성한다는건 큰 위험성을 안게 된다. 

 

Microservice Architecture, 줄여서 MSA는 이러한 문제를 해결할 수 있다. 

MSA는 작고 독립적인서비스인 '마이크로서비스'로 구성된 아키텍쳐로, 

각자 다른 기능을 수행하는 애플리케이션들이 유기적으로 연결되어 하나의 시스템을 이룬다. 

각 서비스들은 독립적으로 실행되기 때문에 장애가 전파되지 않고, 빠른 빌드 및 배포가 가능하다.

또한 서비스별로 다양한 기술 스택을 사용할 수 있고, 자유로운 확장이 가능하다. 

하지만 개발 난이도가 높아지고, 각 서비스가 통신하기 위핸 별도의 통신비용이 발생한다. 

트랜잭션 관리가 어렵고, 서비스 분리 기준 정책도 수립하여야 한다. 

관련글 더보기