[weekly] [nb] 마이크로 서비스 아키텍쳐
마이크로 서비스 아키텍쳐에 대해 예시와 함께 설명해 주세요.
마이크로 서비스 아키텍쳐
대형병원이 아니라 하나의 상가 건물에 여러 병원이 있는 클리닉센터
를 생각하면 된다.
클리닉 센터와의 유사점
-
내과 클리닉, 외과 병원, 영상의학 센터, 약국이 각각 독립적으로 존재.
-
각 병원은 자기만의 건물(서비스), 접수 시스템(DB), 운영 규칙이 있음.
-
환자는 필요할 때 각각 방문하거나, 연동된 예약 시스템을 통해 연결됨.
장점: 각 병원은 독립적으로 확장/운영 가능, 한 병원 고장나도 다른 병원 정상 운영.
단점: 환자가 여러 병원을 다녀야 하니 서비스 간 연동/통신(네트워크, 인증, 데이터 동기화)이 필수.
비유
-
서비스 분리
- 내과, 소아과, 약국 → 각각 독립된 마이크로서비스.
- 각 병원은 자기 의무기록 DB만 관리.
-
API = 진료 의뢰서
- 자가 소아과 갔다가 내과 검사 필요하면 “진료 의뢰서(API 요청)”를 발급.
- 의뢰서만 맞으면, 다른 병원에서도 문제없이 처리 가능.
-
서비스 독립 배포
- 내과가 새 장비(새 버전) 들여도, 외과는 그대로 진료 가능.
- 서비스별로 팀이 따로 움직임.
-
데이터 분리 & 중복
- 내과 DB와 소아과 DB가 따로 있음.
- 공통 데이터(예: 환자 기본정보)는 공유 이벤트나 동기화 시스템으로 전달.
- 비유: 환자 주민등록증 사본을 각 병원에서 따로 보관.
-
서비스 간 통신
- 동기 통신: “진료 의뢰서 들고 즉시 이동” (REST/gRPC).
- 비동기 통신: “검사 결과 나오면 연락드림” (Kafka, RabbitMQ 같은 메시징).
-
장애 격리
- 내과 서버가 터져도, 약국이나 소아과는 정상 운영.
- 모놀리식이라면 전체 병원이 문 닫아야 하는 상황.