REST 또는 RESTful을 들어본 적이 있을 것이다. 이 것은 무엇을 의미하고 왜 많은 웹사이트들이 REST를 사용하여 웹페이지를 구축하려 하는지 알아보고자 한다. 먼저 이 둘은 같은 것인가? 아니면 무엇이 다른 것인가? 먼저 REST 또는 RESTful의 용어에 대하여 알아보자.


# REST와 RESTful 용어알기

RESTRESTful은 서로 혼용되어 사옹되고 있지만 이 둘을 좀 더 자세히 구분하자면 ... REST(Representational State Transfer)는 웹서버에서 동작되는 구축형태의 아키텍쳐를 의미하는 것이며 RESTful은 REST가 구현되어 실행 되어지는 형태를 의미한다. 다시말해 RESTful 되고있다라고 말한다면 REST 아키텍쳐 구현되어 있음을 의미한다. REST는 아키텍쳐로 ROA(Resource Oriented Architecture)를 따른다. 이는 웹에 관련된 리소스들을 잘 정리된 URI로 표현하는데 이전의 세션을 사용하는 웹 리소스들과 차이점을 가지며 기존의 SOAPWSDL 방식을 대체할 수 기술로 사용되어왔다. REST는 기본적인 아래와 같은 4가지 디자인 지침을 따른다.

  • 1. 명확한 HTTP 방식을 따름
  • 2. 구조화된 URI로 표현됨
  • 3. Stateless(상태가 없는) 디자인
  • 4. XML 또는 JSON 형태로 전송됨

REST는 모든 디자인을 대체해야하는 완벽한 무엇은 아니다. 실제로 기존 또는 다른 방식이 더 효과적일 수 있으며 다만 현재와 같이 대량의 데이터 및 데이터 처리와 다수의 서버를 운영하면서 나타난 유용한 디자인 아키텍쳐이다. (현재는 REST 방식의 단점과 개선한 방식들도 등장한다. 대표적으로 GraphQL이 있다)
 

# Why REST API?

REST API처럼 잘 정의된 아키텍처가 없는 경우를 생각해 볼 수 있다. 이 경우 다양한 웹서비스 마다 각기 다른 방식의 서비스가 사용될 것이며 이는 표준화되지 못한 서비스의 부재로 개발자와 서비스 운영에 많은 애로사항이 생길 수 있을 것이다. 게다가 REST API는 간단하고 이해하기 쉽게 만들어져 있어 누구라도 빠르게 배우고 적용할 수 있다.


# Request 알아보기

REST는 다음의 메소드들을 사용하여 통신한다. 가장 많이 사용되는
GET, PUT, POST, DELETE가 있으며 이들 외에도 HEAD, OPTIONS 등이 있다. 이들의 내용은 HTTP 1.1에 잘 명시되어 있다.

각각의 메소드는 다른 기능을 수행하는데 대부분 아래와 같이 동작하게 된다.

GET - 데이터의 조회, 가져오기
POST - 새로운 값의 생성, 추가
PUT - 기존 값의 업데이트, 변경
DELETE - 삭제 제거하기