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란 무엇인가 (0) | 2024.10.23 |