모놀리식
모놀리식 아키텍처는 소프트웨어 애플리케이션이 하나의 통합된 코드베이스와 단일 프로세스로 실행되는 단일 구조 소프트웨어 설계 방식입니다. 애플리케이션의 모든 기능(사용자 인터페이스, 데이터 처리, 비즈니스 로직 등)이 하나의 코드베이스 내에서 개발, 배포, 확장됩니다
주요 특징
- 단일 코드베이스: 애플리케이션의 모든 기능과 모듈이 하나의 프로젝트로 통합.
- 단일 배포 단위: 모든 코드가 하나의 패키지로 빌드 및 배포됨.
- 높은 종속성: 기능 간 강한 종속성으로 인해 변경 사항이 다른 부분에 영향을 줄 가능성이 높음.
- 고정된 기술 스택: 애플리케이션 전체가 동일한 기술 스택을 사용.
- 상대적 단순성: 하나의 코드베이스로 관리되기 때문에 개발 초기 단계에서는 구조가 단순.
장점
- 개발 초기 단순성: 하나의 코드베이스로 관리되기 때문에 초기 설계 및 개발이 비교적 간단.
- 통합된 테스트 및 배포: 통합된 시스템으로 인해 배포 및 테스트가 단일 프로세스로 처리.
- 퍼포먼스 최적화 용이: 단일 애플리케이션 내에서 최적화를 직접 제어 가능.
- 일관성 유지: 모든 모듈이 동일한 기술 환경에서 작동하므로 기술 스택의 일관성이 높음.
- 운영 비용 절감: 단일 인프라에서 실행되므로 관리 및 운영이 간단.
관련 용어
- 마이크로서비스(Microservices): 모놀리식의 대안으로, 애플리케이션을 작고 독립적인 서비스로 나누어 설계.
- SOA(Service-Oriented Architecture): 서비스 기반으로 설계된 아키텍처.
- 종속성(Dependency): 소프트웨어 구성 요소 간의 의존 관계.
- 배포(Deployment): 애플리케이션을 사용자 환경에 배포하는 프로세스.
- 확장성(Scalability): 애플리케이션이 부하에 따라 성능을 유지하거나 자원을 확장할 수 있는 능력.
주요 솔루션 및 사용 사례
- 전통적인 애플리케이션: ERP 시스템, CRM 소프트웨어.
- 초기 스타트업: 단순한 요구사항을 가진 프로젝트에서 빠른 개발 및 배포를 위해 사용.
- 사용 사례: 소규모 팀이 개발한 웹 애플리케이션, 온프레미스(데스크톱 애플리케이션) 시스템.