채널톡 아이콘

동기에서 비동기로 — 커머스 API 를 메시지 큐·Outbox·워크플로 엔진으로 전환하는 실전

세일 오픈 부하에 무너지는 동기 쿠폰 발급·상품 등록 API 를 큐·아웃박스·멱등 컨슈머·DLQ·Temporal 로 바꾸고, 같은 부하의 전후 숫자(지연·실패율·DB 커밋)를 내 컴퓨터 Docker 에서 직접 재현합니다.

1명 이 수강하고 있어요.

난이도 중급이상

수강기한 무제한

실습 중심
실습 중심
대용량트래픽
대용량트래픽
실습 중심
실습 중심
대용량트래픽
대용량트래픽

수강 후 이런걸 얻을 수 있어요

  • 동기 API 를 도착률 고정 부하로 재서 지연·실패율·DB 커밋 수가 꺾이는 지점을 찾고, 원인이 CPU 인지 잠금·커밋 대기인지 가립니다.

  • 발급 요청을 큐에 넣고 202 로 답하는 접수 API 와 묶음 컨슈머로 바꿔, 같은 부하에서 전후 숫자를 표로 냅니다.

  • 이중 쓰기 유실·릴레이 중복·순서 역전·독 메시지를 일부러 만들고 아웃박스·멱등 컨슈머·파티션 키·DLQ 로 막습니다.

  • 수 초 걸리는 등록 API 를 접수 → 상태 조회 계약으로 바꾸고, 예약 발송·변경 발행 방식을 측정값으로 ADR 에 결정합니다.

  • 함수+큐 조합에서 조용히 사라지는 실패를 Temporal 워크플로로 옮겨 재시도·실패 감지를 한 곳에서 봅니다.

  • 피처 플래그로 동기·비동기를 배포 없이 전환하고, 큐에 남은 요청을 잃지 않는 롤백 순서를 연습합니다.

세일 오픈 부하에 무너지는 동기 쿠폰 발급·상품 등록 API 를 큐·아웃박스·멱등 컨슈머·DLQ·워크플로 엔진으로 바꾸고, 같은 부하에서 DB 커밋·지연·실패율이 어떻게 달라지는지 전후 숫자로 직접 증명합니다.

최종 결과(0강 데모 실측, 같은 초당 800건 부하): 동기 발급 실패율 77.29%·응답 p50 9.82초·DB 커밋 7,944건 → 비동기 전환 후 실패율 0%·p50 10.62ms·DB 커밋 820건. 마지막 캡스톤(30강)에서 수강생이 쿠폰 발급과 상품 등록을 직접 전환해 이 전후 숫자를 냅니다.

세일 오픈 부하에서 무너지는 동기 API 를 메시지 큐·Transactional Outbox·멱등 컨슈머·DLQ·Temporal 로 바꾸고, 같은 부하의 전후 숫자(지연·실패율·DB 커밋)를 내 컴퓨터 Docker 에서 직접 재현합니다.

메시지 큐 강의 대부분은 도구 사용법에서 멈춥니다. 이 강의는 이미 돌아가는 동기 API 를 비동기로 '옮기는 일' 자체를 다룹니다. 전후 측정, 접수 계약, 유실·중복·순서·독 메시지 같은 실패를 일부러 만들어 막는 법, 결정 기록, 피처 플래그 전환과 롤백까지. 개발자 10~20명 규모로 성장 중인 가상의 스포츠·아웃도어 전문몰 '루프마켓'의 API·PostgreSQL·Redpanda(카프카 호환)·Temporal·k6·Prometheus·Grafana 를 Docker 로 띄우고, 화면의 모든 숫자는 실제 실행 결과입니다.

이 강의를 마치면

  • 동기 API 를 도착률 고정 부하로 재서 지연·실패율·DB 커밋 수가 꺾이는 지점을 찾고, 원인이 CPU 인지 잠금·커밋 대기인지 가립니다.

  • 발급 요청을 큐에 넣고 202 로 답하는 접수 API 와 묶음 컨슈머로 바꿔, 같은 부하에서 전후 숫자를 표로 냅니다.

  • 이중 쓰기 유실·릴레이 중복·순서 역전·독 메시지를 일부러 만들고 아웃박스·멱등 컨슈머·파티션 키·DLQ 로 막습니다.

  • 수 초 걸리는 등록 API 를 접수 → 상태 조회 계약으로 바꾸고, 예약 발송·변경 발행 방식을 측정값으로 ADR 에 결정합니다.

  • 함수+큐 조합에서 조용히 사라지는 실패를 Temporal 워크플로로 옮겨 재시도·실패 감지를 한 곳에서 봅니다.

  • 피처 플래그로 동기·비동기를 배포 없이 전환하고, 큐에 남은 요청을 잃지 않는 롤백 순서를 연습합니다.

이런 분께 추천합니다

  • 세일·이벤트 때 DB 쓰기 쏠림으로 장애를 겪은 커머스 백엔드 개발자

  • 카프카는 써 봤지만 기존 동기 API 를 안전하게 옮기는 법이 막막한 분

  • 아웃박스·멱등성·DLQ 를 말로만 알고 실패를 직접 재현해 보고 싶은 분

커리큘럼 (8섹션 · 32강 · 약 195분)

  • 섹션 0. 오리엔테이션: 완성 결과 먼저 보기 — 완성 결과 데모: 같은 부하, 다른 숫자

  • 섹션 1. 동기 구조가 무너지는 순간 — 실습 환경 띄우기, 루프마켓 동기 쿠폰 발급 API 읽기, 케이식스로 오픈 부하 만들기, 동기 발급이 무너지는 모습, 병목 진단: 한 행 잠금과 커밋 수

  • 섹션 2. 큐로 완충하기 — 브로커 기초: 토픽·파티션·컨슈머 그룹, 접수 API 로 바꾸기: 이백이 응답, 묶음 컨슈머로 DB 쓰기 모으기, 같은 부하 전후 비교, 컨슈머 지연을 지표로 보기

  • 섹션 3. 메시지를 잃지도 겹치지도 않게 — 이중 쓰기 문제를 일부러 만들기, 트랜잭셔널 아웃박스, 릴레이가 죽으면: 중복 발행, 멱등키와 멱등 컨슈머, 순서 보장과 파티션 키: 포인트 적립, 재시도와 디엘큐, 중복·유실 시나리오 점검표

  • 섹션 4. 오래 걸리는 API 를 비동기로 — 수 초 걸리는 상품 등록 API 측정, 접수와 상태 조회 계약, 대안 비교: 동기 유지·스레드·큐·워크플로, 다른 도메인에 적용: 배송 지시

  • 섹션 5. 설계 결정을 문서로 — 특정 시각 발송: 건별 예약 대 배치 ADR, 변경 발행: 전체 스냅샷 대 행 단위 델타, 소비자 범위만 적재하기

  • 섹션 6. 내구성 있는 실행: 워크플로 엔진 — 함수와 큐를 직접 조합할 때의 한계, 템포럴로 상품 등록 워크플로, 워크플로 수준에서 실패 감지하기

  • 섹션 7. 전환 배포와 캡스톤 — 피처 플래그로 동기와 비동기 전환, 롤백 연습: 되돌릴 때 남는 것, 캡스톤: 루프마켓 전환 완성, 정리: 전환 점검표

실습 환경

실습 자료(ZIP): compose.yml 하나로 9개 서비스를 띄우고, 강마다 scenarios/sNN.sh 를 그대로 실행하면 강의 화면과 같은 현상이 재현됩니다. 점검 스크립트·k6 시나리오·전환 점검표·ADR·접수 계약 양식을 포함합니다.

선수 지식

  • REST API 를 만들어 본 경험(언어 무관, 실습 코드는 Python)

  • RDB 와 트랜잭션 기초

  • Docker 로 컨테이너를 띄워 본 경험(Docker 에 CPU 4개·메모리 8GB 이상 배정 권장)

이 강의에서 다루지 않는 것

  • 카프카 클러스터 설치·운영

  • 쿠버네티스 배포

  • 특정 클라우드 관리형 서비스 사용법

안내

영상 내레이션은 AI 합성 음성입니다. 화면의 명령·지표·결과는 실습 환경에서 실제로 실행한 출력입니다. 모든 데이터는 교육용 가상 데이터이며, 숫자는 실행 환경에 따라 달라질 수 있습니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 세일·이벤트 때 DB 쓰기 쏠림으로 장애를 겪은 커머스 백엔드 개발자

  • 카프카는 써 봤지만 기존 동기 API 를 안전하게 옮기는 법이 막막한 분

  • 아웃박스·멱등성·DLQ 를 말로만 알고 실패를 직접 재현해 보고 싶은 분

선수 지식,
필요할까요?

  • REST API 를 만들어 본 경험(언어 무관, 실습 코드는 Python)

  • RDB 와 트랜잭션 기초

  • Docker 로 컨테이너를 띄워 본 경험(Docker 에 CPU 4개·메모리 8GB 이상 배정 권장)

안녕하세요
데이터장인입니다.

커리어인증

20년 이상 데이터베이스와 IT 분야에서 경력을 쌓아온 데이터장인입니다. DBA 및 DB Platform 팀 매니저로 데이터베이스 플랫폼을 다루며, MySQL·PostgreSQL·Oracle·MongoDB와 SQL 튜닝, AWS·Terraform·Python을 전문 분야로 삼고 있습니다. 게임·금융·IT 서비스 분야의 경력을 바탕으로 데이터베이스와 클라우드 아키텍처를 설명합니다. 『오라클 실무튜닝 SQL 패턴 학습』과 『Oracle Pro*C 실무프로젝트 활용서』를 출간했으며, AWS Summit 2018·2019와 데이터야 놀자 2020에서 서버리스·데이터베이스 선택·멀티데이터베이스 전략을 발표했습니다. 최근에는 Bedrock LLM을 이용한 슬로우 쿼리 분석·튜닝 권고, DB 스펙 산정 자동화, DB 메타 MCP 서버와 Slack 봇을 통한 조회 흐름을 다루고 있습니다. 개발자를 위한 데이터베이스 자동화와 비개발자를 위한 AI 업무 활용을 각 과정의 대상과 목적에 맞는 실습으로 설명합니다. AI 제안을 그대로 적용하기보다 결과 동일성·실행 계획·관측 조건을 확인하고, 근거가 부족하면 보류하는 판단 기준을 전달합니다. 회사 운영 데이터와 인증값은 강의 자료에 포함하지 않습니다.

더보기

커리큘럼

전체

32개 ∙ (3시간 15분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

데이터장인님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

얼리버드 할인 중

₩52,800

20%

₩66,000

평생교육이용권 지원 강의