HANDS-ON
00:00 경과
LABLAB-SWENG-16-ASYNC-EVENT-DRIVEN고급
동기 vs 비동기 — 메시지 큐와 이벤트 기반 구조
ELAPSED
00:00
PHASE
0 / 4
SLA
55분
🧩 SW Engineering
← 목록
INCIDENT RESPONSE
0 / 5 단계 완료
📚 PREREQUISITES
Theorysw-engineering/async-event-driven
TRACK
SW-ENGINEERING
SLA
55분
LEVEL
고급
PHASES
3단계
ENV
local
INCOMING TICKET
백엔드 리드: "주문 API가 결제·이메일·재고 반영까지 한 요청 안에서 다 처리해요. 그러다 보니 이메일 서버가 느린 날엔 주문 버튼이 3초씩 멈추고, 주문 폭주 때는 재고 서비스가 같이 죽어요. 무엇을 동기로 두고 무엇을 큐로 뺄지, 이벤트 기반으로 갈 부분은 어디인지 설계로 정리해 주세요."
YOUR ROLE
서비스 흐름을 설계하는 백엔드/플랫폼 담당
안 하면 나중에
동기·비동기 경계를 근거 없이 그으면, 느린 작업이 사용자 응답을 붙잡아 지연되고, 한 서비스의 장애가 전체 요청 흐름으로 전파된다. 반대로 무분별하게 이벤트로 빼면 흐름을 아무도 추적하지 못한다.
📋상황 브리핑
백엔드 리드가 말합니다.
"주문 하나가 들어오면 지금은 한 요청 안에서 순서대로 다 합니다 — 재고 확인, 결제 승인, DB 저장, 영수증 이메일 발송, 재고 차감, 추천 데이터 갱신까지요. 문제는 이메일 서버가 느린 날엔 주문 버튼이 3초씩 멈추고, 세일 때 주문이 몰리면 재고 서비스가 부하를 못 버텨 같이 죽습니다. 무엇을 동기로 남겨야 하고, 무엇을 메시지 큐로 빼야 하는지, 어디부터는 이벤트 기반으로 가야 하는지 설계로 정리해 주세요."
동기냐 비동기냐는 "무엇이 최신 유행인가"가 아니라 "이 작업의 결과를 사용자가 지금 당장 봐야 하는가, 실패하면 흐름을 멈춰야 하는가, 얼마나 오래 걸리는가"의 문제다. 이 Lab은 주문 흐름을 먼저 진단해 동기·비동기 경계를 긋고, 비동기로 뺄 작업에 큐를 설계하며, 이벤트 기반으로 갈 지점과 그 대가까지 확정한다.
⏱ 55분📊 고급🔧 3단계#async#sync#message-queue#event-driven
MISSION
1
동기 vs 비동기 경계 긋기 — 무엇을 요청 안에 남기고 무엇을 뺄까
주문 흐름의 각 작업을 즉시 응답 필요·결합도·소요시간·부하 특성으로 판정해, 동기로 남길 것과 비동기로 뺄 것을 근거 있게 가른다.
2
메시지 큐 설계 — 재시도·DLQ·멱등성·순서
비동기로 뺀 작업을 생산자-소비자 큐로 잇고, 실패 회복(재시도·DLQ)과 중복·순서 대비(멱등성·순서 비의존)를 규칙으로 못 박는다.
3
이벤트 기반 구조의 트레이드오프 — 어디까지 이벤트로 뺄까
이벤트 기반(발행-구독)이 주는 이득(결합↓·확장성↑·장애 격리)과 대가(복잡성↑·최종 일관성·디버깅 난이도)를 저울질해, 무엇을 이벤트로 빼고 무엇을 남길지 근거 있게 정한다.
📌 선수 지식
ℹ️ 실습 환경
환경: local
🔒
실습 실행은 Pro 플랜 전용입니다
인시던트 브리프와 학습 자료는 지금 바로 확인할 수 있습니다. 실제 실습 진행 및 터미널 사용은 Pro 플랜에서 가능합니다.
Pro로 업그레이드 →
>_ LAB TERMINAL↔ 너비 조절
NOTES