
가장 전통적인 소프트웨어 설계 방식
ㅁ모놀리식 아키텍처(Monolithic Architecture): 하나의 애플리케이션이 단일 코드베이스로 구성되는 형태
애플리케이션의 모든 구성 요소(예: UI, 비즈니스 로직, 데이터베이스 접근)가 단일 애플리케이션으로 결합되어 배포된다
[모놀리식 아키텍처의 특징]
- 단일 코드베이스: 하나의 코드베이스에서 모든 기능이 실행됨
- 일괄 배포: 변경 사항이 있을 때 전체 애플리케이션을 재배포해야 함
- 단일 DB 사용: 모든 기능이 공통된 DB를 공유함
- 중앙 집중형 설계: 모든 비즈니스 로직이 한 시스템 내에서 처리됨
[모놀리식 아키텍처 vs 마이크로서비스 아키텍처(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
'SW 아키텍처' 카테고리의 다른 글
[SW 아키텍처] MSA 설계 및 개발(w/Java) (1) | 2025.02.19 |
---|---|
[SW 아키텍처] DT 플랫폼으로써 PaaS, Terminology? (0) | 2025.02.19 |
[SW 아키텍처] 클라우드 네이티브 아키텍처(Cloud-Native Architecture) (0) | 2025.02.19 |
[SW 아키텍처] MSA로의 점진적 마이그레이션 전략 (0) | 2025.02.19 |
[SW 아키텍처] MSA(MicroServices Architecture) (1) | 2025.02.18 |