🌿 중급 백엔드
쿼리 파라미터가 뭔가요?
쉽게 이해하기
쿼리 파라미터는 음식점에서 주문할 때 '맵기 조절', '양 추가', '빼주세요' 같은 옵션을 선택하는 것과 비슷해요. 기본 메뉴(URL)는 정해져 있지만, 거기에 내가 원하는 옵션(파라미터)을 덧붙여서 정확히 내가 원하는 결과를 받는 거죠.
핵심 정리
URL 뒤에 ?key=value 형태로 붙여서 서버에 추가 정보를 전달하는 방법이에요.
자세히 알아보기
쿼리 파라미터는 URL 끝에 '?'로 시작해서 키=값 쌍으로 데이터를 전달하는 방식이에요. 예를 들어 'https://example.com/search?keyword=맥북&sort=price' 같은 형태죠. 여기서 keyword와 sort가 쿼리 파라미터 키고, 맥북과 price가 값이에요. 여러 개를 전달할 때는 &로 연결해요.
주로 검색, 필터링, 정렬, 페이징 같은 옵션을 전달할 때 사용해요. 쇼핑몰에서 '가격 낮은 순', '최신순' 같은 정렬 옵션을 선택하면 URL에 '?sort=price_asc' 같은 쿼리 파라미터가 붙는 걸 볼 수 있어요. YouTube에서 동영상을 보면 'https://youtube.com/watch?v=abc123' 같은 형태인데, v 파라미터로 어떤 동영상인지 식별하는 거예요.
쿼리 파라미터는 GET 요청에서 주로 쓰이고, URL에 그대로 노출되기 때문에 민감한 정보(비밀번호 등)는 절대 쿼리 파라미터로 보내면 안 돼요. 브라우저 히스토리에 남고, 서버 로그에도 기록되니까요. 그런 정보는 POST 요청의 바디에 담아 보내야 해요.
실무에서는 프론트엔드에서 fetch() 같은 함수로 URL을 만들 때 쿼리 파라미터를 자동으로 인코딩해주는 URLSearchParams 같은 도구를 사용해요. 한글이나 특수문자가 들어가면 %로 시작하는 이상한 문자로 변환되는데, 이게 URL 인코딩이에요.