Computer Science/아키텍처

[아키텍처] 모놀리식 아키텍처 vs 마이크로서비스 아키텍처

웅지니어링 2025. 2. 26. 23:58

* 시스템 아키텍처

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

시스템 아키텍처는 시스템의 확장성, 유지보수성, 성능에 큰 영향을 미친다.

 

* 모놀리식 아키텍처

모놀리식 아키텍처는 애플리케이션의 모든 기능이 하나로 통합된 아키텍처를 의미한다.

모놀리식 아키텍처가 적용된 애플리케이션은 서비스의 모든 기능을 포함하고 있다.

간단한 구조를 가지기 때문에 초기에 쉽고 빠르게 개발할 수 있다.

 

* 모놀리식 아키텍처의 특징

- 모든 기능이 단일 코드베이스로 결합

- 소규모 시스템에서 개발 및 배포가 간단하기 때문에 자주 사용됨

- 따라서 빠르고 효율적으로 개발 가능

- 특정 부분만 확장하기가 어려움

- 변경 사항이 시스템 전체에 영향을 미침

- 대규모 시스템에서 적용하려고 할 때, 복잡도가 커지고 개발이 어려워짐

 

* 마이크로서비스 아키텍처

마이크로서비스 아키텍처는 시스템이 작고 독립적인 서비스로 구성된다.

단일 애플리케이션에 기능이 모두 포함되는 모놀리식 아키텍처와는 달리 각각의 기능이 마이크로서비스로 분리된다.

예를 들어, 하나의 애플리케이션에 기능이 10개가 있다고 하자.

이 애플리케이션에 마이크로서비스 아키텍처를 적용한다면, 하나의 애플리케이션이 아니라 10개의 애플리케이션으로 분리된다.

 

* 마이크로서비스 아키텍처의 특징

- 시스템이 작고 독립적인 서비스로 구성

- 각 서비스는 단일 기능을 담당하며, 독립적 배포가 가능

- 서비스 단위로 유연한 확장 가능

- 서비스 간 복잡한 통신 및 모니터링 필요

- 데이터 일관성 및 트랜잭션 관리의 어려움

- 어려운 개발 난이도

 

 * 정리

구분 모놀리식 아키텍처(MA) 마이크로서비스 아키텍처(MSA)
구조 통합 분산
결합도 높음 낮음
확장성 개별 확장 어려움 개별 확장 쉬움
배포 통합 배포 독립 배포
기술 스택 단일 기술 스택 여러 기술 스택 가능
변경 전파 범위 시스템 전체 서비스 또는 전파 범위 이내
통신 비용 낮음 높음
개발 난이도 소규모일수록 쉬움 어려움