API란?
API(application programming interface 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스)는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다. - 위키백과 (API)
API란 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중계계층 (매개체)을 의미한다.
이 중계계층 안에는 어떤 프로토콜인지? (HTTP/ HTTPS), 메서드(get,post...), 데이터 교환 형식(JSON,XML) 등이 정의되어있다.
여기서 인터페이스(Interface)란 서로 다른 두 개의 시스템 사이에서 정보를 주고 받을 때 그 사이를 연결하는 연결장치를 말한다.
컴퓨터와 사용자 간의 통신이 가능하도록 하는 장치나 프로그램을 의미하기도 한다.
이때 사이트가 가지고 있는 서버나 DB가 어떻게 구성되어있는지 모르지만,
사용자는 사이트가 서비스하는 기능들을 인터페이스를 통해 이용할 수 있다.
예를들어, NAVER 사이트를 들어갔을 때, 그 안에 있는 서버, DB가 어떻게 구현되어있는지 모르지만 인터페이스를 통해 NAVER가 제공하는 서비스 (메일,쪽지,검색 등등) 를 이용할 수 있다.
이와 마찬가지로,
API를 이용할 때 사용자는 API가 어떤 서버, DB를 가졌는지 모르지만 API에 서비스 요청을 하여 서비스를 제공받을 수 있다.
API의 필요성
API의 필요성은 web 진화와 밀접한 연관이 있다.
모놀리식 아키텍처 (Monolithic Architecture, MA)가 주도적이었던 시대 (Web1.0) 에서는
서버와 클라이언트의 분리 없이 모두 서버에서 동시에 처리하기 때문에 API 필요성이 절실하지 않았다.
하지만 점점 애플리케이션의 규모가 커질 수록 각 팀의 의사소통과 조정비용이 증가하게 되었다.
2000년경 부터 (Web2.0) '개방,참여,공유' 의 정신을 바탕으로 정보의 쌍방향 소통, 사용자가 데이터를 생성하는 참여형태가 주목 받았다.
이때 API를 통한 정보 공유 기술에 주목을 했고, Public API가 확대되어 사용되기 시작했다.
API의 장점
1. 서버는 DB, 테이블 등 중요한 부분을 드러내지 않아도 된다.
2. 사용자는 해당 서비스가 어떻게 구현되는지 알 필요 없이 필요한 정보만을 제공받을 수 있다.
3. OPEN API로 앱개발 프로세스를 단순화 시키고 시간과 비용을 절약할 수 있다.
ex) 네이버 아이디 로그인
4. 제공자는 데이터를 한 곳에 모을 수 있다.
예를들어, 해당 사이트에 방문하는 방문자, 특정한 것을 클릭하는 사용자에 대한 이벤트를 집계하고 싶을 때
API를 만든 뒤, 해당 이벤트가 발생했을 때 만들어두었던 API를 호출시키면 해당 데이터를 한 곳에 모을 수 있다.
ex) 베스트셀러, 인기글
API의 종류
1. Private API
- 내부적으로 사용하는 API로 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행한다.
제 3자에게 드러내지 않는다.
2. Public API
- 모든 사람이 사용할 수 있는 OPEN API로 누구나 사용할 수 있다.
하지만 많은 트래픽을 방지하기 위해 하루 요청 수 제한, 계정 당 몇 개 사용 등 관리한다.
3. Partner API
- 기업이 데이터 공유에 동의하는 특정인만 사용할 수 있다. 비즈니스 관계에서 사용되는 편이다.
참고
'CS공부' 카테고리의 다른 글
[HTTP] HTTP 메서드 및 상태코드 (0) | 2023.07.14 |
---|---|
[HTTP] HTTP의 개념 및 진화 (0) | 2023.07.13 |
RESTful API 란? (0) | 2023.07.05 |
절차지향 언어 VS 객체지향 언어 (0) | 2023.07.03 |
MVC 패턴이란 (Model-View-Controller) (0) | 2023.06.29 |