홈이 왜 이렇게 느려요 : 웹게임 혼자 만들기(12)

2026.10.10 · 밥

게임을 켜면 제일 먼저 보는 화면이 홈이다. 그 홈이 느렸다. 새로고침을 누르면 '확인 중'이 뜨고, 한참 그대로. 나도 매일 보는 화면인데 볼 때마다 조금씩 신경이 쓰였다.

처음엔 파일 탓인 줄 알았다

처음에 의심한 건 화면 파일. 홈을 열 때 받아 오는 파일이 백 개가 넘었고, 내 정보를 가져오는 요청이 앞의 요청이 끝나야 출발하는 식으로 줄을 서 있었다.

그래서 요청을 동시에 보내게 바꾸고, 한 번 받은 화면 파일은 다음 업데이트 전까지 다시 안 받게 했다. 패치노트에 "더 빨라진 새로고침"이라고 자신 있게 적었다.

그리고 다음 날 직접 새로고침을 눌러 봤다. 여전히 '확인 중'이 오래 떴다.

좀 창피했다. 고쳤다고 적어 놓고 안 고쳐진 거다.

첫 번째 범인

이번엔 감으로 고치지 않고 재 보기로 했다. 시험 환경에 사냥 기록을 수만 판 넣고, 홈을 열 때 어디서 시간이 걸리는지 하나씩 쟀다.

범인은 사냥 기록 표였다. 사냥을 한 판 할 때마다 기록이 한 줄씩 쌓이는데, 홈은 내 도시의 이야기 조각 수나 프로필 테두리를 정할 때마다 이 표를 처음부터 끝까지 훑고 있었다. 내 기록만 보면 되는데, 내 기록을 바로 찾는 색인이 없었다. 도서관에서 책 한 권 찾으려고 책장을 전부 뒤지는 셈.

색인을 붙였다. 결과를 보고 한참 웃었다.

색인 하나로 1초 넘게 걸리던 게 0.03초가 됐다.
색인 하나로 1초 넘게 걸리던 게 0.03초가 됐다.

내친김에 홈을 그리는 방식도 바꿨다. 전에는 모든 칸이 다 준비될 때까지 '확인 중'을 띄워 놨다. 이제는 내 캐릭터만 확인되면 화면을 먼저 보여 주고, 나머지 칸은 오는 대로 채운다. 기다리는 시간이 같아도 덜 기다리는 것처럼 느껴진다.

두 번째 범인

그걸로 끝인 줄 알았다. 그런데 실제 서버에서 다시 재 보니 첫 번째로 홈을 열 때 3초 가까이 걸리는 경우가 남아 있었다.

시간 대부분을 한 칸이 먹고 있었다.
시간 대부분을 한 칸이 먹고 있었다.

이번 범인은 '세계 소식'이었다. 누가 전설 아이템을 얻었다는 줄을 보여 주려고, 모든 사람의 사냥 기록을 또 훑고 있었다. 이건 색인으로 해결이 안 됐다. 찾는 게 '내 기록'이 아니라 '모두의 기록에서 좋은 것만'이라서.

기록을 얼마나 들고 있어야 하나

여기서 질문이 바뀌었다. 어떻게 빨리 찾지가 아니라, 이 기록을 왜 이렇게 많이 들고 있지.

사냥 기록은 턴마다 누가 누구를 때렸는지까지 다 적혀 있어서 한 판이 꽤 길다. 그걸 요약은 30일, 상세는 7일 동안 들고 있었다. 처음엔 7일로 줄이면 되나 생각했다. 그러다 아예 원본을 오래 들고 있지 않으면 어떨까 하는 데까지 갔다.

그때 옛 텍스트 웹게임 하나가 생각났다. 거기는 전투 기록을 짧은 시간만 보여 줬는데, 그걸로 충분했다. 생각해 보면 나도 전투 기록을 다시 여는 건 거의 방금 끝난 싸움이다.

그래서 정했다.

턴별 전투 기록은 싸움이 끝나고 30분만 보여 준다. 도감, 칭호, 출석처럼 쌓아 온 진행에 필요한 숫자는 따로 누계로 계속 들고 있는다.

좋은 아이템을 얻은 기록은 따로 장부에 남긴다. 세계 소식은 이제 이 장부만 읽는다. 보상이 잘못 나간 게 아닌지 확인할 수 있게, 한 판에 한 줄짜리 영수증은 30일 동안 둔다.

제일 무서웠던 건 이거였다. 기록을 지웠는데 누군가의 도감이나 칭호가 하나라도 틀어지면 어쩌지. 그래서 실제 서버에 올리기 전에 시험 환경에서 6만 판을 넣고 통째로 연습해 봤다. 누계를 채우고, 옛 방식으로 센 것과 새 방식으로 센 것을 스물두 가지 항목으로 하나하나 대조했다. 어긋난 건 0. 원본을 다 지운 뒤에도 판정은 그대로였다.

빨라졌냐고 물으면

솔직히 이번 건 극적이진 않다. 연습 환경에서 홈이 10~15% 정도 빨라졌다. 색인 때처럼 몇십 배가 아니다.

그래도 이번엔 빨라진 것보다 가벼워진 게 더 좋다. 들고 있을 필요가 없던 걸 내려놓은 거라, 사람이 늘어도 홈이 다시 무거워질 일이 줄었다.

이 글을 쓰는 지금, 이 변경은 마지막 시험을 돌리고 있다. 이번에도 점검 실패 0이면 좋겠다.

다음엔 전쟁을 처음부터 다시 설계한 얘기를 하려고 한다.

TEXT WAR 개발일지 전체 보기