Jiny
Spring MVC에서 요청 데이터를 매핑하는 애너테이션 본문
@RequestBody
json 형식의 HTTP 요청 본문을 객체로 매핑할 때 사용.
* 주로 json 형식을 많이 쓰지만 xml 등 다른 형식의 요청 본문도 객체로 변환 가능.
HTTP 요청의 Content-Type에 따라 HttpMessageConverter를 통해 자동 변환.
@ResponseBody
RESTful API 사용 시에 주로 사용.
Controller에서 반환되는 객체를 json 형식의 HTTP 응답 본문으로 변환할 때 사용.
@RestController를 사용하면 모든 메서드에 자동 적용되어 따로 붙일 필요는 없다.
- 반환되는 객체는 `HttpMessageConverter`를 통해 JSON으로 변환되어 응답 본문에 포함됨.
@RequestParam
URL 쿼리 파라미터 값을 개별 변수로 바인딩할 때 사용.
예를 들어 url이 /search?keyword=memo일 때, @RequestParam String keyword가 매개 변수로 사용된다.
해당하는 값이 없으면 MissingServletRequestParameterException 예외가 발생.
그러나
```java
@RequestParam(required = false, defaultValue = "default") String keyword
```
위 코드처럼 required=false를 쓰면 필수가 아니고, defaultValue를 통해 기본 값을 지정할 수 있다.
@PathVariable
URL 경로 자체에서 값을 추출해서 변수로 바인딩할 때 사용.
/post/{postId} 일 때, @PathVariable Long postId을 매개 변수로 사용하면 url에 있는 값을 가져와 사용할 수 있다.
패턴이 일치하지 않으면 404 오류가 발생한다.
@Vaild
요청한 객체의 유효성을 검사한다.
주로 @RequestBody 앞에 붙여서 사용하는데, DTO에서 선언된 @NotNull, @Size, @Pattern 등과 같은 유효성 검증 어노테이션과 함께 사용한다.
- @Valid: Java Bean Validation 기반의 기본적인 유효성 검증.
- @Validated: 스프링 프레임워크 제공, 그룹(Group) 검증 가능.
'Study > Springboot' 카테고리의 다른 글
| oauth2 구글 로그인 흐름 (0) | 2025.02.08 |
|---|---|
| 간단하게 카카오 로그인 & 로그아웃 구현하기 (0) | 2025.02.06 |
| OAuth 회원가입 시 비밀번호가 없는 문제 해결 방법 (0) | 2025.02.04 |
| 토큰 기반 인증의 특징과 JWT (0) | 2025.02.01 |
| 스프링 시큐리티 (0) | 2025.01.31 |