#First-Come-First-Served
7개의 글
-
선착순 부하 테스트 회고: 실무에서 놓치기 쉬운 것들
4가지 선착순 전략을 k6로 테스트하면서 만난 문제들 — Rate Limiter 충돌, 대기열 초과 성공 버그. 그리고 실무에서 선착순 API와 일반 API를 격리하는 4가지 방법(DataSource 분리, Redis 오프로드, 서비스 분리, Bulkhead)을 정리한다.
-
선착순 시스템 전체 방식 성능 비교: k6 부하 테스트로 직접 확인
DB 락, Redis, 대기열, 토큰 — 4가지 선착순 구현 방식을 k6로 동일 조건(재고 100개, 동시 100/500/1,000/2,000명) 부하 테스트한다. 각 시나리오를 10회 반복 실행해 평균 TPS, P95/P99 응답 시간을 측정하고, 상황별 최적 방식을 정리한다.
-
토큰 발급 방식으로 선착순 시스템 구현하기: 입장권부터 봇 방지까지
입장 토큰을 먼저 발급하고 토큰 보유자만 구매할 수 있는 선착순 시스템을 구현한다. JWT 기반 토큰 설계, TTL 만료 전략, Rate Limiting + CAPTCHA를 조합한 봇 방지까지 다룬다.
-
대기열로 선착순 시스템 구현하기: Redis Sorted Set부터 Kafka까지
Redis Sorted Set 대기열과 Kafka 메시지 큐로 선착순 시스템을 구현한다. 대기열 UX(폴링 vs 웹소켓), 이탈/만료 시 슬롯 재할당, 트래픽 폭주 흡수 전략까지 다룬다.
-
Redis로 선착순 시스템 구현하기: DECR부터 Lua 스크립트까지
Redis DECR 원자 연산과 Lua 스크립트로 선착순 재고 차감을 구현한다. Spring Boot + Redisson으로 구현하고, DB 락 방식과 동일 조건(재고 100개, 동시 100명)으로 TPS를 직접 비교한다. Redis-DB 정합성 문제와 장애 대비 전략까지 다룬다.
-
DB 락으로 선착순 시스템 구현하기: FOR UPDATE부터 동시성 테스트까지
SELECT FOR UPDATE를 사용한 선착순 재고 차감 구현을 다룬다. Spring Boot + JPA 코드로 비관적 락을 구현하고, 100명 동시 요청 테스트로 정합성을 검증한 뒤, 한계를 직접 확인한다.
-
선착순 시스템 완전 정리: 6가지 구현 방식과 선택 가이드
선착순 시스템의 핵심 문제(동시성, 재고 차감, 중복 방지)를 정리하고, DB 락부터 Redis, 메시지 큐, 대기열, 토큰 발급까지 6가지 구현 방식의 동작 원리와 장단점을 비교한다.