반응형
모놀리스 아키텍처란?
모놀리스 아키텍처(Monolithic Architecture)는 하나의 거대한 어플리케이션으로 모든 기능이 통합되어 있는 소프트웨어 개발 구조입니다. 이 구조에서는 다양한 기능들이 하나의 프로그램 내에서 긴밀하게 연결되어 있으며, 단일 데이터베이스를 사용합니다.
모놀리스 아키텍처의 특징
- 하나의 주요 프로세스: 모든 서비스와 기능이 하나의 주요 어플리케이션 내에서 작동합니다.
- 단일 데이터베이스 사용: 모든 서비스가 동일한 데이터베이스 엔드포인트를 사용합니다.
- 재배포의 필요성: 코드의 한 부분만 변경되어도 전체 어플리케이션을 재배포해야 합니다.
- 구성의 유연성: 싱글 또는 멀티 모듈로 구성할 수 있으나, 지속적 통합(CI)의 단위는 달라질 수 있지만, 지속적 배포(CD)의 범위는 전체 어플리케이션이 됩니다.
모놀리스 아키텍처가 선호되었던 이유
- 간편한 개발과 배포: 개발, 빌드(컴파일), 서버에서의 실행 과정이 단순하여 시간과 인력이 적게 듭니다.
- 서버 리소스의 효율적 활용: 단일 시스템에서 모든 것을 처리할 수 있어 서버 리소스를 효율적으로 사용할 수 있습니다.
- 고비용의 인프라 관리: 과거에는 서버와 데이터베이스가 매우 비쌌고, 항온 항습(HVAC) 시스템 같은 인프라 관리에 상시 인력이 필요했습니다.
모놀리스 아키텍처에서의 개발 및 배포 프로세스
- 개발: Git, SVN과 같은 버전 관리 시스템을 사용해 개발합니다. 트랜잭션 처리나 Spring Boot를 활용한 자바 개발이 일반적입니다.
- 빌드 및 컴파일: 빌드와 배포를 위한 전용 서버에서 이루어지며, 다른 팀의 변경 사항에 의존성이 있을 수 있습니다.
- 배포: 주로 주 1회 배포가 이루어지며, 서비스를 부드럽게 전환하는 'Graceful' 배포나 시스템을 'Warm up' 하는 과정이 어려울 수 있습니다.
모놀리스 아키텍처는 크고 복잡한 시스템에서 점차 마이크로서비스 아키텍처(MSA)로 전환하는 추세입니다. 이는 더 작고 독립적인 서비스 단위로 기능을 나누어 더 유연한 개발과 운영이 가능하기 때문입니다. 그러나 여전히 특정 상황에서는 모놀리스 아키텍처가 더 적합할 수 있습니다.
반응형
'Monolithic Architecture' 카테고리의 다른 글
모놀리스 아키텍처의 장단점 (0) | 2024.03.11 |
---|---|
모놀리스 아키텍처 싱글(Single) 모듈과 멀티(Multi) 모듈 (0) | 2024.03.11 |