
@RequestBody는 HTTP 요청 본문(Body)의 JSON 등 데이터를 자바 객체로 변환한 뒤, 해당 객체를 Controller 메서드의 파라미터로 주입하는 어노테이션입니다. 동작 과정은 아래와 같습니다.

@RequestParam은 HTTP 요청의 Query String 또는 폼 데이터 값을 추출해 바인딩한 뒤, 변환된 값을 Controller 메서드의 파라미터로 주입하는 어노테이션입니다. 동작 과정은 아래와 같습니다.

@ModelAttribute는 HTTP 요청의 Query String 또는 폼 데이터 값을 자바 객체의 필드에 바인딩하고, 변환된 객체를 Controller 메서드 파라미터로 주입합니다. 또한, 해당 객체를 Model에 자동 등록하여 뷰 렌더링 시에도 사용할 수 있게 합니다. 동작 과정은 아래와 같습니다.

| 어노테이션 | 데이터 출처 | 바인딩 대상 | 결과 | 주요 사용 사례 |
|---|---|---|---|---|
@RequestBody | HTTP Body (JSON, XML 등) | 요청 본문 전체 | 자바 객체 | REST API JSON 요청 처리 |
@RequestParam | Query String, Form Data | 단일 요청 파라미터 | 단일 값, 배열, 컬렉션 | 검색어, 페이지 번호 |
@ModelAttribute | Query String, Form Data | 객체(POJO) 필드 단위 | 자바 객체 | 폼 제출, 검색 조건 객체 |