시뻘건 개발 도전기

#1 : RESTful API 본문

API/RESTful

#1 : RESTful API

시뻘건볼때기 2020. 4. 25. 13:00
반응형

REST API

  개발자라면 RESTful에 대해 한 번이라도 들어 보았을 것이라 생각이 든다. 그러나 정작 "RESTful이 뭐야?"라고 물었을 때 진정으로 정답을 말하기 애매한 것 같다. 실제로 사내 프로젝트로 서버 개발을 했을 때 RESTful을 사용해서 서버를 구축한 경험어 있다. 그러나 코드리뷰로부터 "REST 스럽지 않다."라는 피드백을 받은 적이 있었다. 그럼 REST 스러운게 무엇일까?

  REST의 풀 네임은 [REpresentational State Transfer]라고 한다. 그래도 모르겠다. 그래서 REST가 만들어진 계기를 찾아보았다. 1991년으로 넘어가 보자. 인터넷을 사용하던 시절 www(World Wide Web)이 탄생할 때 어떻게 데이터를 서로 주고받을 것인지에 대해 논의를 하던 도중 다음과 같이 해답이 나왔다.

  • HTML 표현 형식
  • URI 식별자
  • HTTP라는 프로토콜 전송

 

  HTTP라는 프로토콜을 변경을 하게되면 기존 널리 사용중이던 HTTP와의 호환성 등과 같이 고려해야할 부분이 너무 많을 것이다. 그래서 1994년 찾은 해결책이 [HTTP Object Model]이다. 이것이 4년이 지나 1998년이 되어서야 바로 우리가 찾아 해매던 [REST]로 이름이 바뀌게 된다. 이렇게 탄생한 REST는 2000년 박사 논문으로 발표된다. 해당 논문은 [https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm]에서 확인 할 수 있다.

 

 

  1998년에 마이크로소프트에서 [XML-RPC]라고하는 원격으로 다른 시스템의 메소드를 호출할수 있는 프로토콜을 만들게 되는데 이것이 우리가 알고있는 [SOAP]이라는 프로토콜이다. SOAP은 실제로 사용해보진 않았으나 정보처리기사 준비를 하면서 볼 수 있는 녀석이다. SOAP은 굉장히 복잡하고 진입장벽이 높아서 쉽게 공부(?)하기 어려운 것에 반해 REST는 단순하고 규칙이 많지 않아서 진입장벽이 낮다는 것이 특징이다. 이 외의 다른 이유로 인해 AWS(Amazon Web Service)도 REST 빈도를 85%로 늘렸고 SOAP API를 첫 공개했던 Salesforce도 REST API를 사용하기 시작했다.

 

  2008년 [CMIS]라고하는 EMC, IBM, 마이크로소프트 등이 함께한 CMS를 위한 표준이 나오게 되는데 바로 여기서 REST 바인딩을 지원한다. 그러나 정작 REST를 만든 Roy T. Fielding은 CMIS에는 REST가 없다고 이야기 한다. 내가 겪었던 것처럼.. REST스럽지 않다고 한 것. 최근 2016년에는 마이크로소프트에서 REST API 가이드라인을 공개했지만 역시 REST API가 아니라 HTTP API 가이드라인이라고 받아친다. 도대체 그럼 REST API가 뭐냐고요 아저씨....ㅠㅠ

 

  상기 REST 논문을 참고하면 REST는 "분산 하이퍼미디어 시스템을 위한 아키텍쳐 스타일"이라고 정의한다. 아키텍쳐 스타일은 검색해보면 알겠지만 "제약조건의 집합"이다. 즉, 이 제약조건들을 모두 만족시켜야 하는 것. 그것이 바로 RESTful API라고 할 수 있다.

 

반응형

'API > RESTful' 카테고리의 다른 글

#3 : RESTful API 외우지말자  (0) 2020.04.26
#2 : RESTful Architecture Style  (0) 2020.04.25
Comments