Refresh Token Rotation 구현: 3개월간 부순 것과 고친 것
reuse_detected 알람이 87건 한꺼번에 떴다. 사용자는 강제 로그아웃됐고 CS는 불탔다. Refresh Token Rotation 구현은 단순한 토큰 교체가 아니라 race condition과 false positive와의 줄타기였다.
reuse_detected 알람이 87건 한꺼번에 떴다. 사용자는 강제 로그아웃됐고 CS는 불탔다. Refresh Token Rotation 구현은 단순한 토큰 교체가 아니라 race condition과 false positive와의 줄타기였다.
React Query 기본 retry로는 thundering herd를 막지 못한다. exponential backoff에 full jitter를 더한 retryDelay 함수와 mutation 처리 방식을 시간순으로 풀어본다.
단순 INCR로 안심하다가 burst 트래픽에 뚫린 경험에서 출발한다. Token Bucket과 Sliding Window의 동작 차이, Lua 원자성, DDoS 다층 방어까지 운영 관점으로 정리한다.
Access 24시간/Refresh 30일에서 Access 5분+Jitter/Refresh 1일+Rotation으로 옮긴 과정이다. 후보 비교, 벤치마크, Rotation race condition 대응까지 담았다.
레거시 Flask 서버 40개 엔드포인트를 FastAPI REST API로 전환한 과정이다. JWT 인증 구현, Pydantic 모델 도입, Docker 멀티스테이지 빌드까지 실제 프로젝트에서 겪은 시행착오를 시간순으로 풀었다.
User 인터페이스가 7개까지 늘어난 프로젝트를 정리하면서 깨달은 TypeScript 유틸리티 타입 실무 적용법이다. Partial, Pick, Omit을 API 타입 설계에 쓰는 패턴을 코드와 함께 다룬다.
FastAPI에서 JWT 인증을 직접 구현하면서 3시간을 날린 경험을 바탕으로, 토큰 설계부터 Depends 체이닝을 이용한 권한 분리까지 실무에서 마주친 함정들을 다룬다.
Python 비동기 크롤링 aiohttp 조합으로 requests 대비 10배 속도를 얻는 과정을 정리했다. 단순 교체가 아닌 asyncio.Semaphore 동시성 제어와 지수 백오프 재시도까지 포함한 실전 크롤러 코드를 다룬다.