Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Jiny

Spring MVC에서 요청 데이터를 매핑하는 애너테이션 본문

Study/Springboot

Spring MVC에서 요청 데이터를 매핑하는 애너테이션

Jieun13 2025. 1. 31. 03:29

@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) 검증 가능.