처음 프로그래밍 공부를 시작했을 때 '매개변수'가 참 좋았습니다. 어딘가 모르게 멋있어 보였습니다. 책이나 강의에서는 매개변수를 때론 파라미터 때론 입력값으로 불렀습니다. 저도 그렇게 혼용해서 사용했습니다. 표준국어대사전을 찾아보니 매개변수와 파라미터 사이에는 약간의 차이가 있었습니다. 파라미터가 좀 더 정확한 표현인 것 같습니다. 누군가 제 이름을 잘못 부르면 기분이 유쾌하지 않듯이 파라미터도 정확한 이름을 불러주고 싶습니다.(ENFJ의 특징이라고 합니다 ^^;) 이 글에서는 파라미터를 넘겨받는 방법에 대해 알아봅니다.
매개변수
1. 두 개 이상의 변수 사이의 함수 관계를 간접적으로 표시할 때 사용하는 변수.
파라미터
1. 두 개 이상의 변수 사이의 함수 관계를 간접적으로 표시할 때 사용하는 변수.
2. 정보·통신 사용자가 원하는 방식으로 자료가 처리되도록 하기 위하여 명령어를 입력할 때 추가하거나 변경하는 수치 정보.
@PathVariable을 이용하면 /{id}와 같이 URI의 경로로 넘어오는 값을 변수로 받을 수 있습니다.
@RestController
@RequestMapping("test")
public class TestController {
@GetMapping("/{id}")
public String testPathVariables(@PathVariable(required = false) int id) {
return "" + id; //String으로 변환하기 위해 공백을 더했습니다.
}
}
localhost:8080/test/1234567890로 Get 요청을 보내면 아래와 같은 값을 얻을 수 있습니다.
@RequestParam을 이용하면 ?id={id}와 같이 요청 파라미터로 넘어노는 값을 받을 수 있습니다.
@RestController
@RequestMapping("test")
public class TestController {
@GetMapping("/testRequestParam")
public String testPathVariables(@RequestParam(required = false) int id) {
return "" + id; //String으로 변환하기 위해 공백을 더했습니다.
}
}
localhost:8080/test/testRequestParam?id=1234567890로 Get 요청을 보내면 아래와 같은 값을 얻을 수 있습니다.
@RequestBody는 반환하고자 하는 리소스가 복잡할 때 사용합니다. 기본 자료형이 아닌 오브젝트처럼 복잡한 자료형을 요청에 보내고 싶은 경우 사용합니다.
dto를 요청 body로 받아보겠습니다.
@Data
public class TestRequestBodyDYO {
private int id;
private String message;
}
@RestController
@RequestMapping("test")
public class TestController {
@GetMapping("/testRequestBody")
public String testRequestBody(@RequestBody TestRequestBodyDTO testRequestBodyDTO) {
return testRequestBodyDTO.getId() + testRequestBodyDTO.getMessage();
}
}
localhost:8080/test/testRequestBody로 Get 요청을 보내면서 요청 바디에 JSON 형태의 문자열을 넘겨주면 아래와 같은 값을 얻을 수 있습니다.
@ResponseBody는 응답으로 오브젝트를 리턴합니다.
dto에 담아 리턴하겠습니다.
@GetMapping("/testResponseBody")
public ResponseDTO<String> testResponseBody() {
List<String> list = new ArrayList<>();
list.add("Hello World!");
ResponseDTO<String> response = ResponseDTO.<String>builder
.date(list)
.build();
return response;
-작성중
React.js, 스프링 부트, AWS로 배우는 웹 개발 101
김다정 지음ㅣ에이콘ㅣ2022ㅣ도서 정보