Spring Famework 4 버전부터 사용가능한 어노테이션
@Controller에 @ResponseBody가 결합된 어노테이션
컨트롤러 클래스 하위 메소드에 @ResponseBody 어노테이션을 붙이지 않아도 문자열과 JSON 등을 전송할 수 있음
View를 거치지 않고 HTTP ResponseBody에 직접 Return 값을 담아 보내게됨

MVC의 핸들러 매핑(Handler Mapping)을 위해서 DefaultAnnotationHandlerMapping을 사용
DefaultAnnotationHandlerMapping 매핑정보로 @RequestMapping 어노테이션을 활용
클래스와 메소드의 RequestMapping을 통해 URL을 매칭하여 경로를 설정하여 해당 메소드 처리
value : url 설정
method : GET, POST, DELETE, PUT, PATCH 등
스프링 4.3버전 부터 메소드를 지정하는 방식보다 간단하게 사용할 수 있는 어노테이션을 사용할 수 있음
@GetMapping, @PostMapping, @DeleteMapping, @PutMapping, @PatchMapping
GET 형식의 요청에서 파라미터를 전달하기 위해 URL에 값을 담아 요청하는 방법
아래 방식은 @GetMapping에서 사용된 {변수}의 이름과 메소드의 매개변수와 일치시켜야함

사용된 {변수}의 이름과 메소드의 매개변수가 다를 경우, 변수관리의 용이를 위해 괄호안에 이름을 일치 시킨다

GET형식의 요청에서 쿼리 문자열을 전달하기 위해 사용되는 방법
'?'를 기준으로 우측에 {키} = {값} 형태로 전달되며, 복수 형태로 전달할 경우 &를 사용함.

어떤요청 값이 들어올지 모를경우

GET 형식의 요청에서 쿼리 문자열을 전달하기 위해 사용되는 방법
key와 value가 정해져있지만, 받아야할 파라미터가 많을 경우 DTO 객체를 사용한 방식

리소스를 추가하기 위해 사용되는 API
@PostMapping : POST API를 제작하기 위해 사용되는 어노테이션
@RequestMapping + POST method의 조합
일반적으로 추가하고자 하는 Resource를 http body에 추가하여 서버에 요청
그렇기 때문에 @ReqeustBody를 이용하여 body에 담겨있는 값을 받아야함

key와 value가 정해져있지만, 받아야할 파라미터가 많을 경우 DTO 객체를 사용한 방식
