개발 취준 톡방에서 ajax api가 REST API인지? 에 관한 질문에 어떤 분이 REST API의 정의를 다시 한 번 생각해보라면서, 아래의 동영상을 남겨주셨다.

https://www.youtube.com/watch?v=RP_f5dMoHFc

이에, 위 동영상 내용을 정리하면서 REST API란 무엇이고, RESTful하다고 불리기 위해서는 어떻게 설계를 해야하는지 알아보자.

1. 서두

개발자라면 REST라는 이름은 한번쯤은 들어보았을 것이다. 특히 웹 개발라면 100프로다. 한번쯤은 과연 우리들이 작성한 api는 RESTful한 api인가?라는 이야기를 한다. 문제는 정확하게 REST가 뭔지 딱 확실히 말할 수 있지 못한다는 것이다. 머리로는 이해를 하고 있지만, 뭔가 잘 설명이 되지 않아 RESTful하지 않다는 것에 반박을 하지 못한 채로 남은 경우가 많다. 그렇다면 REST의 정의는 무엇인가?


1) REST란?

REST는 REpresentational State Transfer의 약자이다. 이것을 보고 어떤 것인지 알 수 있겠는가? 잘 모르겠다. 좀 더 자세한 정의를 가져와 보자.

a way of providing interoperability between computer systems on the Internet.

interoperablility는 상호 운용성이라는 뜻으로, 컴퓨터 시스템와 인터넷 사이에 상호 운용성을 제공하는 방법이라고 한다. 아직도 잘 모르겠다.

그렇다면 REST가 어떠한 배경에서 나오게 되었는지 그 계기를 봐보면 좀 더 이해가 될 수 있을 것이다.


2) REST의 출현 계기

시작은 웹이다. 1991년에 www가 팀 버너스 리에 의해 탄생했다. 그런데 하나의 고민이 있었다.

어떻게 인터넷에서 정보를 공유할 것인가?

이에 대한 해답으로 "웹"이 출범하게 된다. 이에 팀 버너스 리의 답은 아래와 같다

정보들을 하이퍼 텍스트로 연결한다.