Computer Science/아키텍처
[아키텍처] 모놀리식 아키텍처 vs 마이크로서비스 아키텍처
웅지니어링
2025. 2. 26. 23:58
* 시스템 아키텍처
시스템 아키텍처는 시스템의 구조나 설계 방식을 의미한다.
시스템 아키텍처는 시스템의 확장성, 유지보수성, 성능에 큰 영향을 미친다.
* 모놀리식 아키텍처
모놀리식 아키텍처는 애플리케이션의 모든 기능이 하나로 통합된 아키텍처를 의미한다.
모놀리식 아키텍처가 적용된 애플리케이션은 서비스의 모든 기능을 포함하고 있다.
간단한 구조를 가지기 때문에 초기에 쉽고 빠르게 개발할 수 있다.
* 모놀리식 아키텍처의 특징
- 모든 기능이 단일 코드베이스로 결합
- 소규모 시스템에서 개발 및 배포가 간단하기 때문에 자주 사용됨
- 따라서 빠르고 효율적으로 개발 가능
- 특정 부분만 확장하기가 어려움
- 변경 사항이 시스템 전체에 영향을 미침
- 대규모 시스템에서 적용하려고 할 때, 복잡도가 커지고 개발이 어려워짐
* 마이크로서비스 아키텍처
마이크로서비스 아키텍처는 시스템이 작고 독립적인 서비스로 구성된다.
단일 애플리케이션에 기능이 모두 포함되는 모놀리식 아키텍처와는 달리 각각의 기능이 마이크로서비스로 분리된다.
예를 들어, 하나의 애플리케이션에 기능이 10개가 있다고 하자.
이 애플리케이션에 마이크로서비스 아키텍처를 적용한다면, 하나의 애플리케이션이 아니라 10개의 애플리케이션으로 분리된다.
* 마이크로서비스 아키텍처의 특징
- 시스템이 작고 독립적인 서비스로 구성
- 각 서비스는 단일 기능을 담당하며, 독립적 배포가 가능
- 서비스 단위로 유연한 확장 가능
- 서비스 간 복잡한 통신 및 모니터링 필요
- 데이터 일관성 및 트랜잭션 관리의 어려움
- 어려운 개발 난이도
* 정리
구분 | 모놀리식 아키텍처(MA) | 마이크로서비스 아키텍처(MSA) |
구조 | 통합 | 분산 |
결합도 | 높음 | 낮음 |
확장성 | 개별 확장 어려움 | 개별 확장 쉬움 |
배포 | 통합 배포 | 독립 배포 |
기술 스택 | 단일 기술 스택 | 여러 기술 스택 가능 |
변경 전파 범위 | 시스템 전체 | 서비스 또는 전파 범위 이내 |
통신 비용 | 낮음 | 높음 |
개발 난이도 | 소규모일수록 쉬움 | 어려움 |