카테고리 없음

URL(Uniform Resource Locator) URI(Uniform Resource Identifier)

라임오렌지원 2022. 9. 10. 22:27

평소 REST 방식을 이용하는데 왜 REST 방식을 사용하게 되었는지 알고 싶어서 책을 읽다가 URL과 URI가 정리되어있어 글로 남긴다.

 

 

지난 10년간 일어난 IT 분야의 가장 큰 변화를 생각해 보면 '모바일'

 

모바일 시대가 되면서 WEB 분야의 가장 큰 변화는 서버 역할의 변화라고 할 수 있다.

과거에는 서버의 데이터를 소비하는 주체가 '브라우저' 라는 특정한 애플리케이션으로 제한적이었다면,

모바일의 시대가 되면서 앱이나 웹은 서버에서 제공하는 데이터를 소비하게 된다.

 

과거의 서버는 브라우저라는 하나의 대상만을 상대로 데이터를 제공했기 때문에 아예 브라우저가 소화 가능한 모든 데이터를 HTML 이라는 형태로 전달하고, 브라우저는 이를 화면에 보여주는 역할을 해 왔다.

 

스마트폰에서는 앱(App) 이라 불리는 고유한 애플리케이션을 이용해서 데이터를 소비하게 되고, 보이는 화면 역시 자신만의 방식으로 서비스하게 된다. 앱에서 서버에 기대하는 것은 완성된 HTML이 아니라 그저 자신에게 필요한 순수한 데이터만을 요구하게 되었다. 이처럼 서버의 역할은 점점 더 순수하게 데이터에 대한 처리를 목적으로 하는 형태로 진화하고 있다.

 

---

과거 서버 : 브라우저에 모든 데이터를 HTML 형태로 전달 -> 브라우저는 화면에 띄워주는 역할

현재 : 애플리케이션을 이용해서 데이터 소비 HTML 형태가 아닌 자신에게 필요한 순수 데이터만 요구

 

이러한 변화 속에서 URI(Uniform Resource Identifier) 의미도 조금 다르게 변화하기 시작.

예를 들어 과거에 제작된 웹페이지들의 경우 페이지를 이동하더라도 브라우저의 주소는 변화하지 않는 방식을 선호,

반면 최근의 웹페이지들은 대부분 페이지를 이동하면 브라우저 내의 주소 역시 같이 이동하는 방식 사용.

 

흔히 URL(Uniform Resource Locator)과 URI(Uniform Resource Identifier)를 같은 의미로 사용하는 경우가 많다.

엄밀하게는 URL은 URI의 하위 개념이기 때문에 혼용해도 무방. URI는 '자원의 식별자'라는 의미로 사용된다.

 

URL은 '이 곳에 가면 당신이 원하는 것을 찾을 수 있습니다.' 와 같은 상징적인 의미가 좀 더 강하다면, 

URI는 '당신이 원하는 곳의 주소는 여기입니다.' 와 같이 좀 더 현실적이고 구체적인 의미가 있다.

URI의 'I'는 마치 데이터베이스의 PK와 같은 의미로 사용된다고 생각할 수 있다.

 

REST는 'Representational State Transfer'의 약어로 하나의 URI는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념에 전송방식을 결합해서 원하는 작업을 지정한다.  예를 들어 '/board/123'은 게시물 중에서 123번이라는 고유한 의미를 가지도록 설계하고, 이에 대한 처리는 get, post 방식과 추가적인 정보를 통해서 결정한다.

 

따라서 REST 방식은

URI + GET/POST/PUT/DELETE/...

와 같이 구성된다고 생각할 수 있다.

 

 


참고

책 : 코드로 배우는 스프링 웹 프로젝트 개정판  (구멍가게 코딩단 지음)

728x90