자바스크립트의 URLSearchParams로 쿼리 스트링 다루기

소위 검색 파라미터(search parameters)라고도 불리는 쿼리 스트링은 URL에서 경로(pathname) 바로 다음에 나오는 ? 기호로 시작하는 문자열인데요. 비단 검색 뿐만 아니라 필터링(filter), 페이지네이션(pagination), 정렬(sort) 등 다양한 용도로 사용됩니다. 보통 웹 서버에서는 URL의 쿼리 스트링을 분석하여 요청한 리소스를 응답하기 전에 다양한 추가 작업을 수행할 수 있습니다.


쿼리 스트링에는 ?key1=value1&key2=value2&... 형태로 여러 개의 키와 값의 쌍을 & 기호로 구분하여 매개변수를 명시할 수 있는데요. 매개변수의 개수가 많아지면 사람의 눈으로 읽기가 쉽지 않고 매개변수에 다국어나 특수 문자가 포함되어 있으면 인코딩도 신경을 써줘야 하죠.


게다가 URL 명세에 따르면 쿼리 스트링은 ?key=value1&key=value2와 같이 동일한 키에 여러 개의 값을 할당하는 것도 허용하는데요. 이 부분도 처리할 때 경계 조건을 잘 고려하지 않으면 버그로 이어지기 쉽습니다.


예전에는 자바스크립트에서 쿼리 스트링을 일반 문자열로 다루는 경우가 많아서 적지 않은 노력과 주의가 필요했었는데요. 요즘에는 URL API에서 제공하는 URLSearchParams를 사용하여 좀 더 안전하게 쿼리 스트링을 다룰 수 있게 되었습니다.


이번 시간에는 URL API에서 제공하는 또 다른 유용한 기능인 URLSearchParams를 이용하여 웹 주소의 구성 요소 중에서도 가장 다루기 어려운 쿼리 스트링을 다루는 방법에 대해서 알아보겠습니다.


📺 동영상: https://youtu.be/GDcVZZnsa0Q

📝 포스팅: https://careerly.co.kr/comments/101969


  • URLSearchParams의 필요성

  • URLSearchParams 객체의 생성

  • size 속성

  • toString() 메서드

  • append(), set() 메서드

  • get(), getAll() 메서드

  • 파라미터 순회

  • delete(), has() 메서드

  • URL과 URLSearchParams 함께 사용


자바스크립트의 URL API를 사용하는 기본적인 방법이 궁금하시다면 아래 게시물을 참고 바랍니다.


📕 자바스크립트의 URL API로 웹 주소 다루기: https://careerly.co.kr/comments/103170


아직 웹 표준 API를 사용하여 쿼리 스트링을 다루기가 꺼려지시는 분께는 아래 게시물을 추천드리겠습니다.


📗 쿼리 스트링을 다루기 위한 자바스크립트 라이브러리: https://careerly.co.kr/comments/94959

자바스크립트의 URLSearchParams로 쿼리 스트링 다루기

www.youtube.com

자바스크립트의 URLSearchParams로 쿼리 스트링 다루기

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 4월 21일 오후 8:28

 • 

저장 15조회 2,916

댓글 0

    함께 읽은 게시물

    🗞️ 간밤에 구글이 Gemini 2.5 Pro를 출시했는데요. 벤치마크 상으로는 GPT-4.5와 Claude 3.7 의 성능을 크게 뛰어넘는 결과를 보여줍니다. 특히 코딩능력이 매우 크게 향상되었는데요.

    ... 더 보기

     • 

    저장 8 • 조회 2,726


    Vibe Coding 매뉴얼

    ... 더 보기

    Vibe Coding 매뉴얼: AI 지원 개발을 위한 템플릿 :: ROBOCO

    roboco.io

     Vibe Coding 매뉴얼: AI 지원 개발을 위한 템플릿 :: ROBOCO

     • 

    저장 18 • 조회 5,318


    (번역) Create React App 지원 종료

    C

    ... 더 보기

    (번역) Create React App 지원 종료

    www.harimkim.com

    (번역) Create React App 지원 종료

    👋 굿바이 Styled Components 🥹

    S

    ... 더 보기

    Thank you - styled-components

    opencollective.com

    Thank you - styled-components

     • 

    댓글 1 • 저장 31 • 조회 2,716


    router.refresh 와 window.location.reload?

    r

    ... 더 보기

    - YouTube

    youtu.be

     - YouTube

     • 

    저장 16 • 조회 1,785


    리트코드 261. Graph Valid Tree

    ... 더 보기

    Graph Valid Tree | 알고달레

    알고달레

    Graph Valid Tree | 알고달레

     • 

    저장 4 • 조회 2,177