gyunam.blog

[weekly] [nb] 마이크로 서비스 아키텍쳐

마이크로 서비스 아키텍쳐에 대해 예시와 함께 설명해 주세요.

마이크로 서비스 아키텍쳐

대형병원이 아니라 하나의 상가 건물에 여러 병원이 있는 클리닉센터 를 생각하면 된다.

클리닉 센터와의 유사점

장점: 각 병원은 독립적으로 확장/운영 가능, 한 병원 고장나도 다른 병원 정상 운영.

단점: 환자가 여러 병원을 다녀야 하니 서비스 간 연동/통신(네트워크, 인증, 데이터 동기화)이 필수.

비유

  1. 서비스 분리

    • 내과, 소아과, 약국 → 각각 독립된 마이크로서비스.
    • 각 병원은 자기 의무기록 DB만 관리.
  2. API = 진료 의뢰서

    • 자가 소아과 갔다가 내과 검사 필요하면 “진료 의뢰서(API 요청)”를 발급.
    • 의뢰서만 맞으면, 다른 병원에서도 문제없이 처리 가능.
  3. 서비스 독립 배포

    • 내과가 새 장비(새 버전) 들여도, 외과는 그대로 진료 가능.
    • 서비스별로 팀이 따로 움직임.
  4. 데이터 분리 & 중복

    • 내과 DB와 소아과 DB가 따로 있음.
    • 공통 데이터(예: 환자 기본정보)는 공유 이벤트나 동기화 시스템으로 전달.
    • 비유: 환자 주민등록증 사본을 각 병원에서 따로 보관.
  5. 서비스 간 통신

    • 동기 통신: “진료 의뢰서 들고 즉시 이동” (REST/gRPC).
    • 비동기 통신: “검사 결과 나오면 연락드림” (Kafka, RabbitMQ 같은 메시징).
  6. 장애 격리

    • 내과 서버가 터져도, 약국이나 소아과는 정상 운영.
    • 모놀리식이라면 전체 병원이 문 닫아야 하는 상황.