(Spring) Path Variable & Request Param 차이점

2024. 10. 29. 20:18·Spring

1. 들어가기 전

서버로 데이터를 보내는 방법은 여러 가지가 있습니다. 그 중 Path Variable과 Request Param은 자주 사용되는 방식으로, 이 두 가지를 활용하면 URL을 통해 서버와 클라이언트 간 데이터를 효율적으로 주고받을 수 있습니다. 이번에는 각각의 사용법과 차이점을 배워보겠습니다.


2. Path Variable

사용법

Path Variable은 URL 경로에 데이터를 포함시키는 방식입니다. 경로에 중괄호 {}를 사용해 동적으로 변수를 받아올 수 있습니다.

 

예시 경로
/star/{name}/age/{age}

▶ 코드 예제

@GetMapping("/star/{name}/age/{age}")
public String getStarInfo(@PathVariable String name, @PathVariable int age) {
    return name + "님의 나이는 " + age + "세입니다.";
}
  • 위 코드에서는 클라이언트가 /star/Robbie/age/95로 요청하면 "Robbie님의 나이는 95세입니다." 라는 응답을 받게 됩니다.
  • @PathVariable 애너테이션을 사용하여 경로에서 데이터를 추출합니다.

3. Request Param

사용법

Request Param은 URL 경로 마지막에 ?와 & 기호를 이용해 데이터를 전송합니다.

예시 URL
/star?name=Robbie&age=95

▶ 코드 예제

@GetMapping("/star")
public String getStarInfoByParam(@RequestParam String name, @RequestParam int age) {
    return name + "님의 나이는 " + age + "세입니다.";
}
  • 클라이언트가 /star?name=Robbie&age=95로 요청을 보내면 "Robbie님의 나이는 95세입니다."라는 응답을 받습니다.
  • @RequestParam 애너테이션으로 URL 파라미터에서 값을 받아올 수 있습니다.

4. Path Variable과 Request Param의 차이점

구분 Path Variable Request Param
데이터 위치 URL 경로의 일부 URL의 쿼리 스트링 (?key=value)
예시 /star/Robbie/age/95 /star?name=Robbie&age=95
사용 목적 리소스 식별에 사용 리소스의 세부 정보 전달에 사용
주로 사용되는 곳 RESTful API에서 동적 경로 생성 검색이나 필터 기능에 많이 사용됨

 

 


5. TIP  & 정리

정리

  • Path Variable: RESTful API 경로에서 변수를 동적으로 받아오는 방식. 주로 리소스를 식별할 때 사용됩니다.
  • Request Param: URL의 쿼리 스트링을 통해 데이터를 전달. 리소스의 옵션을 설정하거나 필터링에 사용됩니다.
  • 두 방식의 차이는 주로 리소스 식별과 세부 정보 전달이라는 목적의 차이에 있습니다.

TIP

  • Path Variable을 사용할 때는 데이터의 명확한 식별자가 필요할 때 사용하세요. 예를 들어, user/{id}와 같이 특정 리소스를 명확히 가리킬 때 유용합니다.
  • Request Param은 여러 가지 옵션을 전달하거나 검색 기능에 적합합니다. 가령, ?sort=desc&page=2처럼 다양한 파라미터가 필요한 경우 사용하면 좋습니다.
  • 두 방식 모두 함께 사용할 수 있습니다. 예를 들어 /user/{id}?active=true처럼 경로와 파라미터를 조합하면 더 유연한 API 설계가 가능합니다
저작자표시 비영리 변경금지 (새창열림)

'Spring' 카테고리의 다른 글

(Spring) 데이터베이스 개념 및 MySQL 개요  (0) 2024.11.04
(Spring) HTTP 데이터 객체 처리 및 CRUD 구현하기  (0) 2024.10.30
(Spring) Jackson과 Spring에서의 활용  (0) 2024.10.28
(Spring) 삭제 관련 Cascade 사용 여부에 따른 정리  (0) 2024.10.24
(Spring) Controller & RestController란 무엇인가  (1) 2024.10.23
'Spring' 카테고리의 다른 글
  • (Spring) 데이터베이스 개념 및 MySQL 개요
  • (Spring) HTTP 데이터 객체 처리 및 CRUD 구현하기
  • (Spring) Jackson과 Spring에서의 활용
  • (Spring) 삭제 관련 Cascade 사용 여부에 따른 정리
lastdove
lastdove
lastdove 님의 블로그 입니다.
  • lastdove
    lastdove 님의 블로그
    lastdove
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Spring (16)
      • JAVA (17)
      • JAVA 알고리즘 (20)
      • Project (5)
      • SQL 문제풀이 (17)
      • Git&Linux (2)
      • Web development(입문) (2)
      • Sparta (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
lastdove
(Spring) Path Variable & Request Param 차이점
상단으로

티스토리툴바