////
Search
Duplicate
📋

API란 무엇인가?

목차

1. 주제 선정 이유
2. API
API의 개념
API의 기능
API의 형태
REST API
API의 종류
3. 요약 정리 및 면접형 QnA
번외. 별도의 IT용어

1. 주제 선정 이유

IT업계에서 API라는 용어를 상당히 많이 사용하는 것을 목격할 수 있다. 물론 이러한 문화에 친화적인 개발자라면 당연히 이해하고 넘어갔을 것이지만, 업계에 처음 진입한 사람에게는 너무나도 낯설은 용어라고 생각한다. 특히, 필자인 내가 그랬다. 그래서 이번 기회에 API에 대한 기초적인 개념을 쉬운 비유에 빗대어 설명하고자 한다.

2. API

2-1. API의 개념

API는 Application Programming Interface의 앞자리를 조합하여 만든 용어이다.
Application은 기능이나 응용 프로그램을 의미하며, Interface는 상호작용을 의미한다.
즉, API는 응용 프로그램을 프로그래밍하기 위해 서로 데이터를 주고 받는 상호작용의 방법이라고 정의할 수 있다.

2-2. API의 기능

API를 실상의 예로 설명한다면, 식당의 메뉴가 적힌 메뉴판이라고 빗대어 표현할 수 있다.
여기서 메뉴는 API가 제공하는 데이터 형식의 정보라고 생각하면 된다.
식당에 들어온 손님은 메뉴판을 보고 주방장에게 메뉴를 요청하고, 주방장은 그 메뉴에 맞는 음식을 손님에게 제공한다.
데이터를 요청하는 클라이언트(프론트엔드)에게 서버(백엔드)가 데이터를 제공해주며, 이러한 상호작용을 가능하게 해주는 것이 API이다.

2-3. API의 형태

웹에서 사용하는 API를 '웹 API'라고 부르며, 모바일에서 사용하는 API를 '모바일 API'라고 부르며, 프론트엔드 개발자가 주로 접하는 API는 HTTP API이다.
HTTP는 HyperText Transfer Protocol의 약자로, 인터넷에서 웹페이지를 전송하기 위해 사용하는 프로토콜(규칙)을 의미한다. HTTP는 클라이언트와 서버 간에 데이터를 주고받는 방식을 정의하고 있으며, 웹 브라우저와 웹 서버 간의 통신에 주로 사용한다 ex).네이버 URL : https://www.naver.com/
API는 요청방식, 요청자료내용, 자료요청에 필요한 추가정보 순으로 구성되어있다. ex). 클라이언트가 서버에 영화정보를 요청하는 HTTP API: GET /movies/123456789 서버가 갖고있는 영화정보:
HTTP/1.1 200 OK Content-Type: application/json { "id": 123456789, "title": "The Shawshank Redemption", "year": 1994, "director": "Frank Darabont", "genres": ["Drama", "Crime"], "rating": 9.3 }
Plain Text
복사
GET /movies/123456789 : 요청방식 / 요청자료내용 / 추가정보

2-4. REST API

Representational State Transfer의 약자로, 웹 서비스를 위한 아키텍처 스타일, 일종의 방법론이라 이해하면 편하다.
REST API는 HTTP 프로토콜을 기반으로 동작하며, 클라이언트와 서버 간의 통신을 위해 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용한다.
REST API의 특징:
1.
자원(Resource) 중심적: 리소스(데이터)를 중심으로 API를 설계한다. 각 리소스는 고유한 식별자(URI)를 가지기 때문에 가독성이 좋아 수정이나 변경이 용이하다.
2.
상태를 전달(Stateless): 서버는 클라이언트의 상태를 관리하지 않는다. 요청은 필요한 모든 정보를 포함하고, 서버는 각 요청을 독립적으로 처리한다. 클라이언트의 세션 상태는 서버에 저장되지 않으며, 클라이언트는 필요한 경우 인증 토큰 등을 요청에 포함시켜 식별할 수 있다.
3.
표준화된 인터페이스: REST API는 일반적으로 HTTP 메서드(GET, POST, PUT, DELETE)와 HTTP 상태 코드(200 OK, 404 Not Found 등)를 사용하여 일관된 인터페이스를 제공한다. 이는 개발자가 API를 이해하고 사용하기 쉽도록 도와준다.
4.
계층 구조(Layered System): RESTful 서비스는 다중 계층으로 구성될 수 있다. 중간 서버, 로드 밸런서, 캐싱 서버 등을 통해 보안, 로드 분산, 성능 향상 등을 달성할 수 있다.
정리하면, REST API는 HTTP API기반으로 개발자들이 보다 쉽게 서버와 상호작용할 수 있도록 하는 표준화된 방법으로, 단순하고 가독성이 좋다는 장점이 있다.
REST API에 대한 자세한 설명자료영상 :

2-5. API의 종류

API의 종류에는 크게 3가지가 있다.
1.
public API(open API) : 누구나 사용가능한 공개 API (ex. 기상청 : https://www.data.go.kr/data/15095109/openapi.do#tab_layer_detail_function)
2.
private API : 사내에서만 사용하는 API
3.
partner API : 미리 정해준 사용자끼리 사용하는 API

3. 요약 정리 및 면접형 QnA

QnA : API는 무엇인가요?

API는 Application Programming Interface의 약자로, 응용 프로그램을 프로그래밍하기 위해 클라이언트와 서버가 서로 데이터를 주고 받는 상호작용의 방법입니다.

QnA : 혹시 REST API가 무엇인지 알고 계신가요?

REST API는 Representational State Transfer의 약자로, HTTP API기반하여 개발자들이 보다 쉽게 서버와 상호작용할 수 있도록 하는 표준화된 API 스타일입니다. 특히 자원중심적인 스타일이기에, 각 리소스가 고유한 URI를 가져 가독성이 좋으며, 표준화된 HTTP 메서드를 사용하기에 단순하다는 장점이 있기 때문에, 현업에서 거의 REST 방식을 사용합니다.

Reference