마이크로서비스 아키텍처
클라우드 네이티브 아키텍처 · 중급 · 이론 7 · 퀴즈 7 · 실습 5
마이크로서비스는 기술 선택이 아니라 조직과 배포에 관한 선택입니다. 이 코스는 모놀리스를 쪼개는 방법을 가르치기 전에 언제 쪼개지 말아야 하는지부터 다룹니다. 그다음 쪼갠 대가로 새로 생기는 문제 — 네트워크 실패, 분산 트랜잭션, 연쇄 장애, 요청 경로 추적 불가 — 를 하나씩 손으로 만들어 보고 하나씩 막습니다. 끝나면 '서비스를 나눌지'가 아니라 '무엇을 지불하고 무엇을 얻는지'로 말할 수 있게 됩니다.
커리큘럼
모놀리스에서 MSA 로
언제 쪼개고 언제 쪼개지 말아야 하나.
서비스 경계와 도메인
경계는 코드가 아니라 데이터와 언어에서 나온다.
- 경계를 어디에 긋는가 이론
- 퀴즈: 서비스 경계 퀴즈
동기 통신(REST·gRPC)과 그 대가
타임아웃 없는 호출은 장애를 전파하는 배관이다.
비동기 통신과 이벤트
요청을 던지는 대신 사실을 알린다.
데이터 일관성(사가·아웃박스)
트랜잭션이 서비스 경계를 넘지 못할 때 무엇을 하는가.
회복탄력성(타임아웃·재시도·서킷브레이커)
실패를 막는 대신 실패를 가둔다.
분산 추적과 상관관계 ID
요청 하나의 전체 경로를 복원하는 유일한 방법.