아카이브
- 04 / 06 OpenTelemetry로 보는 분산 추적 — 개념 정리와 Pinpoint와의 비교
- 29 / 05 ArgoCD + Helm 카나리 배포의 상태 모델과 운영 주의점
- 27 / 05 코루틴 톺아보기 (3) — 예외 처리와 withContext의 Spring Event 손실 패턴
- 26 / 05 코루틴 톺아보기 (2) — CoroutineScope와 Context: 구조화된 동시성이 버그를 막는 법
- 21 / 05 코루틴 톺아보기 (1) — suspend 함수의 스레드 반납 동작 원리
- 20 / 05 캐시 톺아보기 (4) — Eviction 정책, TTL 설계, 분산 락의 안전성
- 19 / 05 OOM이 발생하는 두 가지 시나리오 — 동시성 제어 실패와 대량 데이터 처리
- 18 / 05 Redis SET NX로 중복 요청 차단하기 — 락이 아닌 Best-Effort 방어선의 한계와 활용
- 08 / 05 K8S에서 JVM 앱 운영하기 (3) — CPU Throttling과 메모리 한계 동작
- 08 / 05 K8S에서 JVM 앱 운영하기 (2) — Graceful Shutdown과 HPA Warmup
- 08 / 05 K8S에서 JVM 앱 운영하기 (1) — 클러스터 구조와 Probe
- 06 / 05 카프카 톺아보기 (2) — Rebalancing의 원리와 장애 복구 전략
- 02 / 05 카프카 톺아보기 (1) — Consumer Group, Offset, 파티션의 동작 원리
- 30 / 04 캐시 톺아보기 (3) — 토폴로지와 실전 고려사항
- 30 / 04 캐시 톺아보기 (2) — 쓰기 전략
- 29 / 04 캐시 톺아보기 (1) — 개념과 읽기 전략
- 29 / 04 Spring WebFlux의 ArrayList 동시 접근으로 발생한 500 에러 — thread-safety 분석
- 28 / 04 MySQL 대량 DML이 위험한 이유 — Binary Log와 Undo Log 관점
- 24 / 04 MySQL 격리 수준을 RR에서 RC로 변경하는 이유 — 갭락과 MVCC 트레이드오프