클라이언트에서 서버로 요청데이터를 전달할때는 주로 3가지 방법을 사용.
1. GET - 쿼리 파라미터
- 메시지 바디 없이 URL의 쿼리 파라미터에 데이터를 포함해서 전달
- 예 ) 검색, 필터, 페이징에서 많이 사용하는 방식
- /url "?username=hello&age=20"
2. POST - HTML Form
- content - type : application/x-www.form-urlencoded
- 메시지 바디에 쿼리 파라미터 형식으로 전달, usename=hello&age=20
- 예 ) 회원 가입, 상품 주문, HTML Form 사용
3. HTTP message body
- HTTP API에서 주로 사용, JSON, XML, TEXT
- 데이터 형식은 주로 JSON 사용
- POST, PUT, PATCH
HTTP 요청 파라미터 - @RequestParam

- @RequestParam은 HttpServletRequest 객체와 같은 역할을 한다.
- @ResponseBody는 @RestController와 같은 역할을한다, view를 렌더링하여 반환하지않고, 문자 그대로 반환한다.
required =
// 인자값이 있어도 되고, 없어도됨
@RequestParam(required = false)
// default값이true
인자값이 무조건 있어야됨, 아니면 400 오류
@RequestParam(required = true)
- !! 주의할 점 " " 빈 문자랑, null이랑은 다르다.
- 예시 ) @RequestParam(required = true)인 상태에서 username= 은 400 오류를 반환하지 않고 정상적이게 반환한다.
defaultValue =
// defaultValue = 인자값이 입력되지 않았을경우 "안에있는값"이 인자값으로 넘어옴
// required = true 여도 정상적이게 반환된다.
@RequestParam(required = true, defaultValue = "guest")