[Spring] URI Template

geesuee·2021년 10월 6일
0

Spring & Spring Boot

목록 보기
5/7
post-thumbnail

오늘은 URI에서 고정적인 값과 가변적인 값을 구분하여 템플릿으로 지정, 사용하는 URI Template에 대해 알아보겠습니다.



1. URI Template이란?

⭐ URI 템플릿은 URI를 확인하기 전에 대체해야하는 매개 변수를 포함하는 URI를 지정하는 방법입니다.

웹 서핑을 하다보면,
가끔 url에 내 id처럼 남들과 중복되지 않는, 나만의 값이 포함되어 있는 경우를 만날 수 있습니다.
대충 이런 식으로 말이죠!

이런 값은 상황에 따라 다른 값을 가질 수 있는 가변적 요소입니다.
그렇다면 어떻게 가변적 요소가 url 안에 포함될 수 있는 것일까요?

웹 개발 실습을 진행하면서 페이지 간 이동을 개발했던 경험을 떠올려보면,
특정 페이지에서 다른 페이지로 이동할 때 개발자가 이동 url을 지정해주었던 것 같습니다.
<a href="main/login">LOG IN</a>, <a href="main/logout">LOG OUT</a> 이런 식으로 말이죠.


그렇다면,

개발자가 개별 회원의 id 값을 담은 url을 일일히 다 연결해둔 것일까요?


당연히 그럴 수는 없습니다!
이것은 URI(URL)의 고정된 부분과 가변적인 부분을 분리하여 만들어놓은 URI Template이 있기 때문에 가능한 일 입니다.



2. URI Template의 사용

먼저, uri는 웹페이지의 고유한 구분자입니다.
이러한 고유한 자원을 client만을 위해 더 정교한 uri로 구성하기 위해 가변적인 요소를 추가하는 것입니다.

예시로 아래 3가지 url이 있다고 가정해봅시다.
https://geesueshop.com/main/geesuee
https://geesueshop.com/main/jisubae
https://geesueshop.com/main/geesueebae

3가지 url은 마지막 사용자 id 부분을 제외하고는 고정된 값(https://geesueshop.com/main/)을 가지고 있습니다.
그리고 마지막 사용자 id 부분은 접속 계정에 따라 다 다르고,
새로운 계정이 추가되면 새로운 id 값을 포함한 url이 필요하게 될 것입니다.


이럴 때 URI Template을 사용합니다.


📍 URI Template 형식
http://ip:port/project/고정표현법/{가변표현법}
http://ip:port/project/고정표현법/{가변표현법}/고정표현법/{가변표현법}/....

URI Template은 URI의 길이, 고정표현법과 가변표현법의 순서와 상관없이 사용 가능합니다.


  • 위와 같은 형식으로 URI Template을 만들고,
    해당 Template을 Controller 내부 메소드 상단 @RequestMapping()의 parameter로 주면,
    가변표현법 위치에 오는 값이 무엇이든 간에 URI Template를 확인하여 매핑된 controller 로직을 수행할 수 있습니다.

  • 또한 @PathVariable 애노테이션을 사용하면,
    가변표현법 자리에 들어가는 값을 변수로 받아와 메소드 내에서 사용할 수도 있습니다.
    = 주소값의 일부를 데이터화

@RequestMapping("main/{userId}")
public String exampleMethod(@PathVariable String userId) {
	System.out.println("exampleMethod() 실행 " + userId); //console에 가변적인 userId를 찍어 확인할 수 있음
	
 	return "nextPage.jsp";
}
profile
기록하는 오늘의 노력🌻

0개의 댓글