안녕하세요 2년차 개발자입니다.
카페에서 커피마시면서
코딩하기를 좋아해요.

Software Engineer

REST API

Rest API 가 무엇인지 알아본다.

REST API (REpresentational State Transfer)

정말 간단히 말해서 웹 브라우저와 웹 서버간에 정보를 주고 받을 때 사용되는 아키텍쳐 Style 이다.

따라서 웹브라우저에서 http 혹은 브라우저 버전업이 있더라도 REST API 형식이 독립적이기 때문에 하위 버전에서도 정상적으로 작동가능하다.

REST의 특징

  • Uniform Interface(유니폼 인터페이스)

    • Uniform Interface는 URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍쳐 스타일이다.
  • Stateless(무상태성)

    • REST는 무상태성 성격을 갖는다. 작업을 위한 상태정보를 따로 저장하고 관리하지 않는다. 세션 정보나 쿠키 정보를 별도로 저장하고 관리하지 않기 때문에 API서버는 들어오는 요청만을 단순히 처리하면 된다. 서비스의 자유도가 높어지고 구현이 단순하고 확장이 용이하다
  • Cacheable(캐시 가능)

    • HTTP라는 기존 웹표준을 그대로 사용하기 때문에, 웹에서 사용하는 인프라를 그대로 활용 가능하다. HTTP 프로토콜 표준에서 사용하는 Last-Modified태그나 E-Tag를 이용하면 캐싱 구현이 가능
  • Self-descriptiveness(자체 표현 구조)

    • REST API메시지만 보고도 이를 쉽게 이해할 수 있는 자체 표현 구조로 되어 있어야 한다. link 가 있어야한다
  • Client-Server구조

    • REST서버는 API제공, 클라이언트는 사용자 인증이나 세션,로그인 정보등을 직접 관리하는 구조로 각각의 역할이 확실히 구분되서 의존성이 줄어든다.

장점

  1. 언어와 플랫폼에 독립적이다.
  2. SOAP(다른 통신방식)보다 개발이 쉽고 단순하다.
  3. REST가 지원하는 프레임워크나 언어등 도구들이 없어도 구현이 가능하다.
  4. 기존 웹 인프라를 사용가능하다. HTTP를 그대로 사용하기 때문에 그런 것이다.