/ backend
Backend
Node.js · PostgreSQL · Docker · 3건
-
배포하면 게임이 끊긴다 — 진행 중인 실시간 매치를 다음 서버로 넘기기
무중단 배포를 해도 WebSocket 게임은 안 끊긴다는 보장이 없다. 구 인스턴스가 "매치 끝날 때까지" 기다리다 10분 유예를 다 태우고 SIGKILL로 죽었다. 이관 단위를 매치 → 라운드 경계로 바꾸고, 응답 유실·중복 방 ID·연속 배포까지 막기까지 — 티츄온라인(Node.js + WebSocket, blue/green) 실제 커밋으로 정리.
-
봇이 이상한 수를 둔다 — 크래시도, 실패하는 테스트도 없는 버그 잡기
"봇이 판돈도 없는 트릭에 마이티를 버려요." 크래시가 아니라 판단 품질이라 스택트레이스도 실패하는 테스트도 없다. 이상한 수를 봇 자신의 판정 함수로 세는 스캐너, dev vs main 한 테이블 A/B, A/A 널 검증까지 — 티츄온라인 마이티 봇을 자가대국으로 디버깅한 기록. 사람 눈에 낭비로 보이던 수가 실제로는 옳아서 되돌린 이야기도.
-
Docker 빌드가 매번 npm install 부터 다시 도는 문제
COPY 순서만 바꿔서 의존성 레이어를 캐싱하면 빌드가 몇 배 빨라진다. 레이어 캐시의 원리와 흔한 실수.