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

고도윤님의 프로필 이미지

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

API

어노테이션 질문이있습니다.

작성

·

150

0

안녕하세요 질문이 있습니다 API 강의 듣다가 궁금증이 생겨서 질문을 남기게 되었습니다.

 

  1. @RequestParam 은 매개변수의 값을 반환하는건가요?

@RequestMapping("/save")
public ModelAndView save(HttpServletRequest request, HttpServletResponse response) {
    String username = request.getParameter("username");
    int age = Integer.parseInt(request.getParameter("age"));
    ...
}

이 코드를

@PostMapping("/save") public String save(@RequestParam("username") String username, @RequestParam("age") int age, Model model) { ... }

요렇게 바꿔줄 수 있는 역할이 @RequestParam 인 건가요?

 

 

그리고 RequestParam 을 쓸때 달아주는 어노테이션이 @ResponseBody 인건가요??

 

 

답변 2

0

안녕하세요. 고도윤님, 공식 서포터즈 OMG입니다. 

AI 답변을 참고해주세요 🙂

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

질문 주신 내용에 대해 정리해 보겠습니다.

  1. @RequestParam의 역할: @RequestParam 어노테이션은 Spring MVC에서 클라이언트가 전송한 요청 파라메터를 컨트롤러 메서드의 파라미터로 받기 위해 사용됩니다. 즉, URL에서 특정 키에 해당하는 값을 메서드의 파라미터로 직접 매핑할 때 사용하며, 주로 GET 방식의 요청 파라미터를 처리할 때 활용됩니다. 고도윤님께서 예시로 보여주신 방식처럼 HttpServletRequest를 사용하지 않고 직접 값을 매핑하는 경우에 @RequestParam을 사용할 수 있습니다.

  2. @RequestParam@ResponseBody의 관계: @RequestParam은 요청 파라미터를 메서드의 파라미터로 바인딩하는데 사용되며, @ResponseBody는 메서드가 반환하는 값(객체, 데이터 등)을 HTTP 응답 본문(Body)에 직접 작성하도록 지시하는 어노테이션입니다. 이 둘은 서로 다른 역할을 수행하며, @RequestParam과 함께 일반적으로 @ResponseBody를 달아주는 것은 아닙니다. @ResponseBody는 클라이언트에게 JSON 혹은 XML 등의 포맷으로 데이터를 직접 반환할 때 주로 사용됩니다. 따라서, @RequestParam을 사용할 때 @ResponseBody를 함께 사용하는 것은 상황에 따라 다를 수 있으며, 양쪽 모두 필요한 경우에만 함께 사용됩니다.

이에 대한 유사한 질문을 처리한 예시가 있어서 링크를 첨부해 드립니다.

  • ”@RequestParam & ModelAttribute”에서는 @RequestParam@ModelAttribute의 차이점과 함께 @RequestParam에 대한 설명이 있습니다. 이 답변은 @RequestParam이 요청 파라미터를 받아주는 어노테이션이라고 설명하고 있으며, 질문하신 사항에 관련된 정보를 제공합니다.

  • ”@RequestParam 질문”에서는 @RequestParam 어노테이션에 대한 질문과 @RequestParam이 GET/POST 모두에서 사용될 수 있음을 설명하는 답변이 포함되어 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.