@ResponseBody
- 메서드가 반환하는 값을 HTTP 응답의 본문(body)으로 직접 전송을한다.
반환된 데이터는 HTTP 응답의 본문에 직렬화 되어 클라이언트로 전송이 된다.
상태 코드나 HTTP 헤더를 따로 설정할 수 없다. Spring이 자동으로 기본 상태 코드
(200 OK)를 설정해준다.
주로 JSON,XML 같은 데이터를 반환하는 REST API응답에서 사용이된다.
비유 - 전달하고 싶은 종이에 바로 적어 편지 봉투 없이 우체통에 넣는 법을 비유한다.
@ResponseBody는 결국 편지 안 내용만을 전달하게 된다.
ResponseEntity :
HTTP 응답의 본문(body), 상태 코드(status), 그리고 헤더(headers)를 모두 설정하여 반환할 수 있다
메서드에서 ResponseEntity<T> 객체를 반환한다.
특징으로는 상태 코드와 헤더 정보를 세밀하게 조정할 수 있다.
ResponseEntity.ok(), ResponseEntity.status(), ResponseEntity.notFound() 등의 메서드를 사용하여 상태 코드를 설정할 수 있다.
주로 데이터뿐만이 아니라 HTTP 상태코드, 응답 헤더 등도 세밀하게 제어해야 하는 경우에 사용이된다
ResponseEntity : 내용뿐만이 아니라 봉투의 외부 정보까지 세밀하게 조정하여 보낼 수 있다.
예를 들어 성공 시 200 OK, 실패 시 404 Not Found 등의 상태 코드와 함께, 추가 헤더 정보를 포함할 수 있다.