@PathVariable vs @RequestParam (Query String)

백엔드&인프라 추종자·2025년 2월 26일

스프링 공부

목록 보기
13/35

📌 @PathVariable vs @RequestParam (Query String)

둘 다 클라이언트가 서버에 값을 전달할 때 사용되지만, URL 구조와 용도에서 차이가 있습니다.


🔹 1. @PathVariable (경로 변수)

URL 경로에 값을 포함하여 전달할 때 사용

사용 예시

@GetMapping("/user/{id}")
public String getUserById(@PathVariable("id") Long userId) {
    return "User ID: " + userId;
}

🔹 호출 예시

GET /user/123
  • 123이 URL 경로의 일부로 전달됨
  • RESTful API에서 리소스를 식별할 때 주로 사용 (/user/{id} → 특정 사용자 조회)

🔹 2. @RequestParam (Query String)

URL의 쿼리 스트링(Query String)을 이용해 값을 전달할 때 사용

사용 예시

@GetMapping("/user")
public String getUser(@RequestParam("id") Long userId) {
    return "User ID: " + userId;
}

🔹 호출 예시

GET /user?id=123
  • id=123이 Query String으로 전달됨
  • 선택적(optional) 파라미터를 받을 때 주로 사용
  • 여러 개의 파라미터를 전달하기 용이함 (?id=123&name=John)

🔍 비교 정리

@PathVariable@RequestParam
위치URL 경로 (/user/{id})Query String (/user?id=123)
사용 목적리소스 식별 (RESTful API)필터링, 검색, 정렬 등의 추가 정보 전달
필수 여부기본적으로 필수 (경로가 없으면 404)기본적으로 선택적 (required=false 가능)
예제 URL/user/123/user?id=123

결론

  • @PathVariableURL의 일부로 값을 전달할 때 사용 (RESTful API)
  • @RequestParam쿼리 스트링으로 데이터를 전달할 때 사용 (필터링, 검색 등)
profile
AI 답변 글을 주로 올립니다.

0개의 댓글