웹에서 데이터를 보내고 받기 위해서는 어떤 식으로 전송하고 어떤 경로(End-point)에 전달할지를 중요하게 본다.

데이터를 전송하고 받는 방식으로는 GET, POST 등의 HTTP 메서드가 있고, 관련해서 REST API라는 개념이 있다.

그보다 이번 글에서는 경로에 대해서, 그 중에서도 Query Parameter와 Path Variable에 대해서 정리해보려 한다.

 


Query Parameter (Query String)

위 이미지는 우리가 흔하게 보는 URL의 구조이다.

여기서 ? 이후부터 시작되는 Parameters라는 부분이 바로 Query Parameter이다.

흔히 Query String, 쿼리 스트링이라고 부르기도 한다. 쿼리 파라미터와 쿼리 스트링은 같은 표현이다.

 

Query String은 key와 value로 쌍을 이룬 문자 형태이며 & 로 연결한다.

위 구조로 따지면 2개의 key, value 쌍이 parameter에 들어가 있는 것이다.

이렇게 담겨진 Query String은 웹서버로 전달된다.

 

아래와 같은 경우는 q라는 key에 abc를 담아 전달한다고 보면 되겠다.

/search?q=abc

 

 


Path Variable

Path Variable은 경로를 변수로 사용한다.

게시글을 조회한다고 가정하면, 해당 게시글의 id를 서버로 넘겨주어야만 조회할 수 있을 것이다.

/boards/100

위와 같은 형태로, id 같은 특정 인덱스에 대한 조회를 하는 경우 Path Variable을 사용한다.

 

 


각각 언제 쓰는 것이 좋을까?

그럼 Query Parameter와 Path Variable을 사용하기 적절한 때는 언제일까?
아래와 같이 정리해볼 수 있겠다.

 

  • Query Paramater : id를 어떤 리소스를 식별하고 싶을 때 더 적절!
/users  // 모든 사용자 목록 가져오기
/users/123  // 회원 번호 혹은 id가 123인 사용자 정보 가져오기

 

  • Path Variable : 필터링을 하거나 정렬을 하는 경우 사용하는 것이 이상적!
/posts  // 모든 게시글 목록 가져오기
/posts?user=abc  // 작성자가 abc인 게시글만 가져오기

 

 

항상 모든 경로에 Query String이나 Path Variable이 필요한 것은 아니다.
필요에 따라, 경우에 맞게 사용하면 된다.

 

출처 : 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

+ Recent posts