API (Application Programming Interface)
API는 Application Programming Interface 의 약어로 응용 프로그램에서 사용할 수 있는 연결통로를 의미합니다.
어떤 프로그램을 다룰 수 있는 조작 방법이나 매뉴얼 이라고 생각하면 이해하기 쉽습니다.
예를들어 A라는 프로그램이 B라는 프로그램 코드를 사용하려고 할 때, 전체 코드 중 이 B라는 코드만 외부에서 사용할 수 있도록 지정하고 함수의 형태로 구현해 두면 됩니다. 이때 해당 함수는 외부에서 사용할 수 있는 인터페이스가 되는 것입니다.
즉, API는 라이브러리의 사용 규격으로 이해할 수 있으며, Open API는 공개된 API 혹은 라이브러리로 생각할 수 있습니다.
그러나 최근 이야기하는 Open API는 전통적인 프로그램 라이브러리의 인터페이스가 아니라 인터넷을 통해 사용할 수 있는 공개 라이브러리라는 의미로 사용됩니다. 이를 REST 혹은 RESTful 웹 서비스 라고도 합니다.
REST (Representational State Transfer)
REST는 현재 HTTP와 JSON을 함께 사용하여 OPEN API를 구현하는 형태로 많이 사용되고 있습니다.
대부분의 OPEN API는 REST 아키텍처를 기반으로 만들어져 있습니다.
일반적으로 REST원칙을 따르는 시스템을 RESTful 이라고 하며 웹 기반으로 구현된 서비스 이므로 RESTful 웹 서비스라고 이야기합니다.
쉽게 설명하면 WWW에 사용된 통신 규격인 HTTP를 이용해 프로그램 구현 언어와 상관없이 공통적으로 이용할 수 있는 라이브러리 서비스를 개발하고 이용하는 방식이라고 설명할 수 있습니다.
예를 들어 사람의 얼굴 사진을 제공하면 사진에서 사람의 감정상태를 추출해주는 라이브러리가 있다고 한다면 | |
기존방식 | REST |
해당 라이브러리를 C버전, Java버전 등등 만들어 배포해야하고 프로그램을 구현하는 언어에서 해당 라이브러리를 다운로드해 프로젝트에 포함시켜 프로그램을 만드는 방식 | 프로그램언어의 종류에 상관없어 HTTP 통신 프로그램을 작성하는 형태로 서버에 원하는 기능을 요청하면서 필요한 데이터를 제공하는 형식 |
제약 사항
- 반드시 인터넷에 연결되어 있어야함
- 주고받는 데이터가 큰 경우에는 실시간 서비스가 어려움
장점
- 라이브러리를 다운로드 하거나 관리할 필요가 없음.
- WWW를 이용하므로 보안, 성능 문제 등의 해결이 쉬움.
- 라이브러리 사용 통제가 쉬우며 이용에 따른 과금도 가능.
'Application > API' 카테고리의 다른 글
REST API와 HTTP (0) | 2021.03.22 |
---|---|
API 관련 영상 및 자료 (0) | 2021.03.22 |