TIL. REST API

hyemi jo·2021년 3월 21일
0
post-thumbnail

REST란?

REpresentational State Transfer의 약자로 전반적인 웹 어플리케이션에서 상호작용하는데 사용되는 웹 아키텍쳐 모델이다. 즉, 자원을 주고받는 웹 상에서의 통신 체계에 있어서 범용적인 스타일을 규정한 아키텍쳐

API란?

Application Programming Interface의 약자로 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것.

API를 통해 소스 및 DB에는 접근하지 못하게 하고 해당 프로그램을 사용할 수 있도록 기능을 제공하게 하는 것.

REST의 특징들

균등한 인터페이스 (Uniform Interface)

  • REST는 HTTP 표준만 따른다면, 어떠한 기술이든 사용이 가능한 인터페이스 스타일이다.

무상태성 (Stateless)

  • 서버는 클라이언트의 상황을 고려하지 않고 API 요청에 대해서만 처리하기 때문에 이를 "상태가 없다"라고 표현한다.

캐싱 가능 (Cacheable)

  • HTTP 표준을 기반으로 만들어졌기 때문에 HTTP의 특징인 캐싱을 사용할 수 있다. 이렇게 캐시를 사용하게 되면 네트워크 응답시간 뿐만 아니라, REST 컴포넌트가 위치한 서버에 트랜젝션을 발생시키지 않아, 응답시간과 성능 그리고 서버의 자원 사용률의 부담을 덜 할 수 있다.

자체 표현성 (Self-Descriptiveness)

  • REST API의 자원명시 규칙 및 메소드는 그 자체로 의미를 지니기 때문에 요청에 있어서 그 요청 자체로 어떤 것을 표현하는지 알아보기 쉽다.

클라이언트-서버 구조(Client-Server Architecture)

  • REST 서버가 API를 제공하는 방식이기 때문에 클라이언트에서 처리하는 부분과 독립적으로 동작하기 때문에 서로간의 의존성이 줄어들어, 최대한 독립적으로 개발할 수 있도록 도와준다.

계층형 구조 (Layered System)

  • 서버는 클라이언트가 모르게 API 서버에 여러 계층(사용자인증, 암호화 등)을 추가하여 유연한 구조로 개발 될 수 있다.

→ 이러한 특징들을 잘 지켜서 디자인을 한 것을 Restful 하다고 할 수 있다.

REST API란?

HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미한다.
한마디로, 별도의 설명없이 명시적으로 구분 가능한 API를 말한다.


[참고] HTTP Method의 알맞은 역할

HTTP Method(POST, GET, PUT, DELETE) 를 가지고 자원을 CRUD를 할 수 있다.

  • Create(생성)
  • Read(조회)
  • Update(수정)
  • Delete(삭제)

📚 Reference

profile
기억보단 기록을📓

0개의 댓글