API 란

이현정·2022년 3월 31일
0

API 란

API 란, Application Programming Interface 의 약자로 어려운 기능들을 쉽게 만드는 구성이다.
공식사이트에서는 마치 전기를 이용하기 위해 우리가 직접 전기 공급기에 전선을 연결할 필요 없이 집안의 플러그만 꽂으면 되는 것처럼, 어려운 기능을 직접 구현할 필요 없이 API 를 이용하면 쉬워진다고 설명한다.
( 출처: https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Introduction )

API 는 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계입니다.(이런 요청을 하면 이런 응답을 해줘, 이렇게 체계를 만들어 놓은 것) 예를 들어, '서버 주소/A' 라고 신호를 보내면 서버가 '로그인 기능'을 수행하고 응답합니다. 혹은 '서버주소/B'라고 신호를 보내면 서버가 '회원 가입 기능'을 수행하고 응답합니다. 이러한 기능은 서버 개발자가 만들며, 그 결과물이 서버 프로그램입니다. 즉, API는 서버 개발자가 개발하고, 클라이언트 개발자는 그 API 를 사용합니다.
( 출처: <비전공자를 위한 이해할 수 있는 IT 지식> )

Client-side API

그렇다면 클라이언트 개발자는 서버에 요청을 보냅니다. 그리고 그 요청은 크게 4가지 요소로 나뉩니다: 1) Create, 2)Read 3)Update 4)Delete. 일명 CRUD 라고 불립니다. 이렇게 클라이언트와 서버가 요청과 응답을 주고 받는 것을 API 라고 하며, 클라이언트가 요청하면 서버가 응답합니다. 클라이언트가 하는 요청을 클라이언트쪽 API(client-side API) 라고 하며, 이 요청은 크게 4가지 부분으로 나뉩니다: Create, Read, Update, Delete (CRUD).

타임라인의 CRUD 요청은 각각의 주소를 가집니다. 예를 들어 Create 요청은 '서버컴퓨터주소/timelinecreate' 라고 지을 수 있습니다. Reade, Update, Delete 도 각각의 주소를 가집니다.

RESTful API

이렇게 CRUD별로 주소가 생기고, 이렇게 주소를 구성하면 주소가 너무 많아지고 관리가 힘들어집니다. 네이밍 자체가 서버 개발자들, 즉 사람이 하는 일인데 이름이 겹치는 실수도 발생합니다. 따라서 사람들은 좀 더 체계적으로 API 를 관리하고 싶어했고, 그 사회운동 결과가 REST(Representational State Transfer)한 API, 즉, RESTful API 입니다.

RESTful API 는 해당 책에서는 스티커 5개라고 설명합니다. 각각 CRUD 별로 가져진 수많은 주소에 스티커 5개로 분류하는 겁니다: POST, GET, PUT, PATCH, DELETE.

Create 종류는 POST 스티커를 붙여 하나로 관리하고,
Read 종류는 GET,
Update 종류는 PUT(전체) / PATCH(일부)
Delete 종류의 요청은 DELETE 을 붙여 관리합니다.

이삿짐 쌀 때 물건이 너무 많으면 종류별로 박스에 담고 각 박스에 이름을 붙이죠? 그런 느낌으로 저는 이해했습니다. 양말, 가방, 옷, 책, 사무용품, 칫솔, 샴푸, 수건 등등...이 있다면 양말,가방,옷은 '의류' 박스에, 책과 사무용품은 '사무용품' 박스에, 칫솔 등은 '욕실용품' 박스에. 이렇게 되면 관리해야할 수많은 물건이 아니라 박스 3개만 관리하면 되니까 일이 훨씬 간단해지죠. 저는 이렇게 이해했습니다.

Server-side API

이렇게 클라이언트 측에서 요청을 받은 서버는 응답을 준비해야겠죠. 응답은 2가지로 나뉩니다. "잘됐어"와 "잘 안됐어.".

"잘됐어" 라고 대답할 때는 200번대 응답을 띄웁니다.
"잘 안됐어" 라고 대답할 떄는 실패 원인에 따라 2가지로 나뉘는데요, 400번대(클라이언트 요청에 문제) 와 500번대(서버측 문제) 로 나뉩니다. 100번대와 300번대는 잘 다뤄지지 않으므로 따로 언급하지 않겠습니다. 이렇게 서버측 응답을 번호로 표시한 상태를 "HTTP 상태코드" 라고 합니다.

SDK

클라이언트와 서버 외에 다른 기능이 필요해 다른 기능을 빌려줄 다른 소프트웨어를 빌려올 때가 있는데, 이 때 그 다른 소프트웨어를 SDK(Software Development Kit) 라고 한다.

Web API 란

웹 앱이나 웹 사이트를 만들 때 사용할 수 있는 모든 API들.
모든 Web API 보기.

< REFRENCE >

https://developer.mozilla.org/ko/docs/Web/API
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Client-side_web_APIs
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Introduction

0개의 댓글