/ series · longform

ZZOL 개발록

22 posts

202613 posts
02.05쿼리 최적화, 36초를 1초로 줄이기까지ZZOLquery02.07saveAll()은 왜 9번의 INSERT를 날렸을까 — IDENTITY 전략의 함정과 Bulk Insert 전환기ZZOLJPAHibernate02.14네트워크 불안정 상황에서도 메시지 유실 없는 견고한 게임 서버 설계ZZOLQAmessage-recovery02.17외부 서비스 장애로부터 살아남기ZZOLcircuit-breakerretry02.18ZZOL의 효율적인 서버 자기보호 전략ZZOLtrafficnginx02.19HealthIndicator에는 무엇을 담아야 하는가: 상태 판별부터 자가 치유까지ZZOLhealth-indicatorspring02.21"재시작하면 고쳐져요"라는 말을 없애기까지: 3단계 서버 자가 치유기ZZOLsimulationmonitoring03.01분산 락의 함정: 락을 걸었는데도 이벤트가 두 번 처리된 이유ZZOLdistributed-lockredis03.02모든 이벤트가 같은 스레드풀을 쓸 필요는 없다: 순서 보장과 처리량 사이의 딜레마ZZOLredisstream03.03게임 이벤트가 100ms 늦게 도착하는데 아무도 몰랐다 — Redis Stream 관측 가능성 확보기ZZOLredismonitoring03.06비동기 컨텍스트 전파의 두 단계: 외부 브로커 경유와 내부 스레드풀 전파 분리하기ZZOLredisMDC03.08지연 시간 0ms를 보장하는 Transactional Outbox 도입기ZZOLdual-writespring05.10반복되는 운영 동선을 LLM에게 위임하다 — ZzolBot 도입기ZZOLLLM
20259 posts
07.07사이드 프로젝트에서 실제 서비스까지: 커피빵 기획과 그 시작우아한테크코스ZZOL기획07.08누가 우리 서비스를 쓸까? : 페르소나 정의를 통한 타겟 유저 구체화우아한테크코스ZZOL기획08.12Spring WebSocket 내부 동작 원리 파헤치기springZZOLwebsocket08.13모바일 백그라운드 전환 시에도 끊김 없는 WebSocket 연결 경험 만들기우아한테크코스ZZOLwebsocket09.27스레드풀, 감으로 잡지 마세요: 부하 테스트로 증명하는 최적의 설정값우아한테크코스ZZOLwebsocket10.13단일 서버에서 분산 환경으로: 확장성 있는 아키텍처로의 전환우아한테크코스ZZOLredis10.14Redis Pub/Sub을 활용한 다중 서버 간 실시간 메시지 동기화 전략우아한테크코스ZZOLredis11.19커피빵에서 ZZOL로, 유저가 알려준 진짜 서비스ZZOL우아한테크코스기획12.29WebSocket 서비스에서 Graceful Shutdown이 필요한 이유와 구현ZZOLwebsocketgraceful-shutdown