728x90
API (Application Programming Interface)란 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자, 컴퓨터 간에 존재하는 중계 계층이다.
즉, 두 컴퓨터 간의 통신 과정에서 프로토콜, 메서드, 데이터 타입이 정의된 중계 계층이다.
인터페이스
API는 프로그램 간의 인터페이스이다.
여기서 인터페이스란 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고 받는 접점/경계면을 말한다.
해당 컴퓨터나 프로그램의 내부 설계가 어떻게 구현되어 있는지와 관계 없이 인터페이스를 통해 통신이 가능하다.
예를 들어 UI(User Interface)는 사람과 컴퓨터 간의 접점/경계면을 말한다.
사람들은 UI를 통해 컴퓨터와 상호작용 하며, 컴퓨터 내부가 어떻게 구현되었는지는 신경 쓰지 않을 수 있다.
작동 방식
사용자가 브라우저를 통해 서버에 요청을 보내면, API가 중계 계층 역할을 하여 요청을 처리한다.
직접 서버의 데이터베이스에 접근하는 것을 방지하기도 한다.
장점
- 서비스의 중요한 부분을 드러내지 않을 수 있다. 예를 들어, DB의 설계 구조나 드러내고 싶지 않은 정보, 서버의 상수 데이터 등을 공개하지 않고 서비스를 제공할 수 있다.
- 사용자는 복잡한 서비스의 구조를 알 필요 없이 필요한 정보를 이용할 수 있다.
- Open API를 활용하면 개발 프로세스를 단순화하고 시간과 비용을 절약할 수 있다.
- DB 등에 수정이 있더라도 동일한 API로 사용 가능하다면, 사용자가 영향을 받지 않을 수 있다. 사용자 업데이트 빈도를 줄일 수 있는 장점이다.
- 개발자가 원하는 방식으로 데이터를 모을 수 있다. 예를 들어 클릭 이벤트 발생 시 횟수를 집계하고 싶다면, 이벤트 발생 시 API를 호출하도록 하여 데이터를 모을 수 있다.
종류
- private: 내부적으로 사용되는 API로, 주로 해시키를 하드 코딩하여 이를 기반으로 서버와 서버 간의 통신이 이루어진다. 비즈니스 파트너와 비밀스럽게 통신하는 경우에도 사용된다.
- public: 누구나 사용할 수 있는 API이다. 오픈 API가 이에 해당한다. 많은 트래픽을 방지하기 위해 하루 요청 수 제한, 계정당 요청 수 제한 등이 있는 경우가 많다.
참고: inflearn 강의 'CS 지식의 정석 - 큰돌'
728x90
'컴퓨터 공학 & 통신' 카테고리의 다른 글
[개념 정리] 클라우드 - IaaS, PaaS, SaaS (0) | 2023.06.29 |
---|---|
[개념 정리] 클라우드 - 가상 머신, 오프프레미스/온프레미스 (0) | 2023.06.28 |
[개념 정리] XML (0) | 2023.06.27 |
[개념 정리] JSON (0) | 2023.06.27 |
[키워드 정리] 개발에서 이야기하는 '자원'이란 뭘까? (0) | 2023.03.30 |