← 빌드 일지
빌드 로그2026-07-07·3분 읽기

홈을 통째로 갈아엎은 날: 옛 주소가 404를 뱉을 때와 버그 리포트를 의심해야 할 때

첫 화면을 정적인 일지에서 인터랙티브 콘솔로 승격했다. 문제는 승격 직후였다. 사용자가 준 두 개의 버그 리포트 중 하나는 진짜였고 하나는 오진이었다.

3줄 요약

  1. 오늘 한 일은 사이트 첫 화면을 정적인 빌드 일지에서 클릭으로 반응하는 인터랙티브 콘솔로 승격하고, 승격 직후 튀어나온 두 가지 문제를 진단해 고친 것이다.
  2. 이게 중요한 이유는 첫 화면을 통째로 바꾸면 예전에 공유해둔 주소가 소리 없이 죽는다는, 큰 개편에 늘 따라붙는 함정을 보여주기 때문이다.
  3. 혼자 만들고 고치는 운영자에게는, 사용자가 준 버그 리포트를 액면 그대로 믿지 않고 하나씩 재현해보는 습관이 오진을 막는 유일한 방패다.

첫 화면을 정적인 일지에서 반응하는 콘솔로 올렸다

오늘의 큰 결정은 사이트 대문을 바꾼 것이다. 기존 첫 화면은 빌드 일지를 쭉 나열한 정적인 페이지였다. 이걸 관심 분야를 고르면 그에 맞는 시스템 카드와 결과물이 전환되는 인터랙티브 콘솔로 승격했다.

승격 방식 자체가 하나의 판단이었다. 라이브 첫 화면을 바로 건드리면 실수가 그대로 노출된다. 그래서 별도의 숨긴 주소에 먼저 전부 구현하고, 검색에도 안 잡히게 막아둔 채 완성한 다음, 확정 신호가 온 뒤에야 그걸 첫 화면으로 올리는 순서를 밟았다. 기존 첫 화면은 지우지 않고 별도 주소로 백업해 언제든 되돌릴 수 있게 남겨뒀다. 큰 변경일수록 되돌릴 길을 먼저 확보하고 들어간다.

수치 하나도 이 단계에서 걸러냈다. 원래 기획 문서에는 결과물 수백 개, 학생 수백 명 같은 숫자가 적혀 있었는데, 실제로 검증되는 값이 아니었다. 그래서 실측으로 확인되는 값만 남기고 나머지는 전부 뺐다. 대문에 거는 숫자는 눈에 좋아 보이는 값이 아니라 증명되는 값이어야 한다.

첫 화면을 갈아엎으면 예전에 뿌린 주소가 죽는다

승격 직후 받은 첫 리포트는 진짜 버그였다. 화면 여기저기서 404가 뜬다는 것이었다. 원인을 따라가보니 이랬다. 콘솔을 첫 화면으로 올리면서, 그동안 콘솔이 임시로 살던 예전 주소를 삭제했다. 그런데 나는 그 예전 주소를 계속 공유하고 있었고, 그 주소를 클릭하면 이제 아무것도 없으니 404가 났다.

이건 큰 개편에 늘 따라붙는 함정이다. 첫 화면을 통째로 바꾸면 콘텐츠는 새 위치로 옮겨가지만, 예전에 누군가에게 보낸 주소나 북마크는 옛 위치를 계속 가리킨다. 그 빈 곳을 그대로 두면 방문자는 빈 벽에 부딪힌다. 해결은 옛 주소로 들어오는 사람을 새 첫 화면으로 자동으로 넘겨주는 우회로를 놓는 것이었다. 옛 주소를 죽이는 게 아니라, 옛 주소를 새 목적지로 연결해 살려두는 쪽이다.

두 개의 버그 리포트 중 하나는 오진이었다

같은 리포트에 두번째 증상이 붙어 있었다. 마우스를 올려도 반응이 하나도 안 붙는다는 것이었다. 여기서 바로 코드를 뜯지 않고 먼저 실제 첫 화면에서 그 동작을 재현해봤다. 그랬더니 반응은 멀쩡히 붙어 있었다.

무슨 일이 있었냐면, 사용자가 본 화면은 새 첫 화면이 아니라 아까 그 죽은 옛 주소였다. 옛 주소에서는 아무것도 없으니 당연히 반응도 없었다. 즉 이 증상은 별개의 버그가 아니라 첫번째 404 문제가 만든 그림자였다. 진짜 첫 화면에는 아무 이상이 없었다. 만약 리포트를 곧이곧대로 믿고 반응 코드부터 파고들었다면, 멀쩡한 코드를 몇 시간 헤집으며 있지도 않은 버그를 쫓았을 것이다.

같이 처리한 정리도 있다. 며칠 전 개편 때 최소한으로 줄여뒀던 교육 페이지를 다시 풀버전으로 되살렸다. 커리큘럼 데이터가 지워지지 않고 남아 있어서, 입문과 실전과 심화 세 단계 구성을 원래대로 복원할 수 있었다. 지울 때 데이터를 남겨둔 과거의 선택이 오늘 복원을 공짜로 만들었다.

오늘 관통한 판단

오늘 하루를 관통한 생각은 하나다. 증상과 원인은 자주 다른 곳에 있다. 404도, 반응이 안 붙는다는 호소도, 뿌리는 결국 옛 주소를 비워둔 한 가지였다. 만약 두 증상을 각각 다른 버그로 취급하고 따로 고치려 들었다면 시간을 두 배로 버렸을 것이다.

그래서 오늘의 순서는 리포트를 나눠서 각각 재현해보는 것이었다. 하나는 진짜였고 하나는 오진이었다. 사용자의 리포트는 무엇이 잘못됐는지 알려주는 소중한 신호지만, 왜 잘못됐는지까지 알려주지는 않는다. 그 사이를 메우는 건 만든 사람이 직접 재현해 눈으로 확인하는 일이다. 약속이 아니라 확인된 결과를 남긴다. 오늘은 첫 화면을 새로 세우고, 그 위에 생긴 그림자와 진짜 구멍을 갈라내 각각 맞춘 날이었다.

Wildeconforce

매일 만들고, 매일 분석하고, 매일 기록합니다.
© 2026 wildeconforce · build-in-public

이 사이트는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.