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
'💻 하나씩 차곡차곡 > Back-end' 카테고리의 다른 글
[개발일지 #036] 모놀리식 아키텍처를 MSA 아키텍처로 전환하기 (2) - bbc-user-service (Follow 엔티티) (0) | 2025.05.09 |
---|---|
Swagger(Web API 문서) 적용 (0) | 2025.05.08 |
[JPA/QueryDSL] 엔티티가 올바른 경로에 있음에도 자꾸 컴파일 에러가 뜹니다. (0) | 2025.05.01 |
[깃/깃허브(git/github)] 커밋(Commit) & 푸시(Push) 하기 / 기본적인 충돌 상황 해결하기 (IntelliJ GUI.ver + 터미널 CLI.ver) (0) | 2025.04.30 |
[Git/Github] 혼자서 북 치고 장구치는 Git Flow 연습하기 (0) | 2025.04.28 |