해결된 질문
작성
·
259
2
강의 초반에 쿼리는 URL 주소에서 뒤에 붙여져서 보내진다고 알고 있습니다.
근데 @GetMapping("/user") 이런 식으로 URL을 받거나 할 때는 뒤에 작성하는 쿼리 부분이 없는데
어떻게 @RequestParam을 통해 쿼리 데이터를 받아오는지 궁금합니다.
이름과 나이를 작성할 때 그 데이터가 쿼리로 가는 거 같은데
도서 웹 페이지에서 해당 데이터가 어떻게 쿼리로 데이터를 받아오는지 궁금합니다.
아직 강의 초반이고 잘 모르다 보니 바보 같은 질문일 수도 있지만
알려주세요!!! 선생님!!
답변 1
2
안녕하세요~ 하고싶은거하자님!! 😊
아이고~ 바보 같은 질문은 없습니다 ㅎㅎㅎ 질문은 무엇이든~ 언제든지~ 환영이에요!
하나씩 답변 드려보겠습니다~~
근데 @GetMapping("/user") 이런 식으로 URL을 받거나 할 때는 뒤에 작성하는 쿼리 부분이 없는데
어떻게 @RequestParam을 통해 쿼리 데이터를 받아오는지 궁금합니다.
와우~ 맞습니다! 사실 저희가 작성한 /user
부분이 전부이죠!
그런데 @RequestParam String name
이라고 작성하면 name이라는 쿼리 데이터가 알아서 들어가는데요! 이 비밀은 사실 스프링에 있습니다.
스프링이 URL을 받으면, 예를 들어 /user?name=ABC
를 받았다고 해볼게요,
그러면, 스프링은 ?
를 기준으로 문자열을 나눠서 /user
를 확인한 다음, HTTP method와 해당 path에 맞는 Controller를 찾게 됩니다. 이때 @GetMapping("/user")
가 찾아지겠죠!
그런 다음 해당 Controller를 호출할 때 @RequestParam
어노테이션이 붙은 파라미터가 있고 해당 파라미터의 이름이 URL에 있는 쿼리의 key와 같으면, (즉 여기서는 name
으로 같죠!) 해당 데이터를 추출해서 함수에 넣어주게 됩니다.
쉽게 말씀드리면, Controller 호출 전에 스프링이 알아서 해줍니다. ㅎㅎㅎ
이름과 나이를 작성할 때 그 데이터가 쿼리로 가는 거 같은데
도서 웹 페이지에서 해당 데이터가 어떻게 쿼리로 데이터를 받아오는지 궁금합니다.
그 다음 이 부분은 바로 "프론트엔드" 혹은 "클라이언트" 영역에서 처리되는데요!
HTML / CSS / JS 로 이루어진 클라이언트는 사용자가 HTML로 이루어진 <input />
태그에 값을 입력하고 버튼을 누르면, JavaScript
라는 언어를 이용해 해당 입력을 받아 정해진 API로 요청을 보내주게 됩니다.
강의 압축 파일 내부에 들어 있는 프론트 파일이 그 역할을 해주고 있는거에요!
답변이 도움이 되었다면 좋겠습니다.
감사합니다!! 🙏 🙇
감사합니다. 선생님!!