모놀리식 애플리케이션 이란 무엇인가요?

모놀리식 애플리케이션 은 여러 기능에 대한 사용자 인터페이스와 데이터 액세스 계층을 하나의 애플리케이션으로 결합한 것입니다. 일반적으로 모놀리식 애플리케이션 은 조직 내 여러 팀에서 수정하는 단일 코드베이스로 존재하며, 해당 팀에서 유지 관리하는 모든 기능을 포함하는 단일 단위로 배포됩니다.

모놀리식 애플리케이션 은 구성 요소가 긴밀하게 통합되어 있기 때문에 개발 및 배포가 더 쉬울 수 있습니다. 그러나 애플리케이션의 범위와 성능 요구 사항이 증가함에 따라 모놀리스는 결과적으로 유지 관리 및 확장이 어려워질 수 있습니다.

목차

1. 모놀리식 애플리케이션 아키텍처의 예시
2. 모놀리식 아키텍처의 장점
3. 모놀리식 아키텍처의 단점
4. 마이크로서비스 아키텍처란 무엇인가요?

1. 모놀리식 애플리케이션 아키텍처의 예시

모놀리식 시스템은 빠르게 확장하거나 정기적으로 유지 관리할 필요가 없는 작고 덜 복잡한 애플리케이션에 적합할 수 있습니다. 다음은 일반적으로 모놀리식 기반을 가진 애플리케이션의 몇 가지 예입니다(최신 기능은 보다 컨테이너화된 인프라를 기반으로 할 수 있음).

  • Ecommerce platforms – 모놀리식 애플리케이션 은 온라인 스토어 구축, 주문 처리, 결제 처리, 고객 서비스 등 인프라가 구축되면 아키텍처에 대한 업데이트가 거의 필요하지 않기 때문에 Ecommerce 에서 흔히 볼 수 있습니다.
  • Content Management Systems (CMS) – 이 용어집 항목은 모놀리식 애플리케이션(워드프레스)으로 인해 가능해졌습니다. CMS 애플리케이션은 배포 시 콘텐츠 관리에 필요한 모든 기능을 웹 페이지 형태로 포함합니다.
  • Banking systems – Banking systems이 모놀리식 애플리케이션 으로 구축되는 이유는 진입 지점이 제한되어 있어 보안이 더 뛰어나기 때문입니다. 또한 배포 시 코드베이스에는 금융 거래 관리, 결제 처리, 추적 등 소비자가 온라인 뱅킹 경험에서 기대하는 모든 기능이 포함되어 있습니다.

2. 모놀리식 애플리케이션 아키텍처의 장점

모놀리식 아키텍처의 일부 측면은 구식이 되었지만, 여전히 많은 목적과 긍정적인 속성이 있습니다.

모놀리스의 몇 가지 장점은 다음과 같습니다:

  • 단순성 – 중앙 집중식 아키텍처는 마이크로서비스 아키텍처와 같은 복잡한 아키텍처에 비해 모놀리스를 더 쉽게 개발, 배포 및 유지 관리할 수 있습니다.
  • 더 빠른 테스트 – 모든 구성 요소를 하나의 프로그램에 통합함으로써 모놀리식 애플리케이션 을 전체적으로 빠르게 테스트할 수 있습니다. 여러 개의 작은 구성 요소(예: 마이크로서비스)로 구성된 아키텍처와 달리 복잡한 통신 프로토콜이나 여러 코드 리포지토리에 대한 추가 테스트가 필요하지 않습니다.
  • 보안 – 악의적인 공격자의 진입 지점이 적기 때문에 모놀리스는 일반적으로 보안이 더 쉽습니다. 또한 여러 보안 구성을 관리하는 것보다 하나의 애플리케이션에 보안 프로토콜을 적용하는 것이 더 쉽습니다.
  • 비용 – 단일 장치로 배포되는 모놀리스는 추가 통신 프로토콜 배포 및 보안, 더 많은 연결 인프라 구축, 더 전문적인 기술과 교육을 받은 직원 채용과 관련된 추가 비용을 제거합니다.

3. 모놀리식 아키텍처 의 단점

모놀리스의 단일성에는 긍정적인 측면이 있는 반면, 문제가 발생할 수도 있습니다.

모놀리스의 몇 가지 단점은 다음과 같습니다:

  • 복잡성 증가 – 시간이 지남에 따라 애플리케이션이 성장하고 기능이 추가되면 모놀리식 아키텍처가 점점 더 커지고 복잡해질 수 있습니다. 이러한 복잡성 증가는 업데이트가 전체 프로그램을 원활하게 실행하는 단일 코드베이스를 손상시킬 수 있는 위험을 증가시킵니다.
  • 확장성 부족 – 애플리케이션의 한 가지 기능이나 영역을 수평적으로 확장해야 하는 경우, 추가 리소스가 필요하지 않은 하위 시스템을 포함한 전체 대규모 애플리케이션을 확장해야 합니다. 이렇게 하면 배포에 시간이 오래 걸리기 때문에 확장 속도가 느려질 뿐만 아니라, 마이크로서비스에 비해 각 인스턴스를 실행하는 데 더 많은 하드웨어가 필요하기 때문에 비용도 증가할 수 있습니다.
  • 복원력 – 모놀리식 아키텍처에서는 모든 애플리케이션 구성 요소가 긴밀하게 연결되어 있으며 중앙 코드베이스에서 실행됩니다. 따라서 어느 하나에 장애가 발생하면 전체 애플리케이션이 다운될 수 있습니다.
  • 전체 재배포 – 단일 코드베이스가 전체 애플리케이션을 대표하는 모놀리스에서는 단일 구성 요소가 변경되거나 업데이트될 때마다 전체 재배포가 필요합니다.
  • 기술 스택 – 개발자는 사용하는 도구나 언어가 모놀리스에 적합한지 확인해야 하므로 선택의 폭이 제한됩니다. 또한 많은 모놀리식 애플리케이션 은 클라우드 컴퓨팅 및 컨테이너화와 같은 더 새롭고 효율적인 기술과 완전히 호환되지 않는 방식으로 작성됩니다.
  • 개발 속도 저하 – 여러 개발팀이 하나의 대규모 코드베이스에서 작업하는 경우, 인터페이스와 도메인 경계를 존중하고 유지 관리하기 위해 각별한 주의가 필요합니다. 때로는 코드가 복잡한 결합을 일으켜 팀 간 종속성으로 인해 새로운 기능의 개발이나 중요한 문제에 대한 수정이 느려질 수 있습니다.

4. 마이크로서비스 아키텍처란 무엇인가요?

모놀리식 아키텍처와 달리 마이크로서비스 아키텍처가 있습니다. 마이크로서비스는 작은 구성 요소로 크고 복잡한 애플리케이션을 구축하는 소프트웨어 아키텍처에 대한 접근 방식입니다. 이러한 구성 요소는 각각 단일 기능(예: 인증, 알림 또는 결제 처리)을 수행하거나 모놀리스 내에서 번들로 작동할 수 있습니다. “마이크로서비스”(또는 “서비스”라고도 함)는 이러한 작은 구성 요소 자체를 가리키는 용어이기도 합니다.

모놀리식 앱은 긴밀하게 결합되어 있는 반면(즉, 구성 요소가 서로 연결되어 있음), 마이크로서비스 앱은 분산되어 있습니다(즉, 구성 요소가 독립적으로 작동할 수 있음). 애플리케이션이 점점 더 커지고 복잡해짐에 따라 많은 조직에서 모놀리식 앱에서 벗어나거나 새로운 앱을 마이크로서비스 형식으로 통합하는 방안을 모색하고 있습니다.

NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 논의하십시오.

NGINX에 대한 최신 정보들을 빠르게 전달받고 싶으시다면, 아래의 뉴스레터를 구독하세요.

NGINX STORE를 통한 솔루션 도입 및 기술지원 무료 상담 신청

* indicates required