📕 오늘의 질문
REST API에 대해 설명해주세요.
REST API - 정말 많이 들어보셨을 거라 생각합니다. REST API 또는 RESTful API라고 불리는 이것은 REST 아키텍처 스타일에 부합하는 어플리케이션 프로그래밍 인터페이스를 말합니다.
REST란?
REpresentational State Tranfer의 약자입니다. 이는 컴퓨터 과학자인 로이 필딩에 의해 적립되었습니다. Representational state transfer, 한국어로는 '표현 상태 전송'으로 이해할 수 있겠습니다.
잠깐, API란 무엇일까요?
쉽게 말하자면 API란 정보제공자와 정보이용자 간의 약속입니다. API는 어플리케이션 소프트웨어를 구축하고 통합하는데 사용되는 정의와 프로토콜의 모음입니다.
다시 REST로 돌아와서...REST의 개념을 살펴보겠습니다.
RESTful API로 클라이언트 요청이 발생하면, 이는 표현(또는 정보)를 HTTP를 통해 아래의 형식으로 전달합니다.
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를 제대로 사용하는 방법을 꼭 익히는 것이 중요하다고 생각합니다.
참고자료
REST(Representational State Transfer)란?
IBM Technology, What is REST API?
WebConcepts, REST API concepts and examples
'기술면접 준비' 카테고리의 다른 글
스택(Stack)과 큐(Queue)란 무엇일까요? (0) | 2022.06.30 |
---|---|
Node.js가 작동하는 방식: 단일 스레드(Single Thread), 비동기(Asynchronous) (0) | 2022.06.29 |
클로저를 사용하면 외부의 함수에 접근할 수 있다고? (0) | 2022.06.22 |
로그인 관련 필수 지식, JWT의 기본개념 (0) | 2022.06.15 |
한끗차인 것 같지만 다른 URI, URL, URN의 차이점 살펴보기 (0) | 2022.06.14 |