모놀리식 애플리케이션은 여러 기능의 사용자 인터페이스와 데이터 액세스 레이어를 하나의 애플리케이션으로 결합한 것입니다. 일반적으로 모놀리식 애플리케이션은 조직 내 여러 팀에서 수정하는 단일 코드베이스로 존재하며 해당 팀이 유지 관리하는 모든 기능을 포함하는 단일 단위로 배포됩니다.
모놀리식 애플리케이션은 구성 요소의 긴밀한 통합 덕분에 개발 및 배포가 훨씬 쉬운 경우가 많습니다. 그러나 애플리케이션의 범위와 성능 요구 사항이 증가함에 따라 모놀리스는 결과적으로 유지 관리 및 확장이 어려워질 수 있습니다.
모놀리식 시스템은 빠르게 확장하거나 정기적으로 유지 관리할 필요가 없는 작고 복잡하지 않은 애플리케이션에 적합할 수 있습니다. 다음은 일반적으로 모놀리식에 기반한 애플리케이션의 몇 가지 예입니다(단, 최신 기능은 보다 컨테이너화된 인프라를 기반으로 할 수 있음).
모놀리식 아키텍처의 일부 측면은 구식이 되었지만 여전히 많은 용도와 긍정적인 속성이 있습니다.
모놀리스의 몇 가지 장점은 다음과 같습니다.
모놀리스의 두드러진 특성에는 긍정적인 측면도 있지만 문제가 발생할 수도 있습니다.
모놀리스의 몇 가지 단점은 다음과 같습니다.
모놀리식 아키텍처와 대비되는 마이크로서비스 아키텍처가 있습니다. 마이크로서비스는 작은 구성 요소로 크고 복잡한 애플리케이션을 구축하는 소프트웨어 아키텍처 접근 방식입니다. 이러한 구성 요소는 각각 단일 기능(예: 인증, 알림 또는 결제 처리)을 수행하거나 모놀리스 내에서 번들로 작동할 수 있습니다. 또한 "마이크로서비스"(또는 "서비스")는 작은 구성 요소 자체를 지칭하는 용어이기도 합니다.
모놀리식 앱이 긴밀하게 결합(구성 요소가 서로 연결되어 있음을 의미)되어 있는 반면, 마이크로서비스 앱은 분산(구성 요소가 독립적으로 작동할 수 있음을 의미)되어 있습니다. 애플리케이션이 점점 더 커지고 복잡해지면서 많은 조직은 모놀리스에서 벗어나거나 새로운 앱을 마이크로서비스 형식으로 통합하는 방법을 모색하고 있습니다.
NGINX는 모놀리식 및 마이크로서비스에 살펴보려는 사용자를 위해 다음과 같은 무료 교육 리소스를 제공합니다.