본문 바로가기
카테고리 없음

Path Variable과 Request Param

by Or0i쿠 2025. 9. 16.

Path Variable (경로 변수)

  • URL 경로의 일부(Segment)로 데이터를 포함하여 전송하는 방식
  •  특정 리소스(자원)를 식별할 때 사용 (예: 특정 게시물 ID, 특정 사용자 ID 등)

사용 방법

  • URL 경로에 {변수명} 형태로 표시하고, @PathVariable 어노테이션으로 해당 값을 Controller 메서드의 매개변수로 받아온다.
    • 예시 URL: http://localhost:8080/users/123 (여기서 123이 Path Variable)
    • Controller 코드 예시:
      @GetMapping("/users/{userId}")
      public String getUserProfile(@PathVariable String userId) {
          // userId 값을 사용하여 사용자 정보를 조회
          return "User ID: " + userId;
      }
  • 주요 특징:
    • URL의 필수적인 부분입니다. 이 값이 없으면 리소스를 정확히 지정할 수 없습니다.
    • 간결하고 RESTful API 디자인에 적합합니다.

 Request Param (요청 매개변수)

  • URL의 쿼리 스트링(Query String)에 데이터를 key=value 형태로 포함하여 전송하는 방식
  • 주로 필터링, 정렬, 페이지네이션(페이징) 등 부가적인 옵션이나 검색 조건을 전달할 때 사용

사용 방법

  • URL에 ? 뒤에 변수명=값 형태로 나열하고, @RequestParam 어노테이션으로 Controller 메서드의 매개변수로 받아다. 여러 개일 경우 &로 연결
    • 예시 URL: http://localhost:8080/products?category=electronics&page=1 (여기서 category=electronics와 page=1이 Request Param)
    • Controller 코드 예시:
      @GetMapping("/products")
      public String getProducts(
          @RequestParam String category,
          @RequestParam(required = false, defaultValue = "1") int page) {
          // category와 page 값을 사용하여 상품을 검색
          return "Category: " + category + ", Page: " + page;
      }
      

주요 특징:

  • URL의 선택적인 부분일 수 있습니다 (required = false 또는 defaultValue 지정 가능).
  • 순서가 중요하지 않고, 여러 개의 조건을 전달하기 편리합니다.
특징 Path Variable (@PathVariable) Request Param (@RequestParam)
위치 URL 경로의 일부 (/users/{id}) URL 쿼리 스트링 (/products?category=electronics)
용도 특정 리소스 식별 (고유한 값) 리소스 필터링, 정렬, 검색 조건, 페이지네이션 (부가적인 값)
필수 여부 일반적으로 필수 주로 선택적 (required = false, defaultValue 사용 가능)
예시 GET /posts/123 (123번 게시물 조회) GET /posts?sortBy=date&order=desc (날짜 내림차순 정렬)