본문 바로가기
코드프레소 체험단/Spring Boot를 활용합 웹 개발

[Spring Boot 웹 개발 입문] Request 파라미터의 이해

by 의정부핵꿀밤 2022. 2. 3.
728x90

Server에 요청 시에도 추가적인 Data가 필요하다!

  • Facebook의 Feed를 조회하려면?
    • 로그인 되어 있는 사용자의 정보 및 페이지 데이터를 요청과 함께 전송해야 한다
  • 블로그의 글을 작성하려면?
    • 사용자의 정보, 작성된 제목 및 글 데이터를 요청과 함께 전송해야 한다
  • Instagram의 특정 게시물을 삭제하려면?
    • 사용자의 정보와 삭제하려는 게시물의 정보를 함께 전송해야 한다

 

 

Request 파라미터

  • Client가 Server에 요청(Request)를 할 때 추가적으로 전송하는 데이터이다
  • 보통 2가지 유형의 Request 파라미터를 주로 사용한다
    1. Query String
    2. Path Parameter(Variable)
  • Spring Framework는 Request 파라미터를 메소드의 파라미터에 저장한다

 

 

 

1. Request 파라미터 - Query String

  • key-value 쌍으로 만든다
  • URI와 파라미터의 영역을 구분하여 사용한다
  • URI에 이어지는 '?' 뒤에 key1=value&key2=value2&... 형태로 작성한다
  • key가 파라미터의 이름, value가 파라미터의 값

 

 

 

Request 파라미터 - Query String의 할용

query string 및 메소드 구조
결과값

  • 메소드 파라미터에 @RequestParam Annotation 을 사용한다
  • name 요소는 Query String의 key에 매핑된다

 

 

 

 

@RequestParam 의 요소들

  • name
    • query string의 key
    • key와 변수명이 같은 경우에는 생략이 가능하다 (위의 예시의 경우에는 생략이 가능하다)
  • required : 필수 여부
    • false는 선택
    • true는 필수 (true의 경우 파라미터가 없으면 에러 발생)
  • defaultValue
    • 데이터가 없을 경우의 기본 값을 의미한다

 

 

 

 

2. Request 파라미터 - Path Parameter

  • URI의 일부로 파라미터 값을 사용한다
    • domain/user/1
    • domain/user/3/post/27
    • https://brunch.co.kr/@thinkaboutbh/506
    • https://www.codepresso.kr/course/9
  • @RequestMapping value URI에 { } Path Param임을 표시한다
  • 메소드 파라미터에 @PathVariable Annotation을 사용한다
  • 선택적 데이터의 경우에는 Path Param을 잘 사용하지 않는다
  • Path Param을 지정했는데 값이 전달되지 않으면 에러가 발생한다!

 

 

 

Query String vs Path Parameter

  • 특정 자원을 요청하는 경우에는 Path Param을, 정렬이나 추가 필터링을 위한 데이터는 Query String을 사용한다
    • 명사로 요청되는 자원의 경우 Path Param 사용 : localhost:8080/courses/spring (스프링 강의 요청)
    • 추가적인 옵션의 경우 Query String 사용 : localhost:8080/courses?order=latest (강의 최신순 정렬)
  • 필수 데이터는 Path Param으로, 선택적 데이터는 Query String을 사용한다
    • Path Param이 포함된 URI는 Client가 영향을 받기 떄문에 변경 비용이 높다
    • Query String은 상대적으로 편하게 확장이 가능하다 (필수 파라미터 X)
  • 조직(회사/팀)마다 표준이 존재하고, 표준에 따라 개발한다

 

 

 

정리!

  • Server에 데이터를 요청할 때 추가적인 정보가 필요한 경우가 있다
  • 이 때 요청 시 추가적으로 전송하는 데이터가 Request 파라미터이다
  • Query String과 Path Parameter가 사용된다
  • Spring Framework는 2가지 유형을 모두 지원한다
    • @RequestParam
    • @PathVariable
  • 조직의 표준에 따라 적절히 활용해야 한다

 

728x90

댓글