Back-End

Path Variable과 Request Param 의도는 다르다 (차이점)

stars_one 2025. 3. 19. 11:57

 

 

 

우리는 Path Varaible과 Request Param은 차이가 있다는 것을 분명히 알고있습니다.

 

이 두가지의 차이점을 정리하려고 합니다.

 

보통 사용방식의 관점에서 비교가 많이 되는데,

사용의도 관점에서도 차이점을 알아보려고 합니다.

 

Path Variable과 Request Param은 둘 다 HTTP 요청에서 url로 데이터를 전달하는 방법이지만,

사용 목적과 상황에 따라 적합성이 달라집니다.

 

 


 

Path Variable

 

보통 path variable은, URL 경로의 일부로 데이터를 전달하는 방식입니다.

보통 아래와 같은 방식을 많이 사용합니다.

/users/{userId}
/users/{userId}/orders/{orderId}

#example
/users/20
/users/20/orders/30
 

경로 자체에 데이터가 포함되므로, 리소스의 식별자로 사용됩니다.

주로 RESTful API 설계에서 특정 리소스를 지칭할 때 유용합니다.

필수적인 값으로 간주되며, 값이 없으면 요청이 잘못된 것으로 처리될 가능성이 높습니다.

 

보통 특정 사용자, 게시글을 조회할 때 많이 사용되고,

URL 자체로 명확한 의미를 전달하고 싶을 때, 많이 사용됩니다.

 

 


 

Request Params

쿼리 스트링으로 데이터를 전달하는 방식입니다.

/users?userId=123&username="sdf" 

# Request Param
userId=123, username="sdf"

 

키-값 쌍으로 전달되며, 주로 필터링, 검색 조건, 선택적 파라미터를 전달할 때 사용됩니다.

필수가 아닌 경우가 많고, 기본값을 설정할 수 있어 유연합니다.

 -> Springboot에서는  @RequestParam(required=false)

URL에 노출되고, path variable 보다는 구조화가 덜 되어 있습니다.

 

Pathvariable과는 다르게 여러개의 데이터를 전달 할 수 있는데, 

이러한 점은, 필터링, 검색 과 같이 복잡한 데이터를 전달해줘야 할 때 유리합니다.

 

# 검색 조건 전달: 데이터를 필터링하거나 정렬할 때 
/products?category=electronics&sort=price

# 선택적 파라미터: 필수가 아닌 옵션 값을 전달할 때
/users?page=2&limit=10

# 복잡한 쿼리: 여러 조건을 조합해야 할 때
/search?keyword=book&priceMin=10&priceMax=50

 

 

 

728x90