#버그수정
15개의 게시물
게임 시작 조건에 준비 상태 추적 추가 — 베팅만 보던 습관 고치기
🤖 1612 in / 1826 out / 3438 total tokens 기존엔 호스트가 시작 버튼을 누를 때 베팅 인원수만 체크했다. 준비(Ready) 상태는 완전히 무시. 2명이 베팅만 하면 당장 시작 가능했고, 준비 안 한 사람이 끼어 있어도 게임이 돌아갔다. 당연히 문제가 된다. 이번 커밋에서 시작 조건을 3단계로 쪼갰다. 인원 ≥ 2, 모두
update-log에서 잘못 올린 탈것 추가 항목 삭제
🤖 1368 in / 1264 out / 2632 total tokens 경마 게임에 있던 탈것 4종(기사, 공룡, 닌자, 게)이 신규 추가가 아니라 기존에 존재하던 데이터였다. 파일 누락으로 잠시 안 보이다가 복구된 건데, update-log에 신규 기능인 것처럼 적어놨더라. 그래서 해당 항목을 삭제했다. 어떻게 이런 일이 생겼냐면, 아마 이전 커
경마 신규 탈것 4종이 안 나오던 버그 수정 — 하드코딩 목록 불일치가 원인
🤖 1855 in / 1415 out / 3270 total tokens 경마 게임에서 기사, 공룡, 닌자, 게 탈것이 절대 출전하지 않는 버그를 수정했다. 원인은 단순했다. horse.js에는 15종 전체 탈것 목록이 있었는데, rooms.js에서 새 유저 입장 시 탈것을 초기화하는 코드가 11종만 있는 구버전 하드코딩 목록을 그대로 쓰고 있었다.
주사위 게임 조기종료 버그 잡은 삽질 기록
🤖 3399 in / 1462 out / 4861 total tokens 유저가 게임 중간에 나가면 아직 굴리지 않은 사람이 있어도 게임이 바로 끝나버리는 버그였다. 원인은 간단했다. rolledUsers 배열에서 퇴장한 유저를 빼주지 않으니까 "모두 굴렸니?" 체크가 true로 잘못 나오는 것. 서버 사이드에서 disconnect, leaveRoo
경마 순위 안 맞던 버그: 클라이언트와 서버가 보는 '선두'가 달랐다
🤖 1449 in / 1473 out / 2922 total tokens 경마 게임에서 화면상 도착 순서랑 실제 순위가 다르게 나오던 버그를 잡았다. 원인은 슬로우모션 트리거 시점이 서버랑 클라이언트에서 달랐던 것. 클라이언트는 rank === 0으로 미리 정해진 1등을 찾아서 슬로우모션을 걸었다. 근데 서버는 "실제로 앞서가는 말"을 기준으로 판정
flex 컨테이너 안 input 오버플로우 해결
🤖 756 in / 635 out / 1391 total tokens 퀵 식사 금액 입력 팝업에서 number input이 부모 영역을 뚫고 나가던 문제를 수정했다. 팝업 width가 300px로 고정되어 있는데 입력창이 그걸 무시하고 삐져나와서 보기 안 좋았다. 원인은 flex 자식의 기본 min-width: auto 동작 때문이었다. flex 아
다크 테마 가독성 문제, CSS 변수 하나로 정리
🤖 1464 in / 808 out / 2272 total tokens 다크 테마에서 텍스트가 검정색으로 튀어 나오던 문제를 잡았다. 원인은 간단했다. app에 color 속성이 없어서 명시적 색상이 없는 요소들이 브라우저 기본값(검정)을 상속받은 것. app.css에서 app에 color: var(--t1)을 추가하니 깔끔하게 해결됐다. 같은 맥락
html 요소에 테마 클래스 적용으로 배경색 동적 변경 수정
🤖 598 in / 768 out / 1366 total tokens 테마 전환 시 body 배경색이 따라오지 않던 문제를 해결했다. 원인은 간단했다. CSS 변수가 정의된 테마 클래스가 body에만 적용되어 있었고, 실제로는 html 요소에 클래스를 줘야 변수가 하위로 제대로 전파된다. +layout.svelte에서 반응형으로 document.do
z-index 스택 컨텍스트와 싸운 짧은 이야기
🤖 883 in / 616 out / 1499 total tokens 도움말 버튼이 캘린더 뒤에 숨어버리는 문제를 고쳤다. 사용자가 튜토리얼을 다시 보려고 ? 버튼을 누르려는데 아예 보이지 않는다. 원인을 찾아보니 app이 position: relative로 새로운 스택 컨텍스트를 형성했고, DOM 순서상 뒤에 있는 .cal-wrap이 topbar-
더블탭 줌 차단, JS에서 CSS로 넘기다
🤖 440 in / 823 out / 1263 total tokens 모바일에서 더블탭 줌을 막으려고 JS로 touchend 이벤트를 감지하고 있었다. 300ms 안에 연속 탭이 들어오면 preventDefault로 차단하는 방식이었는데, 문제는 이게 버튼 연타 입력도 같이 씹어버린다는 것이다. 사용자가 빠르게 버튼을 누르면 정상적인 입력까지 막혀서
Hashnode GraphQL 쿼리 타입 수정
🤖 353 in / 450 out / 803 total tokens Hashnode API 호출 시 발생하던 타입 에러를 수정했다. GraphQL 쿼리에서 매개변수 타입이 잘못되어 있었다. ObjectId는 Hashnode에서 실제로 요구하는 타입이 아니었다. 공식 문서를 확인해보니 ID 타입을 사용해야 했다. 단순한 오타이지만 API 요청이 계속
경마 게임종료 버튼 위치 정리 + 튜토리얼 색상 동기화
🤖 906 in / 679 out / 1585 total tokens 경마 미니게임 UI에서 사용자 흐름을 개선했다. 게임종료 버튼이 기존에는 replaySection 아래 별도로 떨어져 있었는데, 이를 hostControls 안으로 이동시켰다. 이제 방장 입장에서 버튼 순서가 게임 시작 → 주문받기 → 게임 종료 → 데이터 삭제로 자연스럽게 이어진
TypeScript 타입 에러 9개 해결하고 v0.38.0 릴리스
🤖 913 in / 649 out / 1562 total tokens 카카오맵 연동 컴포넌트에서 발생하던 TypeScript 타입 에러 9개를 해결했다. removeListener의 핸들러 인자를 선택적으로 변경하고, MarkerImage를 interface에서 class로 변환했다. Marker.setImage() 메서드 타입도 추가했다. Wayp
TypeScript 타입 에러 한 줄로 해결하기
🤖 595 in / 654 out / 1249 total tokens v0.35.0 릴리즈. E2E 테스트 파일에서 발생하던 TypeScript 타입 에러를 수정했다. autocomplete.spec.ts에서 Playwright의 Page 타입을 사용하고 있었는데, 정작 import문에는 누락되어 있었다. 함수 매개변수에 Page 타입을 명시했으니
TypeScript 타입 에러로 빌드가 깨졌다
🤖 769 in / 673 out / 1442 total tokens v0.9.0에서 빌드가 실패했다. TypeScript가 엄격하게 잡히면서 두 가지 문제가 튀어나왔다. ErrorFallback 컴포넌트에서 action 속성을 null로 줬는데, 타입 정의상 undefined여야 했다. 사소해 보이지만 TS는 이걸 놓치지 않는다. null과 und