JavaScript로 URL 파라미터 업데이트하는 방법

2025. 4. 16. 09:35·Programing/javascript
반응형

웹 애플리케이션을 개발하다 보면 URL의 파라미터(query string)를 추가하거나 변경해야 하는 상황이 자주 발생합니다. 예를 들어, 필터링 조건을 URL에 반영하거나, 특정 상태를 공유 가능한 URL로 만들고 싶을 때죠.

이번 포스팅에서는 JavaScript를 사용해서 URL 파라미터를 동적으로 업데이트하는 방법을 실전 예제와 함께 알아보겠습니다.

 

📌 URL 파라미터란?

URL 파라미터는 ? 뒤에 붙는 쿼리 스트링을 의미합니다.

https://example.com/page?category=books&page=2

 

위 URL에서 category=books, page=2는 URL 파라미터입니다.

 

🛠️ URL 파라미터 업데이트 방법

1. URLSearchParams 사용하기 (추천)

현대적인 브라우저에서는 URLSearchParams 객체를 사용하면 아주 쉽게 파라미터를 다룰 수 있습니다.

const url = new URL(window.location.href);
const params = url.searchParams;

params.set('page', 3); // page 파라미터를 3으로 변경
params.set('category', 'electronics'); // category를 electronics로 변경

// URL을 갱신 (페이지를 리로드하지 않음)
window.history.replaceState({}, '', `${url.pathname}?${params}`);

💡 set()과 delete() 사용법

params.set('sort', 'price_desc'); // 없으면 추가, 있으면 수정
params.delete('filter');          // 특정 파라미터 제거

2. 기존 URL에서 직접 문자열 조작하기 (비추천)

아래 방식은 옛날 코드에서 종종 보이지만, 문자열을 직접 다루기 때문에 실수가 생기기 쉽습니다.

let currentUrl = window.location.href;
if (currentUrl.includes('page=')) {
  currentUrl = currentUrl.replace(/page=\d+/, 'page=3');
} else {
  currentUrl += (currentUrl.includes('?') ? '&' : '?') + 'page=3';
}
window.history.replaceState({}, '', currentUrl);

가능하면 URL과 URLSearchParams를 사용하는 것이 훨씬 안전하고 깔끔합니다.


🔄 replaceState vs pushState

  • replaceState: 현재 URL을 새 URL로 교체 (히스토리 기록 안 남음)
  • pushState: 새 URL을 히스토리에 추가 (뒤로가기 시 이전 페이지로 돌아감)
window.history.pushState({}, '', `${url.pathname}?${params}`);

✅ 예제: 필터 버튼을 클릭하면 URL에 반영하기

<button onclick="updateFilter('color', 'red')">빨간색</button>
<button onclick="updateFilter('color', 'blue')">파란색</button>

<script>
  function updateFilter(key, value) {
    const url = new URL(window.location.href);
    url.searchParams.set(key, value);
    window.history.replaceState({}, '', `${url.pathname}?${url.searchParams}`);
  }
</script>

마무리

URLSearchParams와 history API를 활용하면 페이지를 새로 고치지 않고도 URL 파라미터를 손쉽게 조작할 수 있습니다. 이는 사용자 경험 향상은 물론, 공유 가능한 URL을 만들 때도 매우 유용합니다.

반응형

'Programing > javascript' 카테고리의 다른 글

💻 숫자를 한글 숫자 표기로 변환  (1) 2025.04.18
💰 숫자를 한글로 금액 단위로 표현  (0) 2025.04.18
📷 JavaScript로 이미지 리사이징 후 PHP로 업로드하는 방법  (1) 2025.04.16
🎂 자바스크립트로 나이 계산하는 3가지 방법  (0) 2025.04.16
javascript array sort(나이순 정렬)  (0) 2023.09.19
jQuery 이름이 비슷한 여러 요소 한번에 선택(like selector for jquery)  (0) 2023.09.19
jQuery css 애니메이션 반복/초기화(removeclass, addclass)  (0) 2023.09.19
jQuery 요소의 내용이 바뀌었을때 감지 이벤트  (0) 2023.09.19
'Programing/javascript' 카테고리의 다른 글
  • 📷 JavaScript로 이미지 리사이징 후 PHP로 업로드하는 방법
  • 🎂 자바스크립트로 나이 계산하는 3가지 방법
  • javascript array sort(나이순 정렬)
  • jQuery 이름이 비슷한 여러 요소 한번에 선택(like selector for jquery)
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (456) N
      • 금융 (61)
      • Programing (279) N
        • Algorithm (38) N
        • API (2)
        • javascript (121)
        • CSS (6)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (17)
        • MS-SQL (1)
        • MySQL (12)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (5)
      • IT 일반 (15)
      • 리뷰 (1) N
        • Book (17)
        • 제품 (2) N
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (31)
        • 회고 (2)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    Java
    자바스크립트유틸
    사고 싶은 책
    JavaScript
    SQL
    기초
    읽고 싶은 책
    IT·컴퓨터
    It
    php
    디자인패턴
    js패턴
    iT's MY LiFE
    IT블로그
    자바
    블로그
    위시리스트
    IT 관련
    자바스크립트
    jsp
  • hELLO· Designed By정상우.v4.10.3
Dongkkase
JavaScript로 URL 파라미터 업데이트하는 방법
상단으로

티스토리툴바