풀스택 시스템 신뢰성(Reliability) & 결함 관용 아키텍처 실습 랩
🔗 GitHub Topics:#backend-performance#fullstack-reliability#idempotency#optimistic-lock#exponential-backoff
본 레포지거리는 분산 시스템 및 풀스택 환경에서 발생할 수 있는 네트워크 순간 장애, 중복 결제/주문 수신, 동시성 데이터 충돌, 백엔드 마비 상황을 극복하고 **"네트워크나 서버가 언제든 실패할 수 있다"**는 전제 하에 시스템 신뢰성과 데이터 정합성을 보장하는 패턴을 실습합니다.
| 구 분 | 기술 스택 / 패턴 | 주요 용도 |
|---|---|---|
| Patterns | Idempotency Key, Exponential Backoff, Optimistic Lock | 결함 관용 및 동시성 제어 아키텍처 패턴 |
| Runtime & Test | TypeScript, Vitest, Node.js | 결함 시뮬레이션 및 유닛/시나리오 테스트 검증 |
- 위치:
src/idempotency.ts - 핵심: HTTP
Idempotency-Key헤더 수신, 메모리/Redis 락 캡처 및 동일 요청 2회 수신 시 캐시된 결과 재반환(중복 결제 차단).
- 위치:
src/retry.ts - 핵심: Exponential Backoff + Full Jitter 알고리즘으로 분산 서버 동시 재요청 폭주(Thundering Herd) 문제 방지.
- 위치:
src/optimistic.ts - 핵심: 데이터
version필드 기반 동시 수정 검증 및 충돌 발생 시OptimisticLockError발생 후 재시도 처리.
- 위치:
src/stale-revalidate.ts - 핵심: 캐시 데이터를 즉시 반환(Fast Return)하고 백그라운드에서 최신 데이터를 비동기 재검증(Background Revalidate).
Q1. PG 결제나 포인트 차감 등 분산 환경에서 멱등성(Idempotency Key) 아키텍처 구현 원리는?
분석: 클라이언트는 요청마다 고유 UUID(Idempotency Key)를 헤더에 담아 전송합니다. 서버는 이 키를 Redis 분산 락에 먼저 저장(Status: PROCESSING)하고 처리를 진행합니다. 동일한 키로 요청이 또 도착하면 이전 결과를 캐시에서 즉시 반환(HTTP 200 OK)하여 중복 결제를 차단합니다.
Q2. 재시도(Retry) 메커니즘에서 Exponential Backoff에 Jitter(무작위 지연)를 추가하는 이유는?
분석: 단순히 일정 지연 시간으로 재시도하면 서버가 복구되는 순간 수많은 클라이언트가 동시에 재요청을 보내 다시 서버를 마비시키는 Thundering Herd 문제가 발생합니다. 지수 백오프 시간에 무작위 지연(Jitter)을 섞어 요청 시점을 물리적으로 분산시켜야 합니다.
Q3. 비관적 락(Pessimistic Lock) 대 낙관적 락(Optimistic Lock)의 트레이드오프 분석은?
분석: 비관적 락(
SELECT FOR UPDATE)은 DB 레벨 락으로 트래픽 폭증 시 데드락(Deadlock) 및 성능 지연이 발생합니다. 반면 충돌 빈도가 적거나 높은 처리량이 요구되는 환경에서는 데이터version을 이용해 수정 시점에 일치 여부를 검증하는 낙관적 락이 효율적입니다.
# 1. 의존성 설치
npm install
# 2. 신뢰성 시나리오 테스트 실행
npm test🎨 1. Frontend & Mobile Web Architecture (#frontend-architecture)
- b2b-mes-admin-lab: FSD Architecture, AG-Grid/Handsontable, MFE, BFF, State Studio
- frontend-performance-lab: Vite/Webpack, Canvas/SVG, RN WebView Bridge, PWA, App Store
- frontend-coding-interview-lab: FE 알고리즘 & 바닐라 JS/React 하드코딩
- frontend-security-lab: XSS/CSRF 방어, CSP, SameSite Cookie, CORS
⚡ 2. Fullstack & Backend Performance (#backend-performance)
- fullstack-reliability-lab: 멱등성, 낙관적 락, 지수 백오프 & 서킷 브레이커
- backend-performance-lab: FastAPI, Connection Pooling, Redis Cache, N+1 Query
🐳 3. Infrastructure & DevOps (#infra-devops)
- docker-infra-lab: Multi-stage Docker, Compose, Nginx Proxy, CI/CD
🧠 4. AI Engineering & Data Platform (#ai-data-platform)
- llm-rag-data-platform-lab: RAG, ChromaDB/FAISS Vector Store, AWS Bedrock
- ai-product-patterns-lab: SSE Streaming, AI Fallback Router, Rate Limiter
📱 5. Mobile Native Architecture (#mobile-native)
- android-architecture-lab: Clean Architecture, MVI, Compose, Coroutines/StateFlow