개발일지/2023_한이음

@PathVariable, @RequestParam의 차이점

기억지기 개발자 2023. 7. 31. 10:24

🏕️상황

@GetMapping("/list/{schId}")
public ResponseDTO<?> boardList(@PathVariable("schId") Long schId, @RequestParam(name = "cateNo") Long cateNo)

다음과 같은 코드가 있을 때, URL 경로에는 cateNo라는 값이 없는데 왜 매개변수에는 있는지 의아했다. 

 

 

 

🗝️해결

@PathVariable("schId") Long schId:

@PathVariableURL 경로에서 특정 변수를 추출하는데 사용된다.

schId라는 변수명으로 URL 경로에서 값을 추출하여 Long 데이터 타입으로 매핑하게 된다.

예를 들어, URL 경로가 "/schedule/123"인 경우, schId 변수에는 123이 할당된다.


@RequestParam(name = "cateNo") Long cateNo:

@RequestParam은 URL 쿼리 파라미터에서 값을 추출하는데 사용된다.

cateNo라는 파라미터명으로 쿼리 파라미터에서 값을 추출하여 Long 데이터 타입으로 매핑한다.

예를 들어, URL이 "/schedule/123?cateNo=456"인 경우, cateNo 변수에는 456이 할당된다.

 

 

다음과 같은 이미지에서 URL경로에 있는 1을 추출하고자 할 때 @PathVariable , 쿼리 파라미터에 있는 cateNo의 값을 추출하고자 할 때 @RequestParam를 사용하는 것이다. 

 

즉,  "/schedule/{schId}" 형식의 URL 경로에서 schId 변수를 추출하고, 또한 쿼리 파라미터 중에서 cateNo 변수를 추출하는 방법을 보여준다.