📖 11주차: 비동기 주문 처리, 결제 승인, 도서 구매 알림 시스템
실습 프로젝트: 지니샵(JinyShop) — 온라인 도서 쇼핑몰
주차 요약: OrderPlaced 도메인 이벤트 발행, 비동기 큐 작업(Job), Horizon 대시보드 모니터링, 구매 확인 메일 및 Cashier 결제
캐릭터: 🐱 지니(시니어 멘토), 👧 도로시(주니어 개발자), 🐶 토토(개발 보조)
💬 지니 & 도로시 & 토토의 개발 회의
👧 도로시: “지니! 고객이 책 5권을 주문하고 결제 버튼을 눌렀는데 화면이 멈춰 있어! 결제사 승인받고, 도서 재고 차감하고, 구매 영수증 PDF 메일 쏘고, 관리자 슬랙 알림 보내는 걸 한꺼번에 하려니 화면이 굳어버렸어!”
🐱 지니: “도로시, 이벤트(Event)와 비동기 큐(Queue) 마법을 쓸 시간이란다! 주문 컨트롤러는 OrderPlaced 이벤트만 빵 터뜨리고 손님에게 0.1초 만에 ‘결제 완료!’ 화면을 보여주는 거지. 무거운 메일 발송과 슬랙 전송은 백그라운드 큐 워커들이 뒤에서 차례대로 처리한단다!”
🐶 토토: “멍멍! 라라벨 Horizon 대시보드를 켜두면 지금 큐에서 몇 통의 주문 확인서 메일이 전송 중인지 실시간 그래프로 한눈에 감시할 수 있다멍!”
📑 11주차 상세 강의 목록 (Step-by-Step Lectures)
이번 11주차는 총 4개의 절차적 실습 강의로 구성되어 있습니다. 순서대로 학습을 진행해 주세요:
- 01강: 이벤트(Events)와 리스너(Listeners)를 활용한 주문 완료 도메인 분리
- 관심사의 분리와
OrderPlaced도메인 이벤트 발행 DeductBookStock(도서 재고 차감 및 품절 처리),ClearUserCart,LogOrderAudit리스너- 라라벨 11 자동 이벤트 발견(Event Discovery) 및 이벤트 리스트 검증
- 관심사의 분리와
- 02강: 비동기 큐(Queues) 작업 처리와 라라벨 호라이즌(Horizon) 모니터링
- 동기(Sync) vs 비동기 큐(Redis/Database) 아키텍처 및 응답 지연 해결
- 전자책(eBook) 개인화 워터마크 생성
ProcessBookWatermarkJob(ShouldQueue,$tries,$backoff) - Laravel Horizon 실시간 웹 관제 대시보드 설치 및 실패 작업 재시도
- 03강: 메일(Mail)과 다채널 알림(Notifications) 시스템 구축
- 마크다운 기반
OrderReceiptMail반응형 이메일 디자인 및 실시간 브라우저 프리뷰 Mail::to()->queue()백그라운드 큐 발송- 다채널 알림(인앱 Database 알림 뱃지 + 고객 이메일 + 관리자 Slack 웹훅)
- 마크다운 기반
- 04강: 라라벨 캐셔(Cashier Stripe & Paddle)를 이용한 정기 구독 및 글로벌 결제
- ‘지니샵 북클럽 멤버십’ 월간 정기 구독(Subscription) 비즈니스 모델 구현
Billable트레이트, SetupIntent 발급, 신용카드 등록 및 정기 결제- 구독 상태 체크(
subscribed,onGracePeriod,cancelled) 및 웹훅 보안 처리
📚 연계 공식 문서 (한국어 번역본 대조 학습)
이번 주차 실습에서 다루는 기능의 공식 문서 원본 내용과 심화 레퍼런스입니다:
- 이벤트 (Events)
- 큐 (Queues)
- 메일 (Mail)
- 알림 (Notifications)
- Cashier Stripe (결제)
- Cashier Paddle (글로벌 결제)
- Horizon (Redis 큐 모니터링)
🐶 토토의 실무 꿀팁 & 에러 방지 가이드
🐶 토토의 알짜 팁!
“큐 워커(queue:work)를 띄워두고 코드를 고치면 반영되지 않으니php artisan queue:restart를 외치는 습관을 들이자멍! 메일 템플릿을 수정할 때 매번 메일을 쏘지 말고 브라우저 프리뷰 라우트를 열어두면 개발 속도가 10배 빨라진다멍!”
✅ 이번 주차 실습 완료 체크리스트
OrderPlaced이벤트 디스패치 및DeductBookStock재고 차감 리스너 분리 완료- 전자책 워터마크 비동기 Job(
ProcessBookWatermarkJob) 작성 및 큐 워커 처리 - Laravel Horizon 대시보드(
/horizon) 접속 및 실시간 큐 지표 확인 - 마크다운 주문 영수증 메일 프리뷰 및 비동기 큐 발송
- 마이페이지 인앱 알림 뱃지 및 Cashier Stripe 북클럽 구독 라이프사이클 구현