← 탐색

태그된 포스트: 장애대응

백엔드 깊이보기 · ·2분 읽기

DB가 3초 늦게 뜨면 Pod 20개가 재시작된다

금요일 새벽, RDS 메이저 버전 업그레이드를 걸어놓고 퇴근했다. 토요일 아침에 일어나보니 Slack 알림 247개.

spring-boothikaricpkubernetes
백엔드 깊이보기 · ·3분 읽기

suspend 함수 위의 @Transactional은 거짓말이다

주문 서비스에서 이상한 버그 하나가 올라왔다. 주문은 정상 생성되는데, 예외가 터져도 재고 차감이 롤백되지 않는다.

kotlinspring-boot코루틴
백엔드 깊이보기 · ·3분 읽기

레플리카 라우팅 넣은 다음 날, 정산이 전부 0원이었다

금요일 오후 배포를 끝내고 퇴근했다. 토요일 아침, 정산팀에서 전화가 왔다.

spring-bootmysql레플리카-라우팅
데브옵스 리얼톡 · ·3분 읽기

헬스체크는 OK, 사용자는 429 — 회색 장애 90분의 기록

올해 2월, Clerk의 온콜 엔지니어는 대시보드가 전부 녹색인 상태에서 90분짜리 장애를 겪었다. 아침 8시 11분, 429 응답률이 치솟기 시작한다.

gray-failure헬스체크페일오버
백엔드 깊이보기 · ·3분 읽기

메트릭 태그 하나가 Prometheus를 죽인 날

새벽 3시 PagerDuty. Grafana 대시보드가 먹통이다.

spring-bootmicrometerprometheus
데브옵스 리얼톡 · ·2분 읽기

롤백 버튼이 장애 안쪽에 있었다

7월 14일 오후 12시 37분(ET), Coinbase 엔지니어가 "저위험" 설정 변경을 프로덕션 K8s 클러스터에 밀어 넣었다. 새 서비스 배포 모델 마이그레이션의 일부였고, 변경 자체는 루틴이었다.

kubernetescoinbase포스트모템
데브옵스 리얼톡 · ·3분 읽기

Flux가 핫픽스를 10분간 무시하던 시절이 끝났다

새벽 3시, PagerDuty가 울린다. 결제 API 5xx 비율 급등.

fluxgitopsreconciliation
백엔드 깊이보기 · ·3분 읽기

@Transactional 안에 RestClient 한 줄 넣었을 뿐인데 커넥션 풀이 말랐다

결제 서비스가 8개월 동안 아무 문제 없이 돌다가 금요일 밤 자정에 터졌다. HikariPool-1 - Connection is not available, request timed out after 30000ms.

spring-boothikaricpconnection-pool
데브옵스 리얼톡 · ·3분 읽기

인증서 갱신 크론잡 하나가 14,000개 서비스의 TLS를 날렸다

3월 12일 오후 2시 17분, AWS 3개 리전에서 동시에 5xx 알림이 쏟아지기 시작했다. 원인은 DDoS도 아니고 코드 배포도 아니었다 — cert-manager 크론잡 하나가 Let's Encrypt에 14,000개의 인증서 발급 요청을 90초 만에 쏟아부은 게 전부였다.

cert-managerlets-encryptkubernetes
백엔드 깊이보기 · ·3분 읽기

Resilience4j 빼고 @Retryable로 갈아탔더니 장애가 전파됐다

6월에 동료가 PR을 하나 올렸다. 제목은 "chore: Resilience4j 의존성 제거, Spring 7 내장 @Retryable로 전환.

spring-framework-7spring-bootresilience4j
주니어 개발자 생존기 · ·3분 읽기

금요일 5시 47분에 프로덕션을 터뜨렸다

금요일 오후 5시 47분, 슬랙에 알림이 울렸다. "결제 API 500 에러 터지고 있어요.

프로덕션장애주니어개발자장애대응
백엔드 깊이보기 · ·2분 읽기

사용자가 보낸 URL 하나로 IAM 키가 나갔다

올해 상반기에만 Spring 생태계에서 서버 사이드 요청 위조 관련 CVE가 세 건 터졌다. Spring AI Bedrock(CVE-2026-22742), Spring Authorization Server(CVE-2026-22752), Spring Cloud Config까지.

spring-bootssrf보안
데브옵스 리얼톡 · ·3분 읽기

배포 47번, 롤백 0번 — 파이프라인에 브레이크가 없었다

금요일 오후 4시 47분, 슬랙에 배포 성공 알림이 초단위로 쏟아졌다. "누가 릴리스 브랜치 잘못 건드렸나?

ci-cd배포circuit-breaker
백엔드 깊이보기 · ·3분 읽기

@Async 붙이고 알림 보냈는데 사용자가 null이었다

주문 완료 후 알림을 보내는 코드에 @Async를 붙인 건 금요일 오후였다. 월요일 아침, CS팀에서 연락이 왔다.

spring-bootasyncthreadlocal
백엔드 깊이보기 · ·3분 읽기

Virtual Threads 켰더니 HikariCP가 먼저 터졌다

Spring Boot 4에서 spring.threads.

virtual-threadsspring-boothikaricp
백엔드 깊이보기 · ·3분 읽기

StatelessSession이 캐시를 타기 시작한 날, 정산 배치가 조용히 틀어졌다

정산 배치가 3원 차이로 불일치를 내뱉기 시작한 건 Spring Boot 4 올린 지 열흘째 되는 날이었다. API 서버는 멀쩡했다.

hibernatespring-bootbatch
백엔드 깊이보기 · ·3분 읽기

kotlinx.serialization 스타터 하나 추가했을 뿐인데 클라이언트가 터졌다

Spring Boot 4로 올리면서 kotlinx.serialization 스타터도 같이 넣었다.

kotlinspring-bootkotlinx-serialization
백엔드 깊이보기 · ·3분 읽기

클라이언트가 끊었는데 코루틴은 계속 돌고 있었다

새벽 2시, Grafana에서 CPU 사용률 경보가 울렸다. 트래픽은 평소의 절반도 안 되는데 서버 파드 4개가 전부 CPU 80%를 넘기고 있었다.

kotlinktorcoroutines
주니어 개발자 생존기 · ·3분 읽기

Copilot이 코드를 짜주는데 왜 나는 여전히 야근하나

요즘 이상한 현상이 하나 있다. GitHub Copilot, Claude, Cursor — 도구는 전보다 10배는 좋아졌는데, 주니어 개발자들의 야근은 줄지 않았다.

디버깅주니어개발자ai시대
백엔드 깊이보기 · ·3분 읽기

타임아웃 안 건 RestTemplate 하나가 서버 전체를 멈췄다

새벽 2시 47분, 슬랙에 알림이 쏟아졌다. 결제 API 응답률 0%.

spring bootresttemplate타임아웃
1 / 3 Next →