개발 공부를 하면서 자연스럽게 API를 만들어 사용하고 있었지만 API에 대한 정확한 개념은 모른 채로 사용하고 있어서 문서를 읽을 때 이해를 잘 못하는 경우가 생겼다. 공부는 남에게 설명할 수 있을 정도로 개념을 파악하는 것! 이라고 머리로는 알고 있어도 여러가지 핑계를 대며 어영부영 넘어가곤 한 점에 대해 반성하면서 API에 대해 스터디를 하고자 한다.
API란?
위키백과에 따르면 API란 Application Programming Interface의 약자로, 응용 프로그램 프로그래밍 인터페이스를 의미한다고 한다.
이렇게 보면 당연히 이해가 안간다. 난 문과니까
알기 쉽게 그림과 예시로 이해해보자. 호텔리어 출신인 나에게 많이 와닿는 예시가 있어서 가져와봤다
레스토랑에는 손님이 있고 점원과 요리사가 있다. 손님은 점원이 가져다 준 메뉴판을 보고 점원에게 주문을 하고, 점원은 손님이 주문한 메뉴를 요리사에게 전달하며, 요리사는 주문에 따라 음식을 조리해서 점원에게 주고, 점원이 음식을 손님에게 가져다준다.
할 일이 많은 우리 점원씨의 역할은 손님에게 메뉴을 소개하고, 요리사에게 주문을 전달하고, 완성된 요리를 손님에게 전달한다.
여기서 점원의 역할이 API가 하는 역할이다.
손님(클라이언트)가 주문(요청)을 할 수 있게 메뉴(명령 목록)을 제공하고, 주문(요청)을 요리사(서버)에 전달하여 음식(응답값)을 손님(클라이언트)에게 전달해준다.
정리해보자면, API는 프로그램간의 상호작용을 도와주는 중간다리, 중재자, 매개체이다.
API의 역할
API의 역할을 정리하자면 이렇게 요약할 수 있다.
- API는 서버와 DB에 대한 출입구 역할을 한다.
데이터베이스에는 중요한 정보들이 저장된다. 그런데 이 데이터베이스에 모든 사람들이 접근할 수 있다면? 그 서비스는 아주 엉망진창이 될 것이다. API는 서버와 DB간의 출입구 역할을 하며, 허용된 사람들만 접근할 수 있게 해준다. - API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
- API는 모든 접속을 표준화한다.
API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다. 쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있음!
API의 유형
API는 공개범위에 따라 3가지로 나눌 수 있다.
- private API
내부 API, 비공개 API
회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행. 제 3자에게 노출되지 않음.
ex) 조직 근태관리 API - public API
오픈 API, 공개 API
누구나 제한없이 사용 가능.
ex) 공공 API,네이버맵, 구글맵 - partner API
파트너 API
회사 외부에서도 허가받은 사람들이 사용할 수 있음.
주로 비즈니스 관계에서 사용되며, 파트너 회사간의 소프트웨어를 통합하기 위해서도 사용된다
REST API
오늘날 웹에서 볼 수 있는 가장 많이 사용되고 유연한 API이다.
지난 포스팅에서 정리해놓은 글이 있으니 첨부하겠음!
2021.12.14 - [Study/개발지식] - [개발지식] REST API, REST-ful이란?
마치며
가장 기본이 되는 개념이라서 무의식적으로 만들고 사용하던 API인데, 이렇게 개념을 정리하고나니 왜 API를 생성해서 사용하는지 알게 되었다. 뭐든 기초가 탄탄하게 쌓여야 무너지지않기 때문에 이런 개념들은 헷갈릴 때마다 명확히 짚고 넘어가야겠다는 생각을 하게 됐다.
참고
'Study > CS' 카테고리의 다른 글
[CS] 브라우저의 동작 원리 (1) | 2022.06.01 |
---|---|
[CS] 동기 & 비동기 vs 블로킹 & 논블로킹 (2) | 2022.05.30 |
[CS] Rest API: URL 디자인 가이드 (0) | 2022.02.11 |
[Network] 라우팅(Routing) (0) | 2021.12.19 |
[CS] REST API, REST-ful이란? (0) | 2021.12.14 |