웹 개발
배포 전 검색 파라미터 전달이 제대로 되는지 확인하는 법
검색 파라미터가 포함된 URL이 배포 후 제대로 작동하지 않으면, 빌드 결과와 로그를 먼저 확인해야 한다.
검색해서 들어온 상황이라면 바로 재현 조건부터 잡는 편이 빠르다. 특히 쿼리 파라미터를 다루는 로직은 배포 환경에서 다르게 작동할 수 있다.
핵심 질문 던지기
먼저 다음 질문들을 스스로에게 던진다:
- 파라미터가 정말 URL에 포함되어 있는가? (
?q=keyword) - 파라미터가 코드에서 올바르게 파싱되는가?
- 파라미터를 처리하는 환경변수가 배포 환경에서 올바르게 설정되었는가?
- 인코딩 차이 때문에 특수문자가 깨지는 건 아닌가?
이런 질문들을 통해 원인을 빠르게 좁힐 수 있다.
제외할 수 있는 원인들
먼저 로컬에서 이것들을 확인해본다:
- 검색 기능이 로컬에서 정상 작동하는가?
- 로컬에서도 파라미터를 제대로 인식하는가?
- 타입스크립트 컴파일이나 린팅 경고가 없는가?
로컬에서 이 모든 것이 정상이라면, 배포 과정에서 문제가 생겼을 가능성이 높다.
프로덕션 빌드 검증
실제 배포되는 빌드로 테스트한다:
npm run build
빌드 후, 로컬에서 프로덕션 서버를 실행한다:
npm start
그 다음 테스트 URL을 입력하고, 파라미터가 제대로 전달되는지 확인한다. 예를 들어 http://localhost:3000/search?q=flutter처럼.
설정 확인과 검증 순서
파라미터 처리 순서를 다시 한 번 정리한다:
- URL 입력: 사용자가 입력하거나 다른 페이지에서 링크를 클릭했는가?
- 서버 라우팅: 파라미터가 포함된 URL이 서버에 도달하는가?
- 클라이언트 파싱: 클라이언트에서 쿼리 파라미터를 읽고 있는가?
- 상태 업데이트: 읽은 파라미터를 상태에 반영하는가?
- UI 렌더링: UI가 상태를 정확히 반영하는가?
이 다섯 단계 중 어디서 끊어지는지 파악해야 한다.
정상 상태와의 비교
정상적으로 작동할 때와의 차이점을 기록한다:
- 로컬과 배포 환경에서의 동작 차이
- 브라우저 콘솔의 에러나 경고
- Network 탭에서 요청 URL
- API 응답 데이터
단계별 디버깅
- 증상이 같은 조건에서 다시 나타나는지 확인한다.
- 로그에서 파라미터 값이 제대로 받아졌는지 확인한다.
- 화면에 검색 결과가 나타나는지, 검색어 입력창에 파라미터값이 표시되는지 확인한다.
마무리
다음에 비슷한 증상이 나오면 먼저 현재 URL과 데이터를 기록한 후, 하나씩 비교하면 된다. 파라미터 관련 버그는 보통 재현성이 높으므로, 한 번 문제를 파악하면 재발을 방지하기 쉽다.