#145
1. API(Application Programming Interface)란?
응용 프로그램 프로그래밍 인터페이스, 즉 응용 프로그램 간에 인터페이스를 해주는 역할을 담당하는 것입니다.
처음에 이 개념만 들었을 때 정말 모호하다는 생각이 많이 들었는데요.
제 경험에 의해 이해한 방법에 대해서 말씀드리겠습니다.
예를들어 현재 상영중인 영화 목록을 출력하는 프로그램을 만든다고 가정해보겠습니다.
(실제 이 프로그램을 만들면서 API를 접하게 되었습니다.)
상영중인 영화 목록을 출력하는 프로그램을 개발하기 위해서는 영화 목록이 필요합니다.
하지만 가지고 있는 데이터에는 영화 목록이 존재하지 않아 어디선가 영화 목록을 관리하는 곳에서 가져와야 합니다.
다행히 영화진흥위원회에서 오픈 API로 영화목록을 제공하고 있었습니다.
이 API를 통해 원하는 데이터에 대한 요청을 보내면 원하는 데이터를 받을 수 있었습니다.
(그 당시에는 API 용도를 이해하지 못하고 그냥 프로그램을 개발하기 위해 사용만 했었습니다.)
다시 이해를 하기 위해 떠올려보니 이 때 만약 API를 제공해주지 않았다면 데이터를 어떻게 가져왔을까?
나는 출력하는 프로그램만 만들었는데 영화 목록까지 관리해야 했다면 프로그램을 개발할 수 있었을까?
라는 고민을 해봤습니다.
이러면서 제가 이해한 API는
"응용 프로그램을 개발하고자하는데 다른 응용 프로그램을 쉽게 이용할 수 있게 제공하는 인터페이스"
였습니다.
2. API 유형
API 유형에는 총 3가지 유형이 있습니다.
1) Private API
: 비공개형태로 내부 구성원들에게만 사용할 수 있도록 제공하는 API입니다.
2) Public API
: Open API라고 보시면 됩니다. 모두에게 제공되는 API입니다.
3) Partner API
: Private API보다는 공개적이지만 전체 공개가 아닌 기업간에 사용되는 API입니다.
3. API 제공 방식
API를 제공 방식은 다양하게 있지만 그 중에서도 가장 많이 사용되는 방식 2가지가 있습니다.
1) REST(Representational State Transfer) API
: REST 아키텍처에서 제공하는 API, REST 아키텍처란 HTTP 프로토콜을 이용하여 자원의 상태값을 주고 받는 형식
즉, HTTP 프로토콜을 이용하여 자원의 상태값을 주고 받는 형식을 이용한 API
2) SOAP(Simple Object Access Protocol)
: HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜
SOAP에는 XML을 이용한다는 것이 중요
위의 이 두가지 방식에 대해서는 하나씩 천천히 공부해도록 하겠습니다.
4. API 사용 방법
제가 사용하였던 Open API, REST API방식으로 설명드리겠습니다.
1) 이용할 API 확인
API를 이용하실거라면 어떤 API를 이용할 것인지 확인해봐야겠죠?
기업 내부에서 사용할 경우 각 프로그램별로 제공하는 Private API를 확인해보셔야할 것이고 Open API를 이용하신다면, 제공하는 Open API가 어떤 것들이 있는지 확인해보셔야할 것입니다.
저는 우선 영화진흥위원회에서 제공하는 Open API를 이용하고자 합니다.
2) API 키 발급
API의 경우 키를 통하여 사용자를 인증하고 응답을 주고 받습니다.
Open API도 마찬가지로 키가 필요하므로 키를 발급 받습니다.
3) API 방식 선택
영화진흥위원회에서 제공하는 API방식에는 REST 방식과 SOAP방식이 있습니다.
저는 REST 방식을 선택하였습니다.
4) 라이브러리 다운로드
API 방식에 따라 호출 및 응답을 처리하는 라이브러리가 있습니다.
각 플랫폼에 맞게 라이브러리들을 Import 시켜주셔야 이용하실 수 있습니다.
5) 인터페이스 및 요청 방법 확인
요청에 따라 어떤 데이터들을 조회할 수 있는지 확인하신 다음 요청 방법에 따라 요청하시면 원하시는 데이터를 조회하실 수 있습니다.
5) 데이터 활용
각 호출 방법에 알맞게 데이터를 처리하신 후 사용하시면 됩니다.
'컴소니 > 개발' 카테고리의 다른 글
SOAP(Simple Object Access Protocol)란? (0) | 2021.01.27 |
---|---|
REST(Representational State Transfer)란?(feat, RESTful, REST API) (0) | 2021.01.26 |
OpenJDK 설치하기(CentOS 7) (0) | 2020.03.06 |
OpenJDK 설치하기 (0) | 2020.01.09 |
전자정부프레임워크(eGovFrame) Maven 환경 설정하기 (0) | 2020.01.04 |
댓글