본문 바로가기
간단 정리/웹 개발

[간단 정리] Query String과 Path Variable

by kim-dev 2025. 2. 6.
반응형

Query String

  • URL의 ? 뒤에 key-value 형태로 데이터를 전달하는 방식.
    ex: `https://example.com/products?category=shoes&size=270&color=black`
  • 보통 필터링, 검색, 정렬, 페이징 등의 기능을 위해 사용된다.

Path Variable

  • URL의 특정 부분을 변수처럼 사용하여 데이터를 전달하는 방식.
    ex: `https://example.com/products/123`
  • 주로 리소스의 고유한 식별자 (ID, 이름 등)를 포함할 때 사용된다.
    Restful API의 원칙 상 특정 리소스를 고유하게 식별할 때는 Path Variable을 사용해야 한다고 한다.

 

그렇다면 이 둘을 각각 언제 사용해야 할까?
바로 위에 적혀 있는 대로 기타 변수로 데이터를 필터링하거나 페이징할 때에는 Query String을 사용하고, 특정 리소스를 고유한 식별자로 조회하기 위해서는 Path Variable을 사용하면 된다.

  • 특정 학급에 속해 있는 학생들의 정보를 반환하고 싶은 경우: Query String
    왜? 학급은 고유한 리소스라기보다는 학생의 속성에 가깝기 때문에, 해당 속성을 가진 학생을 필터링하는 것이므로!
    `/users?class=3`
  • 특정 학교의 특정 유저를 학교id와 유저id로 찾고 싶은 경우: Path Variable
    왜? 학교와 유저는 각각 고유한 id를 가지고 있는 리소스이기 때문에 Restful API 원칙에 따라 Path Variable을 사용하는 게 바람직!
    `/schools/{schoolId}/users/{userId}`

물론 학급도 개발자의 관점에 따라서 학급id를 가지는 특정 리소스로 볼 수 있긴 하겠지만... 이는 개발자가 처음에 모델 설계를 어떻게 했느냐에 따라 달라지는 문제인 것 같다.