Spring Boot, AWS로 백엔드 서비스 한 사이클 완성하기
한조각
스프링부트, MySQL, Docker, AWS EC2, RDS 로 백엔드 서비스의 한 사이클을 완성해봅니다. 애플리케이션 배포를 통해 성취감을 얻고, API 개발시 현업에서 서버 개발자가 마주하는 문제와 그 해결법을 다룹니다.
초급
AWS, MySQL, Docker
선착순 쿠폰 시스템 구현을 통해 동시성 이슈, 데이터 정합성, 피크 트래픽 처리 등 실전 백엔드 핵심 문제를 해결합니다. 직접 코드를 작성하며 문제를 발견하고, 동기/비동기 처리와 대기열 관리 등 실무 필수 기술을 체득합니다. 주니어 개발자와 취업 준비생이 실전 경험을 쌓을 수 있는 프로젝트 기반 강의입니다.





베스핀글로벌
임직원들도 이 강의를 듣고 있어요!





베스핀글로벌
임직원들도 이 강의를 듣고 있어요!
동시성 문제 해결과 데이터 정합성 보장 기법
동기/비동기 처리를 통한 트래픽 부하 분산 설계
대기열 시스템과 피크 트래픽 방어 아키텍처 구현
선착순 쿠폰 이벤트가 열리면 수많은 요청이 같은 재고를 동시에 건드립니다.
준비한 수량보다 더 발급되거나, 같은 사용자가 두 장을 받거나, 여러 저장소의 기록이 어긋날 수 있습니다.
이 강의는 완성된 아키텍처를 외우는 대신 하나의 쿠폰 발급 서비스를 직접 무너뜨리고 다시 설계해요.
문제를 재현하고, TPS, P99, 오류율과 실제 발급 정확성을 측정한 뒤, DB Lock, Redis, Kafka, Cache, 가상 대기실을 선택하고 같은 부하로 다시 검증합니다.
Kotlin과 Spring Boot로 코드를 작성합니다.
Docker Compose로 MySQL, Redis, Kafka를 실행하며, Redis와 Kafka가 처음이어도, HTTP, RDB, Spring Boot의 기초가 있다면 단계별로 따라올 수 있습니다.
📌 하나의 쿠폰 서비스를 기본 구현부터 동시성, 비동기 처리, 캐시, 정합성 복구, 트래픽 제어까지 계속 발전시켜요.
📌 문제 재현 → 병목 측정 → 설계 선택 → 같은 조건으로 재검증하는 흐름을 모든 파트에서 반복합니다.
📌 TPS와 P99만 보지 않아요. 정확히 N장이 발급됐는지, 1인 1매가 지켜졌는지, 이벤트가 MySQL까지 빠짐없이 저장됐는지도 함께 확인해요.
📌 DB 비관적 락과 Redis Lua, 인메모리 큐와 Kafka처럼 여러 대안을 직접 비교하며 언제 무엇을 선택할지 판단합니다.
📌 이론으로 끝내지 않아요. 동작하는 코드, 실행 환경, k6 부하 시나리오, 변경 전후의 검증 결과가 한 세트로 남습니다.

피크 트래픽이 처음인 주니어 백엔드 개발자
요청이 몰릴 때 DB, 캐시, 큐 중 어디부터 손대야 할지 막막한 분께 잘 맞아요.

설계 역량을 키우고 싶은 백엔드 취업 준비생
기술 이름을 나열하는 대신 문제, 선택, 결과를 프로젝트로 설명하고 싶은 분께 추천합니다.

성능을 숫자로 검증하고 싶은 서버 개발 학습자
CRUD를 넘어 부하 테스트와 장애 재현으로 시스템을 발전시키고 싶은 분께 도움이 돼요.
단순한 구현은 익숙하지만, 트래픽이 몰리는 상황에서 어디부터 확인하고 어떤 기술을 선택해야 할지 막막한 분께 잘 맞아요. 문제를 직접 재현하고, 측정 결과를 바탕으로 설계를 개선하는 과정을 통해 실무에서 활용할 수 있는 판단 기준을 만듭니다.
✓ 동시 요청에서도 정확한 수량과 1인 1매 규칙을 함께 지키는 발급 로직을 구현할 수 있습니다.
✓ DB 비관적 락, Redis 분산 락, Redis Lua 원자 연산의 장단점을 비교하고 상황에 맞는 방식을 선택할 수 있어요.
✓ Kafka로 사용자 응답과 DB 저장을 분리하고, 실패 메시지를 DLT와 재처리 흐름으로 복구합니다.
✓ Cache Stampede, 매진 후 요청 폭주, Redis와 MySQL의 불일치를 탐지하고 대응할 수 있어요.
✓ 가상 대기실과 Gateway Rate Limit을 연결해 정상 사용자는 기다리게 하고 어뷰저는 입구에서 차단합니다.
✓ TPS, P99, 오류율뿐 아니라 발급량, 중복 여부, 저장 누락까지 측정해 설계 개선을 결과로 증명할 수 있어요.
문제를 재현하고, 숫자로 원인을 찾아요
쿠폰 초과발급과 병목을 일부러 만들어 봐요. TPS, P99, 오류율과 정확성 지표를 읽고, 설계 전후를 같은 k6 부하 조건에서 비교합니다. 느낌이 아니라 측정값으로 다음 선택의 근거를 만들어요.
기본 구현부터 트래픽 제어까지 6단계로 성장합니다
쿠폰 요구사항 구현, 동시성 제어, 비동기 처리, 캐시 전략, 정합성 복구, 트래픽 제어의 순서로 진행해요. 각 단계의 한계를 확인하면서 다음 설계가 필요한 이유를 자연스럽게 이해합니다.
여러 기술을 하나의 쿠폰 발급 흐름으로 연결해요
Gateway와 가상 대기실이 진입 속도를 제어하고 Redis가 재고와 중복 발급을 원자적으로 처리해요. Kafka Worker는 MySQL에 저장하고 배치 스케줄러는 두 저장소의 불일치를 점검합니다.
코드와 검증 결과가 함께 남습니다
Kotlin과 Spring Boot로 애플리케이션을 작성합니다. Docker Compose로 MySQL, Redis, Kafka를 실행하고 k6로 실제 부하를 넣어 TPS, P99, 오류율, 발급량, 중복 여부와 저장 누락을 확인해요.
완성된 아키텍처를 보면 모든 선택이 당연해 보이지만, 실무에서는 원인을 찾고 여러 대안 중 하나를 골라야 해요.
유명한 기술을 하나 더 붙이는 법보다 어디에서 요청을 제어하고, 어떤 상태를 어디에 두며, 무엇으로 성공을 판단할지 결정하는 힘을 전하고 싶었습니다.
이 강의에서는 다루지 않아요
결제와 배송 같은 쿠폰 주변 도메인이나 모든 분산 시스템 이론을 넓게 훑지는 않아요.
사전에 고정된 수량의 쿠폰 발급, 1인 1매, 정해진 시작 시각, 매진 시 종료라는 조건에 집중합니다.
• Kotlin, Spring Boot, Gradle을 사용합니다.
• MySQL, Redis, Kafka는 Docker Compose로 실행합니다.
• 부하 테스트에는 k6를 사용해요.
• Docker를 실행할 수 있는 Windows, macOS, Linux 환경이면 실습할 수 있습니다.
• 원활한 실습을 위해 8GB 이상 메모리를 권장해요.
• 강의 슬라이드와 전체 소스 코드를 제공합니다.
• 파트별 실행 환경과 Docker Compose 구성을 제공합니다.
• 직접 반복 실행할 수 있는 k6 부하 테스트 시나리오가 있어요.
• 각 단계의 설계 문서와 변경 전후 검증 결과를 함께 확인합니다.
• HTTP와 REST API의 기본 개념이 필요해요.
• 관계형 데이터베이스와 SELECT, UPDATE 수준의 SQL을 사용합니다.
• Java 또는 Kotlin 문법을 알고 있어야 해요.
• Spring Boot 기초 지식을 권장합니다.
• Redis와 Kafka 경험은 필수가 아니에요.
학습 대상은
누구일까요?
실전 경험을 쌓고 싶은 주니어 백엔드 개발자
동시성 제어와 대용량 트래픽 처리를 배우고 싶은 백엔드 취업 준비생
실무 수준의 백엔드 시스템 설계를 경험하고 싶은 컴퓨터공학 전공 대학생
선수 지식,
필요할까요?
백엔드 프로그래밍 언어(Java, Python 등) 기본 문법 이해
데이터베이스와 SQL 기초 지식
REST API와 HTTP 통신에 대한 기본 개념
커리어인증
901
명
수강생
38
개
수강평
40
개
답변
4.9
점
강의 평점
5
개
강의
카카오, SK를 거쳐 개발자로 일하며
실제 서비스 환경에서 다양한 백엔드 시스템을 설계하고 운영해왔습니다.
그 간 겪었던 시행착오와 고민들이
수강생 여러분의 시간과 선택을 조금이라도 아껴줄 수 있기를 바라는 마음으로
지식공유 콘텐츠를 만들고 있습니다.
콘텐츠에 대한 의견이나 개선점이 있다면
아래 메일로 언제든 편하게 말씀해주세요.
여러분의 솔직한 피드백을 기다리고 있습니다. 감사합니다.
apiece.dev.ai@gmail.com
전체
59개 ∙ (10시간 17분)
해당 강의에서 제공:
6. 실전 서버 스택 한눈에 보기
03:00
전체
2개
지식공유자님의 다른 강의를 만나보세요!
같은 분야의 다른 강의를 만나보세요!
얼리버드 할인 중
₩16,500
70%
₩55,000