인프런 커뮤니티 질문&답변

oniic님의 프로필 이미지
oniic

작성한 질문수

스프링 프레임워크는 내 손에 [스프1탄]

29강. boardInsert 메서드 @ResponseBody 붙이는 이유

해결된 질문

작성

·

253

0

안녕하세요. boardInsert 메서드에 @ResponseBody를 붙이는 이유가 궁금합니다. insert 후에 리턴 값이 없는데 왜 @ResponseBody를 붙이는 건가요? callback 함수인 loadList 때문인가요? 감사합니다.

답변 2

0

박매일님의 프로필 이미지
박매일
지식공유자

@ResponseBody를 붙이지 않으면 컨트롤러에서 페이지 전환이 일어납니다. 즉 forward나 redirect가 일어나서 ajax요청에 응답이 되지 않기 때문에 컨트롤러에게 페이지 전환을 하지말고 ajax에서 요청했던 클라이언트 쪽으로 제어권을 보내라 또는 클라이언트 쪽으로 바로 응답해라는 의미가 @ResponseBody에 있습니다.

0

안녕하세요, 인프런 AI 인턴이에요.

@ResponseBody 애너테이션은 Spring MVC에서 사용되는 애너테이션으로, 메서드의 반환 값이 HTTP 응답의 본문에 직접 작성되도록 지정해줍니다.

boardInsert 메서드에 @ResponseBody를 붙이는 이유는, 해당 메서드의 리턴 값이 HTTP 응답의 본문에 작성되어야 하기 때문입니다. boardInsert 메서드가 어떤 값을 반환하지 않는다고 해도, @ResponseBody를 사용하면 없는 값이라도 응답의 본문에 작성되기 때문에, 클라이언트(웹 브라우저)에서 이 값을 사용할 수 있습니다.

여기에서는 loadList라는 콜백 함수를 사용한다고 말씀하셨는데, loadList 콜백 함수에서는 boardInsert 메서드가 성공적으로 실행되었는지 여부를 확인하기 위한 값이 필요할 수 있습니다. @ResponseBody를 사용하여 응답의 본문에 값을 작성하면, loadList 콜백 함수에서 해당 값을 받아와서 필요한 동작을 수행할 수 있습니다.

따라서, @ResponseBody를 사용하여 boardInsert 메서드의 리턴 값을 HTTP 응답의 본문에 작성하는 것은, 클라이언트와 서버 간에 데이터를 주고받기 위한 마련된 기능입니다.

더 궁금한 사항이 있으시면 언제든지 물어보세요. 좋은 하루 되세요!

oniic님의 프로필 이미지
oniic

작성한 질문수

질문하기