본문 바로가기
SW 아키텍처

[SW 아키텍처] 모놀리식 아키텍처(Monolithic Architecture)

by 클레어몬트 2025. 2. 18.

"단일"

 

가장 전통적인 소프트웨어 설계 방식

ㅁ모놀리식 아키텍처(Monolithic Architecture): 하나의 애플리케이션이 단일 코드베이스로 구성되는 형태

애플리케이션의 모든 구성 요소(예: UI, 비즈니스 로직, 데이터베이스 접근)가 단일 애플리케이션으로 결합되어 배포된다

 

[모놀리식 아키텍처의 특징]

  • 단일 코드베이스: 하나의 코드베이스에서 모든 기능이 실행됨
  • 일괄 배포: 변경 사항이 있을 때 전체 애플리케이션을 재배포해야 함
  • 단일 DB 사용: 모든 기능이 공통된 DB를 공유함
  • 중앙 집중형 설계: 모든 비즈니스 로직이 한 시스템 내에서 처리됨

 

 

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

모놀리식 아키텍처는 단순한 애플리케이션에는 적합하지만, 규모가 커질수록 유지보수와 확장이 어려워진다 반면, MSA(마이크로서비스 아키텍처)는 유연성이 뛰어나지만 운영 복잡성이 증가한다
 
 

[모놀리식 아키텍처 장점]

개발이 단순함 → 모든 기능이 하나의 코드베이스에 존재하여 초기 개발이 빠름
성능 최적화 가능 → 서비스 간 네트워크 호출이 없고, 단일 프로세스에서 실행되므로 빠름
배포가 간단함 → 하나의 애플리케이션으로 배포되므로 관리가 쉬움
디버깅과 테스트가 용이 → 모든 코드가 한 곳에 있으므로 단위 테스트 및 디버깅이 쉬움
통합이 쉬움 → 모든 모듈이 한 애플리케이션 내에서 동작하므로 상호 작용이 단순함

 

 

[모놀리식 아키텍처 단점]

확장성 문제 → 특정 기능을 확장하려면 전체 애플리케이션을 수정해야 함
배포 시간 증가 → 코드 수정 시 전체 애플리케이션을 재배포해야 하므로 시간이 오래 걸릴 수 있음
기술 스택 제한모든 모듈이 동일한 기술 스택을 사용해야 하므로 유연성이 부족함
팀 협업의 어려움 → 개발 팀이 커질수록 코드 충돌 및 협업 관리가 어려워질 수 있음
유지보수 어려움 → 애플리케이션이 커질수록 코드가 복잡해지고 유지보수가 어려워짐

 

(모놀리식 아키텍처가 적합한 경우)

- 소규모 프로젝트
기능이 단순하고, 빠르게 개발 및 배포해야 하는 경우
- 초기 MVP 개발
스타트업이나 프로토타입을 빠르게 개발하고 검증하는 단계에서 유용함
- 성능이 중요한 경우
마이크로서비스의 네트워크 오버헤드 없이 단일 프로세스로 실행되므로 성능이 중요한 애플리케이션에 적합
- 일정한 트래픽을 받는 서비스
확장성이 큰 문제가 되지 않는 경우 유지보수가 쉬운 모놀리식이 유리함

 

 

 

요즈음에는 특수한 상황이 아니면, 모놀리식 아키텍처 말고 대부분 MSA 방식으로 진행한다

https://claremont.tistory.com/entry/SW-Architecture-MSAMicroServices-Architecture

 

[SW Architecture] MSA(MicroServices Architecture)

https://claremont.tistory.com/entry/SW-Architecture-Monolithic-Architecture%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8B%9D-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98 [SW Architecture] 모놀리식 아키텍처(Monolithic Architecture)가장 전통적인 소프트웨어

claremont.tistory.com