본문 바로가기
Data Engineering

API와 REST API

by mimi_Bo 2021. 3. 26.

API (Application Programming Interface)

내가 야!하면 네가 왜!하는 것처럼 티키타카하는 과정 사이의 연결을 API로 생각하면 된다!

즉, 코드와 코드가 서로 소통할 수 있도록 만들어 주는 장소! 소통의 장 = API 입니다!

우리가 키보드를 이용해서 컴퓨터와 대화하는 것처럼 API는 키보드 역할을 한다고 생각하시면 돼요!

그래도 이해가 되지 않는다면... A to B는 A에서 B라는 의미잖아요! 여기서 "to" == API 라는 겁니다!

 

 아래 글에서 봤듯이, HTTP에는 요청과 응답이 있다고 했는데 "누가 요청하고 누가 응답하는 거지?" 라는 생각이 드셨다면 이 글을 통해 알 수 있습니다!

2021.03.25 - [Data Engineering] - HTTP란?

 

HTTP에게 요청을 하는 것을 Client(클라이언트)라고 합니다. 반대로, HTTP가 응답하는 것을 Server(서버)라고 하죠.

API는 클라이언트와 서버 사이에서 중간다리 역할을 한다고 생각하시면 돼요!

Client

말 그대로 손님이에요! 무언가를 요청하는 손님이죠~

손님이 왕이지만, 일식집에서 스테이크를 주문할 수는 없잖아요~ 약속된 규칙(메뉴)에 맞게 요청을 해야합니다.

즉, 원하는 응답을 얻기 위해 알맞은 요청을 해야겠죠! (응답의 방식도 여러가지니까요)

API

프로그램들이 서로 소통하는 방법이 API이다. (인간이 아닌 코드끼리 소통을 하는거죠~)

즉, 손님이 제대로 요청을 할 수 있도록 가이드라인을 해주는 역할이 바로 API입니다.

중간다리 역할도 해서 요청받은 것을 전달하기도 하고 응답받은 것을 다시 클라이언트에게 전달하는 역할을 하기도 합니다.

보통 서버의 응답(API Response)을 전달하는 과정에서는 JSON의 형식으로 전달됩니다.

JSON (Javascript Object Notation)

- Javascript: 파이썬과 같은 하나의 프로그래밍 언어이다/
- JSON: 자바스크립트에서 'Object'를 표기하는 방식이다.

Server

클라이언트의 요청을 들어주는 것이 서버입니다. 요청에 대해 다양한 방식으로 응답을 할 수 있겠죠~

클라이언트의 요청이 성공인지, 실패인지, 그리고 최종적으로 데이터베이스와도 연결이 되어있기 때문에 클라이언트가 요청한 데이터를 넘겨줄 수도 있습니다.

REST API (REpresentational State of Transfer API)

정보를 주고받아지는 데 있어서 개발자들 사이에 널리 쓰이는 일종의 Architecture(형식)

웹 어플리케이션은 API를 제공해야하기 때문에 API를 작성해야합니다. 그렇다고 자기 마음대로 API를 작성하면 코드해석하는데 많은 시간이 소모되겠죠.

여러가지 종류와 모양을 가진 키보드가 존재하는 것처럼 API에도 다양한 종류가 있습니다. 하지만 목적은 같죠~제가 설명할 API는 RestAPI입니다.

 

RESTAPI는 World Wide Web (WWW) 와도 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍쳐의 한 형식입니다.

REST에는 총 6개의 가이드라인이 존재하는데 이것을 모두 따르면 해당 아키텍쳐를 "Restful API"이라고 하며, 그렇지 않으면 "REST API"라고 합니다.

REST 아키텍처에 적용되는 6가지 제한 조건은 다음의 위키백과에서 확인할 수 있습니다.

ko.wikipedia.org/wiki/REST

 

REST

위키백과, 우리 모두의 백과사전. 대한민국의 힙합 음악가에 대해서는 R-EST 문서를 참조하십시오. REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프

ko.wikipedia.org

여기까지 API에 대한 역할과 REST API에 대해 간략하게 정리해봤습니다!

'Data Engineering' 카테고리의 다른 글

Github 협업하기 (Forking Workflow)  (0) 2021.04.15
[Github] .gitignore / .idea 등 잘못 업로드한 파일 삭제하기  (0) 2021.04.15
HTTP란?  (0) 2021.03.25
Tweepy란?  (0) 2021.03.24
Docker란?  (0) 2021.03.18

댓글