본문 바로가기
💻 하나씩 차곡차곡/Back-end

모놀리식 아키텍처 VS MSA 아키텍처

by 뚜루리 2025. 5. 8.
728x90
320x100

✅   모놀리식 아키텍처(Monolithic Architecture)란?

애플리케이션의 모든 기능이 하나의 덩어리(프로세스)로 묶여서 돌아가는 구조.

특징:

  • 단일 코드베이스: 모든 기능(회원, 결제, 주문 등)이 한 프로젝트 안에 있음.
  • 단일 데이터베이스: 보통 하나의 DB로 관리.
  • 배포도 한 번에: 기능 하나만 바꿔도 전체 애플리케이션을 재배포.
  • 간단한 구조: 초기 개발이 빠름, 관리 포인트가 적음.

 MSA (Microservice Architecture)란?

애플리케이션을 여러 개의 독립적인 서비스(마이크로서비스)로 나눠서 운영하는 구조.
  • 특징:
    • 서비스별 분리: 회원, 게시글, 알림 등 각각 별도 서비스(보통 독립 배포도 가능).
    • 독립 데이터베이스: 서비스별로 DB도 따로 가질 수 있음 (DB 분리 권장).
    • 독립 배포: 한 서비스만 수정해서 배포 가능.
    • 기술 스택도 다르게: 서비스마다 다른 언어/기술도 쓸 수 있음 (ex. 회원은 Java, 결제는 Node.js)

 


모놀리식 vs MSA 비교 요약

 

항목 모놀리식 MSA
구조 하나로 묶인 덩어리 잘게 쪼갠 독립 서비스
개발 난이도 초기 개발 쉬움 초기 설계 복잡, 인프라 부담 큼
배포 전체 재배포 서비스 단위로 개별 배포 가능
확장성 전체 스케일 업 서비스별 스케일 업/아웃 가능
장애 영향 하나 죽으면 전체 영향 개별 장애 격리 가능
운영 및 테스트 단순, 통합 테스트 쉬움 복잡, 통합 테스트 어렵고 인프라 구성 필요
DB 하나만 쓰는 경우 많음 서비스마다 DB 분리 권장
조직 구조 기능 중심 팀 서비스 중심 팀 (ex. 도메인 팀)

 


MSA로 전환하는 이유

  • 1️⃣ 확장성(Scalability) : 피드 트래픽만 몰리면 피드 서비스만 스케일업! (모놀리식은 전체를 늘려야 함)
  • 2️⃣ 배포의 민첩성(Faster Deployment) : 게시글 기능만 고쳤을 때 게시글 서비스만 배포 가능.(모놀리식은 전체 재배포 필요)
  • 3️⃣ 장애 격리(Fault Isolation) : 게시글 서비스가 죽어도 회원 서비스는 정상 작동. (모놀리식은 장애 시 전체 영향)
  • 4️⃣ 조직 분화에 맞춤(조직 중심 설계) : 팀별로 독립된 서비스 소유 가능.(모놀리식은 충돌 많음)
  • 5️⃣ 기술 다양성(Polyglot) : 서비스별로 필요한 기술을 자유롭게 선택 가능.

 

728x90
320x100