[API]란 무엇인가
1. API란 무엇인가
API : Application Programming Interface
API는 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻합니다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공합니다.
API는 응용 프로그램, 모바일 애플리케이션 등의 프로그램을 개발할 때 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트로도 볼 수 있습니다. API를 사용하면 특정 소프트웨어의 구현 방식을 알지 못하더라도 제품 또는 서비스가 서로 의사소통을 할 수 있으며 개발을 보다 쉽고 편리하게 할 수 있도록 해주는 역할을 합니다. 따라서 개발 인력과 시간, 비용 등을 절약할 수 있어 많은 소프트웨어 기업에서는 필수적으로 사용하고 있으며, 이를 통합 및 확장하기 위해 많은 연구, 개발을 통해 설계하기도 합니다.
API는 UI(User Interface)와 비슷한 상호작용 역할을 하며, 이는 서로 다른 시스템이 만나 동작하기 위한 의사소통 역할을 하며, 데이터를 전달 및 처리하며 사용자에게 여러 응용 프로그램의 작업을 수행하고 완료하는 데에 있어 언제 어디서나 정보를 제공하고 있습니다. 반면에 UI와는 달리 사용자의 눈에 보이지는 않습니다.
간단하게 설명하자면 작성된 프로그램은 API에게 데이터를 요청하게 되고, API는 요청받은 명령을 처리하기 위해 응용 프로그램 또는 애플리케이션과 상호작용을 하게 됩니다. 이후 결과물을 작성된 프로그램에게 전달하게 되는 것입니다. 이러한 방식으로 API는 프로그램들이 서로 상호작용을 할 수 있도록 요청, 명령, 처리하는 인터페이스입니다.
2. API의 역할
1) API는 서버와 데이터베이스에 대한 출입구 역할을 한다. (출입구 혹은 열쇠)
데이터베이스에는 소중한 정보들이 저장되는데요. 모든 사람들이 이 데이터베이스에 접근할 수 있으면 안 되겠지요. API는 이를 방지하기 위해 여러분이 가진 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해줍니다.
2) API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
여기서 애플리케이션이란 우리가 흔히 알고 있는 스마트폰 어플이나 프로그램을 말합니다. API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 합니다.
3) API는 모든 접속을 표준화한다.
API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있습니다. 쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있습니다.
3. API의 접근 방식 (혹은 유형)
- Private API : API를 기업이나 연구 단체 등에서 사용하는 다양한 애플리케이션과 시스템의 통합을 위해 사용하는 것으로 단체 내부에서만 사용할 수 있도록 하는 것입니다.
- Partner API : API를 특정 비즈니스 파트너와 공유하는 것으로, 공유받은 API를 품질 저하 없이 사용할 수 있으며 수익 창출을 목표로 사용하는 것입니다.
- Public API : 모든 사람들에게 API를 제공하는 것으로, 개인이 API와 상호작용하는 프로그램을 무료로 개발할 수 있습니다. 다양한 아이디어를 통해 혁신적인 프로그램의 등장을 목표로 사용되고 있습니다.
4. API의 장점
- 자동화가 용이 : API를 통해 사람이 직접 조작하지 않아도 관련 내용이 자동으로 생성되고 처리되어 워크플로우가 빨라질 수 있습니다.
- 범위의 확장성 : API는 프로그램 사용 시 정보를 전달하는 기능이 있어 사용자의 환경에 맞춰서 전달할 수 있습니다. 또한 API에 직접 액세스 하지 않아도 콘텐츠가 자동적으로 생성 및 업로드되어 확장이 용이합니다.
- 적용력 : API는 변화 예측에도 큰 도움이 되기 때문에 API를 통해 데이터를 수집하고 전달하는 데 있어 유연한 서비스 환경을 구축할 수 있습니다.
5. API의 발전 역사 (TMI)
* HAL (Hardware abstraction layer) : API의 시초
- 1964년에 등장한 개념, 이 때는 하드웨어 독립성을 위해서 많이 사용했었음
*API
- 1980년도 중반부터 우리가 흔하게 사용하는 맥 OS와 윈도우즈가 등장
- 각각의 운영체제에서 동작하는 어플리케이션을 만들기 위해서, 각 운영체제의 API를 만들어야함
- 인터넷 보급과 함께 다양한 기기에서 서버의 데이터를 읽고 쓰기 위해서는 웹 API들을 이용해서 처리할 수 있음
- 네트워크에서 기기들간에 의사소통을 해나가는 규격사항을 HTTP
- WEB API를 어떻게 디자인해서 만들건지 정의하는 곳이 있다.
- 예전에는 SOAP라는 모든 네트워크 요청과 반응을 HTML처럼 생긴 XML이라는 데이터 포맷에 저장해서 주고 받았다면, 요즘에는 REST가 보편적으로 많이 사용되어짐
-> 간단하게 설명하면 local을 위해서 쓰이다가, 이제는 Web API로 발전
API 간단 요약
1) 개발자가 프로그램을 만드는데 필요한 어떤 기능을 직접 구현하지 않고 API 제공자들이 제공하는 데이터와 모듈 등을 갖다쓸 수 있게 해주는 게 API와 API 문서이다. (출입구 개념) 예를 들어 내가 네이버를 통해 내 페이지를 네이버 서비스에 공유하고 싶다면 네이버에서 제공하는 공유하기 API를 문서에서 제시하는대로 맞춰서 쓰면 된다.
2) API가 공개되지 않았다면 쓸 수 없다. 또 공개 API라고 하더라도 호출 횟수가 많아지면 비용을 지불해야 할 수도 있다. (열쇠개념)
3) 위의 개념으로 보면 코딩하면서 쓰는 함수들 거의 전부가 API라 볼 수 있다.