본문 바로가기

기술면접 준비

REST API란?🧐 REST API 개념 알아보기

📕 오늘의 질문

REST API에 대해 설명해주세요.

REST API - 정말 많이 들어보셨을 거라 생각합니다. REST API 또는 RESTful API라고 불리는 이것은 REST 아키텍처 스타일에 부합하는 어플리케이션 프로그래밍 인터페이스를 말합니다.

 

REST란?

REpresentational State Tranfer의 약자입니다. 이는 컴퓨터 과학자인 로이 필딩에 의해 적립되었습니다. Representational state transfer, 한국어로는 '표현 상태 전송'으로 이해할 수 있겠습니다.

 

잠깐,  API란 무엇일까요?

쉽게 말하자면 API란 정보제공자와 정보이용자 간의 약속입니다. API는 어플리케이션 소프트웨어를 구축하고 통합하는데 사용되는 정의와 프로토콜의 모음입니다.

 

다시 REST로 돌아와서...REST의 개념을 살펴보겠습니다.

RESTful API로 클라이언트 요청이 발생하면, 이는 표현(또는 정보)를 HTTP를 통해 아래의 형식으로 전달합니다.

출처: https://vo.la/LHIZMY

REST API가 취하는 형식: JSON, HTML, XLT, Python, PHP, 일반 텍스트.

 

REST API는 HTTP를 통해 전달되기 때문에, 이의 헤더(header) 역시 중요한 역할을 갖습니다. RESTful API HTTP 요청에서 헤더는 요청의 메타정보, 인증, URI, 캐싱, 쿠키 등과 관련된 중요한 식별자 정보를 담을 수 있습니다.

 

REST API의 기준

  • 서버-클라이언트 구조: 클라이언트, 서버 및 리소스가 포함된 클라이언트-서버 아키텍처와 HTTP를 사용하는 요청
  • Stateless성: Stateless 클라이언트-서버 소통(요청을 받기 위한 클라이언트 정보가 중간에 저장되지 않음을 의미합니다), 연결되지 않은 독립적 요청
  • 캐시 가능: 클라이언트-서버 인터렉션을 간소화할 수 있는 캐싱 가능한 데이터
  • 인터페이스의 일관성: 요소 간 통일된 인터페이스 - 정보가 기본 형식으로 보내짐.
  • 계층 구조: 층으로 이루어진 시스템. 요청된 정보 회수와 관련된 각 서버 타입에 계급을 부여 (클라이언트에게는 보이지 않음)
  • 코드온디멘드(선택사항)

 

달라진 Request 용어?

CRUD라는 개념은 많이 들어보셨을 겁니다. 그렇다면 RESTful API를 사용할 때는 이 CRUD를 어떻게 사용해야 할까요? 똑같이 create, read, update, delete를 쓰면 되는 것일까요? 아닙니다. RESTful API는 HTTP를 사용하기 때문에, HTTP Operations를 사용해주어야 합니다. 하지만 사용하는 것이 그다지 어렵지는 않습니다. CRUD와 대치되는 오퍼레이션이 있기 때문에 이를 유의해서 사용하시면 됩니다.

 

CRUD              HTTP Operations

Create  ------------> Post

Read    ------------> Get

Update ------------> Put/Fetch

Delete  ------------> Delete

 

 

마치는 말

쉬운 것 같지만 막상 적용하려고 하면 어려운 것이 RESTful API가 아닌가 합니다. 하지만 커뮤니케이션에 큰 도움을 주는 만큼 이를 사용하는 곳이 많기 때문에, RESTful API를 제대로 사용하는 방법을 꼭 익히는 것이 중요하다고 생각합니다.

 

 

참고자료

Red Hat, What is a REST API

REST(Representational State Transfer)란?

생활코딩, 기계들의 대화법 - REST API

IBM Technology, What is REST API?
WebConcepts, REST API concepts and examples