82 개의 글이 있습니다.
2026년 02월 21일 03:02
custom_health_check 글에서 커스텀 HealthIndicator와 3단계 자가복구 계층을 설계했다. 이 글에서는 dev 환경에서 5가지 장애 시나리오를 재현하여 복구 계층이 의도대로 동작하는지 검증한 과정을 기록한다. 왜 시뮬레이션이 필요한가 이전 글에서 설계한 복구 계층은 이렇다. 설계 시점에는 "이렇게 동작할 것이다"라는 가정이었다. R…
2026년 02월 19일 09:02
ZZOL 서비스에 커스텀 HealthIndicator와 자가복구(Self-Recovery) 로직을 추가하고, Health Group을 분리했다. Spring Boot의 기본 헬스체크가 어디까지 커버하고, 어디서부터 커스텀이 필요한지, 장애 감지 후 Docker 재시작 전에 애플리케이션 내부에서 먼저 복구를 시도해야 하는 이유, 그리고 DOWN과 OUT_O…
2026년 02월 18일 12:02
ZZOL 서비스에 Rate Limiting을 적용했다. 단순히 "요청을 제한하자"가 아니라, 같은 서버 보호인데 HTTP와 WebSocket에서 왜 다른 전략을 써야 하는지, 각 설정값을 왜 그렇게 잡았는지에 대한 판단 과정을 기록한다. 왜 서버 자기보호가 필요했는가 ZZOL은 실시간 멀티플레이어 게임 서비스다. 점심시간에 한 팀이 모여서 미니게임을 하고…
2026년 02월 17일 09:02
에서 외부 서비스 장애 대응 작업을 했다. Oracle Object Storage에 QR 코드를 업로드하는 과정에서, 외부 서비스가 불안정할 때 시스템 전체가 영향을 받는 문제가 있었다. 이 글에서는 Circuit Breaker와 Retry를 도입하면서 고민한 과정을 기록해본다. 문제 상황 ZZOL에서는 방을 생성할 때 QR 코드를 만든다. 이 QR 코드…
2026년 02월 14일 09:02
실시간 멀티플레이어 게임을 개발하면서 마주친 문제가 있다. 특정 상황에서 유저가 게임 흐름에서 이탈하는 현상이었다. 이 글에서는 문제를 분석하고 해결한 과정을 공유한다. 문제 인식 유저 피드백 ZZOL은 실시간으로 여러 명이 함께 플레이하는 게임 서비스다. 배포와 동시에 여러 사람들에게 피드백을 받아왔었는데, 예상치 못한 불만이 있었다. "게임 중에 카톡…
2026년 02월 05일 09:02
우테코 프로젝트 에서 대시보드 API 성능 개선 작업을 했다. 레이싱 게임 TOP 플레이어 조회 API가 너무 느려서 원인을 파악하고 개선하는 과정을 기록해본다. 문제 상황 dev 환경에 데이터를 넣고 API를 호출해보니 응답이 너무 느렸다. 로 쿼리 실행 계획을 확인해봤다. 문제는 두 가지였다. 테이블 풀스캔 (20만 건) 60만 건짜리 임시 테이블 …
2026년 01월 01일 09:01
지난 회고: retrospect-2024-2 돌아보기 2025년은 유독 기억에 많이 남을 한 해로 남을 것 같다. 할 말이 너무 많은데 이 글에 다 담길지 모르겠다. 우아한테크코스를 마치며 IMG_7091.jpeg 올해는 우테코가 차지하는 비중이 정말 크다. 정말 몰입을 즐겼던 1년이었고, 다 끝난 지금 허전함과 섭섭함이 들 정도로 재미있고 좋은 사람들을…
2025년 12월 29일 11:12
ZZOL 서비스에 Graceful Shutdown을 구현했다. 단순히 "서버를 안전하게 끄자"가 아니라, WebSocket 기반 실시간 게임 서비스에서 "게임 중인 유저의 세션을 어떻게 보호할 것인가"에 대한 이야기다. OS의 SIGTERM 시그널부터 Spring의 SmartLifecycle, 그리고 WebSocket 세션 드레이닝까지의 전체 과정을 기록…