Backpressure Pattern
소비자가 처리 가능한 속도보다 생산자가 빠를 때 소비자가 생산 속도를 제어하는 메커니즘. 버퍼 폭발과 OOM을 방지. 생산자 >> 소비자 속도 차이 → 무한 큐 성장 → 메모리 고갈 또는 지연 폭증. Java의 `Flow` API, Project Reactor, ...
이 용어로 연결된 기록을 섹션별로 살펴봅니다.
소비자가 처리 가능한 속도보다 생산자가 빠를 때 소비자가 생산 속도를 제어하는 메커니즘. 버퍼 폭발과 OOM을 방지. 생산자 >> 소비자 속도 차이 → 무한 큐 성장 → 메모리 고갈 또는 지연 폭증. Java의 `Flow` API, Project Reactor, ...
코드 배포와 기능 활성화를 분리하는 기법. 런타임에 기능을 켜고 끌 수 있어 안전한 배포와 점진적 롤아웃을 가능하게 함. 플래그가 쌓이면 코드베이스가 복잡해짐. 출시 완료된 Release Toggle은 반드시 제거. "플래그 청소 티켓"을 배포 직후 바로 생성하는...
Kubernetes의 최소 배포 단위. 하나 이상의 컨테이너가 네트워크와 스토리지를 공유하는 논리 호스트. 컨테이너는 격리 단위, Pod는 배포 단위. 사이드카 패턴(로깅, 프록시)이 Pod의 다중 컨테이너를 활용. `CrashLoopBackOff`: 컨테이너가 ...
빠른 배포를 위해 더 나은 설계를 나중으로 미룬 결과 생기는 추가 작업 비용. Ward Cunningham이 금융 부채 비유로 도입. 신중한 의도적 부채만 전략적으로 수용 가능. 나머지는 최소화 대상.
코드 변경을 자동으로 빌드·테스트·배포하는 파이프라인. 수동 배포의 오류를 제거하고 배포 주기를 단축. 개발자가 메인 브랜치에 자주 병합 → 자동 빌드·테스트로 조기 충돌 감지:
애플리케이션과 모든 의존성을 격리된 컨테이너로 패키징하여 "내 로컬에서는 됐는데" 문제를 제거하는 기술.
장애 서비스로의 반복 호출을 차단하여 연쇄 장애(Cascading Failure)를 방지하는 회복성 패턴. 구현체: Resilience4j (Java), Polly (.NET), Hystrix (deprecated).