Home > Architecture > 🏗️[Architecture] Monolithic Architecture란 무엇일까요?

🏗️[Architecture] Monolithic Architecture란 무엇일까요?
Architecture Software Architecture

🏗️[Architecture] Monolithic Architecture란 무엇일까요?

📌 Intro.

  • ↘︎ 모놀리식 아키텍처(Monolithic Architecture)는 하나의 커다란 단일 애플리케이션으로 구성되는 소프트웨어 설계 방식임.
    • ↘︎ 모든 기능(예: 사용자 인터페이스, 비즈니스 로직, 데이터 접근 계층 등)이 하나의 코드베이스와 하나의 실행 환경에서 작동함.

✅1️⃣ 주요 특징.

  • 1. 단일 코드베이스
    • ↘︎ 모든 기능이 하나의 코드베이스에 포함됨.
  • 2. 단일 빌드 및 배포
    • ↘︎ 애플리케이션 전체가 하나의 단위로 빌드되고 배포됨.
  • 3. 모든 모듈이 강하게 결합됨 (Tightly Coupled)
    • ↘︎ 애플리케이션의 각 부분이 긴밀하게 연결되어 있어 부분적으로 수정 및 배포하기 어려움.
  • 4. 중앙화된 데이터베이스
    • ↘︎ 하나의 데이터베이스를 사용하여 모든 기능을 지원함.
  • 5. 규모 확장 어려움
    • ↘︎ 수평 확장(Scale-Out)이 어려워 주로 수직 확장(Scale-Up, 서버 성능 개선)을 통해 확장함.

✅2️⃣ 장점.

  • 👍 간단한 개발 및 배포
    • ↘︎ 초기 개발이 쉽고 설정이 간단함.
  • 👍 성능 최적화
    • ↘︎ 한 공간에서 모든 기능이 실행되어 네트워크 오버헤드가 적음.
  • 👍 통합된 테스트
    • ↘︎ 모든 기능이 한곳에 있기 때문에 단일 환경에서 테스트하기 용이함.
  • 👍 디버깅 용이
    • ↘︎ 문제가 발생하면 하나의 애플리케이션 내에서 원인을 찾기 쉬움.

✅3️⃣ 단점.

  • 👎 규모 확장 어려움
    • ↘︎ 특정 기능만 확장하기 어렵고 전체 애플리케이션을 확장해야 함.
  • 👎 유지보수 어려움
    • ↘︎ 코드베이스가 커지면 새로운 기능 추가나 버그 수정이 어려워질 수 있음.
  • 👎 부분 배포 불가능
    • ↘︎ 작은 변경 사항도 전체 애플리케이션을 다시 빌드 및 배포해야함.
  • 👎 기술 스택 제한
    • ↘︎ 하나의 기술 스택에 종속되기 쉬움.

✅4️⃣ 사용 사례.

  • 초기 스타트업 : 간단한 아키텍처로 빠르게 MVP(Minimum Viable Product)를 개발할 때.
  • 단일 팀 개발 : 하나의 팀이 전체 애플리케이션을 관리할 때.
  • 작은 규모의 프로젝트 : 복잡도가 낮고 요구사항이 명확한 경우.

✅5️⃣ Monolithic VS Microservice 비교.

특징 모놀리식 아키텍쳐 마이크로서비스 아키텍처
구성 방식 단일 코드베이스 및 애플리케이션 여러 개의 독립적인 서비스
배포 단위 전체 시스템 하나로 배포 각 서비스 독립 배포
확장 방식 수직 확장 (Scale-Up) 수평 확장 (Scale-Out)
기술 스택 단일 기술 스택 각 서비스별 다양한 기술 사용 가능
유지보수 대규모 시스템은 유지보수 어려움 각 서비스별로 독립 유지보수

🚀 정리.

  • ↘︎ 모놀리식 아키텍처(Monolithic Architecture)는 작은 규모의 애플리케이션이나 초기 개발 단계에 적합.
    • ↘︎ 하지만 애플리케이션의 복잡도가 증가하더나 여러 팀이 협업해야 하는 경우 마이크로서비스 아키텍처(Microservice Architecture)로 전환하는 것이 더 나을 수 있다.
  • ☝️ 핵심 포인트 :
    • ↘︎ 초기에는 빠르고 간단한 개발 가능.
    • ↘︎ 확장성과 유지보수에 한계가 있을 수 있음.