IT Knowledge/Architecture/images/마이크로서비스-아키텍처-diagram.svg
🏘️ “큰 건물 하나보다, 작은 집 여러 개가 관리하기 쉬워요!”
마이크로서비스가 뭐예요?
쉬운 비유: 식당
방법 1: 한 명이 다 하는 식당
사장님 혼자서 주문받고, 요리하고, 서빙하고, 계산하고, 청소까지! → 사장님이 아프면? 식당 전체가 문 닫아요 😱
방법 2: 역할 나눈 식당
- 👨🍳 주방팀: 요리만
- 🧑💼 홀팀: 서빙만
- 💰 계산팀: 계산만
→ 주방팀이 바빠도 다른 팀은 정상! ✨
마이크로서비스 = 방법 2처럼 역할을 나누는 것!
핵심 개념
| 용어 | 뜻 | 비유 |
|---|---|---|
| 마이크로 | 작은 | 작은 가게 |
| 서비스 | 하나의 기능 | 한 가지 역할 |
| 마이크로서비스 | 작은 기능 여러 개 | 전문 가게들의 모음 |
카카오톡으로 이해하기
옛날 방식 (모놀리식)
메시지, 친구, 프로필, 알림, 결제가 한 덩어리로 묶여있음
문제점:
- 메시지 고치면 → 전체 다시 배포해야 함
- 결제 버그나면 → 메시지도 같이 멈출 수 있음
요즘 방식 (마이크로서비스)
| 서비스 | 담당 |
|---|---|
| 메시지 서비스 | 메시지만 |
| 친구 서비스 | 친구만 |
| 결제 서비스 | 결제만 |
장점:
- 메시지만 고치면 → 메시지만 배포
- 결제 버그나도 → 메시지는 정상!
어떻게 동작해요?
서비스들이 대화하는 방법
사용자가 “친구한테 메시지 보내기”를 누르면:
| 순서 | 누가 | 뭘 하는지 |
|---|---|---|
| 1 | 메시지 서비스 | ”친구 정보 좀 줘!“ |
| 2 | 친구 서비스 | ”여기 친구 정보야!“ |
| 3 | 메시지 서비스 | ”메시지 보냈어!“ |
| 4 | 알림 서비스 | ”친구한테 알림 보낼게!” |
→ 각자 자기 일만 하고, 필요하면 서로 물어봐요!
장점
| 장점 | 설명 | 비유 |
|---|---|---|
| 🔧 고치기 쉬움 | 한 서비스만 수정 | 한 가게만 리모델링 |
| 📈 확장 쉬움 | 바쁜 서비스만 늘림 | 인기 가게만 직원 추가 |
| 👥 팀별 작업 | 서로 안 부딪힘 | 각자 가게 운영 |
| 💪 장애 격리 | 하나 죽어도 나머지 OK | 한 가게 휴무해도 다른 가게 영업 |
단점
| 단점 | 설명 | 비유 |
|---|---|---|
| 🤯 복잡함 | 서비스 50개면 50개 관리 | 가게 50개 관리 |
| 🌐 네트워크 필요 | 서비스끼리 통신 필요 | 가게끼리 전화해야 함 |
| 🔍 디버깅 어려움 | 어디서 문제인지 찾기 힘듦 | 어느 가게 잘못인지 |
실제 사례
| 회사 | 변화 | 결과 |
|---|---|---|
| 넷플릭스 | 모놀리식 → 마이크로서비스 | 서비스 1000개+, 하루 수백 번 배포 |
| 아마존 | 2002년 전환 | 11.7초마다 배포 가능 |
| 카카오 | 서비스별 분리 | 카카오페이 점검해도 카카오톡 정상 |
언제 쓰면 좋아요?
마이크로서비스가 좋은 경우
- ✅ 팀이 20명 이상
- ✅ 서비스가 크고 복잡함
- ✅ 자주 배포해야 함
그냥 하나로 해도 되는 경우
- ❌ 팀이 5명 이하
- ❌ 새로 시작하는 프로젝트
- ❌ 간단한 서비스
핵심 정리
- 마이크로서비스 = 작은 서비스 여러 개로 나누기
- 장점 = 고치기 쉬움, 확장 쉬움, 장애 격리
- 단점 = 복잡함, 관리 포인트 많음
- 언제? = 큰 서비스 + 큰 팀