← 전체 글로 돌아가기

웹 개발

배포 전 검색 파라미터 전달이 제대로 되는지 확인하는 법

검색 파라미터가 포함된 URL이 배포 후 제대로 작동하지 않으면, 빌드 결과와 로그를 먼저 확인해야 한다.

검색해서 들어온 상황이라면 바로 재현 조건부터 잡는 편이 빠르다. 특히 쿼리 파라미터를 다루는 로직은 배포 환경에서 다르게 작동할 수 있다.

핵심 질문 던지기

먼저 다음 질문들을 스스로에게 던진다:

  • 파라미터가 정말 URL에 포함되어 있는가? (?q=keyword)
  • 파라미터가 코드에서 올바르게 파싱되는가?
  • 파라미터를 처리하는 환경변수가 배포 환경에서 올바르게 설정되었는가?
  • 인코딩 차이 때문에 특수문자가 깨지는 건 아닌가?

이런 질문들을 통해 원인을 빠르게 좁힐 수 있다.

제외할 수 있는 원인들

먼저 로컬에서 이것들을 확인해본다:

  • 검색 기능이 로컬에서 정상 작동하는가?
  • 로컬에서도 파라미터를 제대로 인식하는가?
  • 타입스크립트 컴파일이나 린팅 경고가 없는가?

로컬에서 이 모든 것이 정상이라면, 배포 과정에서 문제가 생겼을 가능성이 높다.

프로덕션 빌드 검증

실제 배포되는 빌드로 테스트한다:

npm run build

빌드 후, 로컬에서 프로덕션 서버를 실행한다:

npm start

그 다음 테스트 URL을 입력하고, 파라미터가 제대로 전달되는지 확인한다. 예를 들어 http://localhost:3000/search?q=flutter처럼.

설정 확인과 검증 순서

파라미터 처리 순서를 다시 한 번 정리한다:

  1. URL 입력: 사용자가 입력하거나 다른 페이지에서 링크를 클릭했는가?
  2. 서버 라우팅: 파라미터가 포함된 URL이 서버에 도달하는가?
  3. 클라이언트 파싱: 클라이언트에서 쿼리 파라미터를 읽고 있는가?
  4. 상태 업데이트: 읽은 파라미터를 상태에 반영하는가?
  5. UI 렌더링: UI가 상태를 정확히 반영하는가?

이 다섯 단계 중 어디서 끊어지는지 파악해야 한다.

정상 상태와의 비교

정상적으로 작동할 때와의 차이점을 기록한다:

  • 로컬과 배포 환경에서의 동작 차이
  • 브라우저 콘솔의 에러나 경고
  • Network 탭에서 요청 URL
  • API 응답 데이터

단계별 디버깅

  1. 증상이 같은 조건에서 다시 나타나는지 확인한다.
  2. 로그에서 파라미터 값이 제대로 받아졌는지 확인한다.
  3. 화면에 검색 결과가 나타나는지, 검색어 입력창에 파라미터값이 표시되는지 확인한다.

마무리

다음에 비슷한 증상이 나오면 먼저 현재 URL과 데이터를 기록한 후, 하나씩 비교하면 된다. 파라미터 관련 버그는 보통 재현성이 높으므로, 한 번 문제를 파악하면 재발을 방지하기 쉽다.