RESTful API는 뭘까?
"용어만 알아도 반은 안다!" 라는 말이 있다
물론 내가 만든 말이지만.. 아직까지는 반례는 못찾았다.
오늘도 한번 용어정리를 해보자.
현재 우리 삶 속에 유용한 서비스들이 많이 생겨난다. 많은 웹 서비스들은 Restful API 를 사용하여
서버와 클라이언트 혹은 컴퓨터와 다른 컴퓨터끼리 정보를 교환하고 통신하고 있다.
실무에서도 이 Restful API는 많이 사용되는 용어이다.
얼추 몸과 느낌적으로는 알고는 있지만,
좀 더 자세히 정리를 해보자
먼저 접미사 -ful 을 사전 검색을 해보면 아래와 같이 나온다.
명사의 뒤에 붙어서 그것이 가진 성질, 특성 따위의 뜻을 가진 형용사를 만드는 접미사
뭔가..
REST의 성질을 가지고 있는 API를 칭하는 말 같아보인다.
그럼 REST는 무엇이고? API는 무엇인지 알아보자.
1. REST
REST는 Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처라고 하는데
뭔가 설계구조를 칭하는 말 같다.
좀 더 알아듣기 쉽게 표현하자면,
자원을 자원(resource)의 표현(representation) 으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미.
한다고 한다.
더 쉽게 풀자면, 서버는 자원을 가지고 있다.
여기서 자원이란 문서, 이미지, 파일, 데이터와 같은 정보들을 말한다.
이런 자원을 정보를 HTTP 프로토콜의 Method GET, POST, PUT, DELETE 를 통해서 자원을 조회, 생성, 삭제가 가능하다.
따라서, 서버로부터 우리는 특정 자원의 위치(URL) 를 HTTP Method을 통해서 자원(정보)를 주고 받을 수 있는 것이다.
(URL용어는 아래 글을 참고..)
URL 용어정리해보자.
컴퓨터나 휴대폰을 많이 사용하는 세대라면 URL이라는 단어는 많이들 들어봤을겁니다. URL좀 보내줘~, URL이 뭐야? 그 사이트 링크가 뭐야? 등등 개발자가 아닌 일반사람들도 URL이란 단어를 사용합
eeasyy.tistory.com
그럼 얼추 REST가 어떤 설계 패턴인지? 아키텍쳐인지? 는 정리가 되었다. 다음으로 API
2. API
API는 워낙 많이 쓰이는 용어이다.
Application Programming Interface 의 준말로 어플(앱)단에서 호출이 가능한 인터페이스라고 보면 된다.
그럼 위에 내용을 종합해보면
개발자가 서버의 자원(정보)를 HTTP Method를 사용하여 주고 받을 수 있게 구현된 웹 어플리케이션단의 인터페이스를
RESTful API 라고 정리하고싶다.
3. RESTful API의 특징
간략하게 RESTful API 를 특징만 정리하고 이러한 특징때문에 쓰는구나 정도로 알고 포스팅을 마치려 한다.
3-1. 무상태
HTTP 프로토콜 특성상 서버는 클라이언트의 상태를 기억하지 않는다. 따라서 무상태의 특징을 보인다.
HTTP 에 대한 자세한 설명은 아래 포스팅 참고
HTTP에 대하여(1) - HTTP의 정의
컴퓨터를 사용하는 사람이라면..(요즘은 컴퓨터를 대부분 사용하겠지만) http 에 대해서는 들어보거나 봤을것이다. 물론 일반인들은 http가 정확히 뭔지는 모를것이다.(개발자들도 제대로 알까..)
eeasyy.tistory.com
3-2. 캐싱 처리 가능
HTTP 프로토콜의 또 다른 특징으로 캐싱이 가능하다.
3-3. 일관된 인터페이스
HTTP 표준만 따른다면 언어, 플랫폼에 상관없이 인터페이스는 유효하다.
이렇게 오늘은 RESTful API에 대해 정리해보았다.
최근 개발되는 서비스들은 사용자의 니즈에 맞게 빠르고 유연하게 대응해야한다.
이런 점에서 RESTful API가 가진 장점은 파워풀하다고 생각이 든다.
플랫폼에 구애받지않고 확장성도 좋으며 범용적이다.
오늘은 여기까지 그럼 이만!