본문 바로가기

코딩연습/과제

API, RESTful

API란?

API는 애플리케이션 소프트웨어를 구축하고 통합하기위한 정의 및 프로토콜 세트로, 애플리케이션 프로그래밍 인터페이스를(Application Programming Interface) 말한다.

API의 장점

  • 구현 방식을 알지 못해도 제품또는 서비스가 서로 커뮤니케이션할 수 있다.
  • 시간과 비용을 절약할 수 있다.
  • 유연성을 제공하고 설계, 관리, 사용방법을 간소화 하며 혁신의 기회를 제공한다

REST란?

REST는 분산 시스템 설계를 위한 아키텍쳐 스타일이다.

아키텍쳐 스타일이라는건 쉽게 말하면 제약조건의 집합이라고 보면된다

 

RESTful은 무엇인가?

RESTful은 위의 제약조건의 집합(아키텍쳐 스타일, 아키텍쳐 원칙)을 모두 만족하는 것을 의미한다.

REST라는 아키텍쳐 스타일이 있는거고 RESTful API라는 말은 REST 아키텍쵸 원칙을 모두 만족하는 API라는 뜻이다

 

REST가 필요한 이유는 무엇일까

  1. 분산 시스템을 위해서이다.
    • 거대한 어플리케이션을 모듈, 기능별로 분리하기 쉬워졌다. RESTful API를 서비스 하기만 하면 어떤 다른 모듈또는 어플리케이션들이라도 RESTful API를 통해 상호간에 통신을 할 수 있기 때문이다.
  2. WEB브라우저 외의 클라이언트를 위해서이다.(멀티 플랫폼)
    • 웹페이지를 위한 HTML및 이미지등을 보내던 것과 달리 이제는 데이터만 보내면 여러 클라이언트에서 해당 데이터를 적절히 보여주기만 하면된다

REST의 특징

  1. Uniform(유니폼 인터페이스)
    • 유니폼 인터페이스는 URL로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍쳐 스타일을 말합니다
  2. Stateless(무상태성)
    • REST는 무상태성 성격을 갖습니다. 다시말해 작업을 위한 상태정보를 따로 저장하고 관리하지 않습니다. 세션 정보나 쿠키정보를 별도로 저장하고 관리하지 않기 때문에 API서버는 들어오는 요청만을 단순히 처리하면 됩니다. 때문에 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해집니다.
  3. Cacheable(캐시가능)
    • REST의 가장 큰특징중 하나는 HTTP라는 기존 웹 표준을 그대로 사용하기 때문에, 웹에서 사용하는 기존 인프라를 그래도 활용이 가능합니다. 따라서 HTTP가 가진 캐싱 기능이 적용 가능합니다. HTTP프로토콜 표준에서 사용하는 Last-Modified태그나 E-Tag를 이용하면 캐싱 구현이 가능합니다.
  4. Self-descriptiveness(자체 표현 구조)
    • REST의 또다른 큰 특징중 하나는 REST API 메시지만 보고도 이를 쉽게 이해 할 수 있는 자체 표현 구조로 되어 있다는 것 입니다.
  5. Client-Server구조
    • REST 서버는 API제공, 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보)등을 직접 관리하는 구조로 각가의 역할이 확실히 구분되기 때문에 클라이언트와 서버에서 개발해야할 내용이 명확해지고 서로간 의존성이 줄어들게 됩니다.
  6. 계층형 구조
    • REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고, PROXY, 게이트 웨이 같은 네트워크 기반의 중간 매체를 사용할 수 있게 합니다.

REST의 구성 요소

HTTP URL = 자원

HTTP Method = 행위

MIME Type = 표현방식

 

 

 

'코딩연습 > 과제' 카테고리의 다른 글

하드웨어, 소프트웨어, 미들웨어  (0) 2019.08.24
소프트웨어 개발 방법론  (0) 2019.08.18
Port란?  (0) 2019.08.12
10가지 언어들의 특징  (0) 2019.08.11
절대경로 : 상대경로  (0) 2019.08.04