[시스템 아키텍처] Monolithic Architecture vs MSA(Microservice Architecture)
본 포스팅은 인프런 강의
스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
섹션 1을 수강 후 해당 내용을 정리하여 작성하였습니다.
시스템 아키텍쳐란 시스템의 구조나 설계방식을 의미한다.
대표적으로 Monolithic Architecture와 Microservice Architecture가 있다.
Monolithic Architecture는 모든 기능이 하나의 애플리케이션에 통합된 아키텍쳐이다.
모든 기능이 통합되어 있기 때문에 개발이 쉽고 애플리케이션이 하나이기 때문에 관리하기 쉽다.
시스템이 작은 경우 대부분 Monolithic Architecture으로 개발한다.
하지만 시스템이 커지는 경우 일부 기능의 장애가 다른 기능으로 전파될 가능성이 있고
일부 기능만 배포하면 되는데 전체 시스템을 배포해야하기 때문에 유지보수가 힘들어 진다.
거대한 시스템을 Monolithic Architecture으로 구성한다는건 큰 위험성을 안게 된다.
Microservice Architecture, 줄여서 MSA는 이러한 문제를 해결할 수 있다.
MSA는 작고 독립적인서비스인 '마이크로서비스'로 구성된 아키텍쳐로,
각자 다른 기능을 수행하는 애플리케이션들이 유기적으로 연결되어 하나의 시스템을 이룬다.
각 서비스들은 독립적으로 실행되기 때문에 장애가 전파되지 않고, 빠른 빌드 및 배포가 가능하다.
또한 서비스별로 다양한 기술 스택을 사용할 수 있고, 자유로운 확장이 가능하다.
하지만 개발 난이도가 높아지고, 각 서비스가 통신하기 위핸 별도의 통신비용이 발생한다.
트랜잭션 관리가 어렵고, 서비스 분리 기준 정책도 수립하여야 한다.
내가 만든 백엔드 서버를 숫자로 자랑하는 법 | 신뢰성, 성능, 가용성 지표 (0) | 2025.06.23 |
---|---|
[인프런 수강후기] 스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판 (1) | 2025.04.30 |
[Kafka] MSA에서 Kafka가 필요한 이유 | 구조, 동작방식, 장단점 (0) | 2025.04.17 |
RAM을 내주고 성능을 얻는 Redis에 대하여.. | 레디스의 특징 및 단점 (0) | 2025.04.15 |
인덱스 만들었다고 안심하면 안되는 이유 | 페이징 쿼리 성능 개선 (0) | 2025.04.02 |