msa

주니어와 토론할 질문들

msa / msa-design / kafka

주니어와 한 호흡에 한 섹션씩 갈 수 있게 구성. 각 질문은 정답 하나가 있는 게 아님 — 트레이드오프 토론이 목적.


§1. MSA / 아키텍처 전반

Q1.1 — 모놀리스 vs MSA

Q1.2 — Bulkhead

Q1.3 — Gateway


§2. CQRS / 데이터

Q2.1 — 분리의 정도

Q2.2 — Replica lag

Q2.3 — 동시성 제어


§3. Kafka

Q3.1 — 기본 개념

Q3.2 — 우리 적용

Q3.3 — 정확성

Q3.4 — Outbox

Q3.5 — 직접 구현 (MyKafka)


§4. 부하 테스트 / 측정

Q4.1 — 시나리오 설계

Q4.2 — knee point

Q4.3 — Worker 도입 트리거


§5. 메타 — 학습 방법론

Q5.1 — 다이어그램의 함정

Q5.2 — "한 번에 한 변수"

Q5.3 — 직접 구현 vs 매니지드

Q5.4 — 진화 순서


§6. "만약 X면?" 시나리오 게임

가상 상황에 답해보기. 답이 한 개가 아닌 게 핵심.

S1

좌석 100개를 한 명의 사용자가 한 번에 예약 신청한다.

S2

Kafka publish에는 성공했는데 Worker가 DB INSERT에 실패 (예: DB 일시 장애).

S3

replica lag이 갑자기 30초로 증가.

S4

Booking API가 정상인데 Queue API가 죽음.

S5

시즌 종료 후 traffic 1/1000으로 감소.

S6

Worker가 메시지를 너무 빨리 처리해서 DB가 못 따라옴.


§7. 다음 학습 거리 (이 토론 이후)

세션 끝나기 전에 주니어에게 줄 만한 follow-up 학습 거리:

책 / 문서

직접 해볼 것

더 깊은 토픽


토론 진행 팁