Day 34 · 2/5
🌿 중급 백엔드

쿼리 스트링이 뭔가요?

쉽게 이해하기

택시를 탈 때 '강남역으로 가주세요'라고 하는 게 기본 요청이라면, '강남역으로, 빠른 길로, 창문 열고 가주세요'라고 부가 조건을 붙이는 게 쿼리 스트링이에요. 기본 목적지는 같지만 어떻게 갈지에 대한 세부 옵션을 추가로 전달하는 거죠.

핵심 정리

URL 끝에 ?로 시작하는 부분으로, 서버에 추가 정보를 전달하는 방법이에요.

자세히 알아보기

쿼리 스트링은 URL에서 ? 기호 뒤에 오는 키=값 형태의 데이터예요. 예를 들어 'https://shop.com/products?category=shoes&color=red&size=260'에서 ?category=shoes&color=red&size=260 부분이 쿼리 스트링이에요. 쿼리 스트링은 주로 검색, 필터링, 정렬 같은 옵션을 전달할 때 사용돼요. 쇼핑몰에서 '운동화' 카테고리의 '빨간색' 상품을 '가격 낮은 순'으로 보고 싶을 때, 이 조건들을 모두 쿼리 스트링으로 보내는 거죠. 서버는 이 값들을 읽어서 해당 조건에 맞는 상품 목록을 데이터베이스에서 찾아 응답해요. 쿼리 스트링의 장점은 URL만 봐도 어떤 조건으로 데이터를 요청했는지 알 수 있다는 거예요. 그래서 URL을 북마크하거나 공유할 수 있고, 브라우저 뒤로가기를 해도 같은 검색 결과를 유지할 수 있어요. 또 GET 요청에서만 사용되기 때문에 캐싱도 쉽죠. 여러 값을 전달할 때는 & 기호로 구분하고, 값에 특수문자나 한글이 있으면 URL 인코딩을 해야 해요. 예를 들어 공백은 %20으로, 한글은 %로 시작하는 코드로 변환돼요. 하지만 쿼리 스트링은 URL에 그대로 노출되니까 비밀번호 같은 민감한 정보는 절대 담으면 안 돼요.