API 란?

"API"라는 용어가 나오는 것을 보셨을 것입니다. 운영 체제, 웹 브라우저 및 앱 업데이트는 종종 개발자를위한 새로운 API를 발표합니다. 하지만 API 란 무엇입니까?

응용 프로그래밍 인터페이스

API라는 용어는 약어이며 "Application Programming Interface"를 의미합니다.

API를 레스토랑의 메뉴라고 생각하면됩니다. 메뉴는 주문할 수있는 요리 목록과 각 요리에 대한 설명을 제공합니다. 원하는 메뉴 항목을 지정하면 레스토랑의 주방에서 작업을 수행하고 완성 된 요리를 제공합니다. 식당에서 그 음식을 어떻게 준비하는지 정확히 알지 못하며 실제로 그럴 필요가 없습니다.

마찬가지로 API는 개발자가 수행하는 작업에 대한 설명과 함께 사용할 수있는 작업을 나열합니다. 개발자는 운영 체제가 "다른 이름으로 저장"대화 상자를 빌드하고 표시하는 방법을 반드시 알 필요가 없습니다. 앱에서 사용할 수 있다는 사실 만 알면됩니다.

개발자가 결과를 얻기 위해 API에 자신의 데이터를 제공해야 할 수 있으므로 완벽한 은유는 아닙니다. 따라서 주방에서 사용할 재료를 제공 할 수있는 멋진 레스토랑과 비슷할 것입니다.

그러나 그것은 광범위하게 정확합니다. API를 통해 개발자는 플랫폼의 구현을 활용하여 핵심 작업을 수행함으로써 시간을 절약 할 수 있습니다. 이는 개발자가 생성해야하는 코드의 양을 줄이는 데 도움이되며 동일한 플랫폼에 대해 앱간에 더 많은 일관성을 생성하는 데 도움이됩니다. API는 하드웨어 및 소프트웨어 리소스에 대한 액세스를 제어 할 수 있습니다.

API는 개발자의 삶을 더 쉽게 만듭니다.

iPhone 용 앱을 개발하고 싶다고 가정 해 보겠습니다. Apple의 iOS 운영 체제는 다른 모든 운영 체제와 마찬가지로 많은 API를 제공하므로이를 쉽게 수행 할 수 있습니다.

예를 들어 웹 브라우저를 포함하여 하나 이상의 웹 페이지를 표시하려는 경우 응용 프로그램을 위해 처음부터 웹 브라우저를 프로그래밍 할 필요가 없습니다. WKWebView API를 사용하여 애플리케이션에 WebKit (Safari) 브라우저 개체를 포함합니다.

iPhone 카메라에서 사진이나 비디오를 캡처하려는 경우 자체 카메라 인터페이스를 작성할 필요가 없습니다. 카메라 API를 사용하여 iPhone의 내장 카메라를 앱에 삽입합니다. 이를 쉽게 수행 할 수있는 API가 없다면 앱 개발자는 자체 카메라 소프트웨어를 만들고 카메라 하드웨어의 입력을 해석해야합니다. 그러나 Apple의 운영 체제 개발자는이 모든 노력을 다해 개발자가 카메라 API를 사용하여 카메라를 내장 한 다음 앱을 빌드 할 수 있습니다. 그리고 Apple이 카메라 API를 개선하면 이에 의존하는 모든 앱이 자동으로 그 개선 사항을 활용합니다.

이는 모든 플랫폼에 적용됩니다. 예를 들어 Windows에서 대화 상자를 작성 하시겠습니까? 이를위한 API가 있습니다. Android에서 지문 인증을 지원하고 싶으십니까? 이를위한 API도 있으므로 모든 Android 제조업체의 지문 센서를 테스트 할 필요가 없습니다. 개발자는 휠을 계속해서 재발 명 할 필요가 없습니다.

API는 리소스에 대한 액세스를 제어합니다.

API는 또한 응용 프로그램에 사용 권한이 없을 수도있는 하드웨어 장치 및 소프트웨어 기능에 대한 액세스를 제어하는데도 사용됩니다. 이것이 바로 API가 보안에서 종종 큰 역할을하는 이유입니다.

관련 : 웹 사이트가 귀하의 위치를 ​​묻는 것을 막는 방법

예를 들어, 웹 사이트를 방문한 적이 있고 브라우저에서 웹 사이트가 정확한 위치를 확인하라는 메시지를 본 적이 있다면 해당 웹 사이트는 웹 브라우저에서 geolocation API를 사용하려고 시도하는 것입니다. 웹 브라우저는 이와 같은 API를 노출하여 웹 개발자가 귀하의 위치에 쉽게 액세스 할 수 있도록합니다. 웹 개발자는 "당신이 어디에 있습니까?"라고 물어볼 수 있습니다. 브라우저는 GPS 또는 근처 Wi-Fi 네트워크에 액세스하여 물리적 위치를 찾는 노력을합니다.

그러나 브라우저는 액세스를 제어 할 수 있기 때문에 API를 통해이 정보를 노출하기도합니다. 웹 사이트에서 귀하의 정확한 물리적 위치에 대한 액세스를 원할 때이를 얻을 수있는 유일한 방법은 위치 API를 통해서입니다. 그리고 웹 사이트에서이를 사용하려고 할 때 귀하 (사용자)는이 요청을 허용하거나 거부 할 수 있습니다. GPS 센서와 같은 하드웨어 리소스에 액세스하는 유일한 방법은 API를 통하는 것이므로 브라우저가 하드웨어에 대한 액세스를 제어하고 앱이 수행 할 수있는 작업을 제한 할 수 있습니다.

이 동일한 원칙은 iOS 및 Android와 같은 최신 모바일 운영 체제에서 사용되며, 모바일 앱에는 API에 대한 액세스를 제어하여 적용 할 수있는 권한이 있습니다. 예를 들어 개발자가 카메라 API를 통해 카메라에 액세스하려고하면 권한 요청을 거부 할 수 있으며 앱은 기기의 카메라에 액세스 할 수 없습니다.

권한을 사용하는 파일 시스템은 Windows, Mac 및 Linux에서와 같이 파일 시스템 API에 의해 적용되는 권한을 갖습니다. 일반적인 응용 프로그램은 원시 물리적 하드 디스크에 직접 액세스 할 수 없습니다. 대신 앱은 API를 통해 파일에 액세스해야합니다.

API는 서비스 간 통신에 사용됩니다.

API는 다른 모든 이유로도 사용됩니다. 예를 들어 웹 사이트에 포함 된 Google지도 개체를 본 적이 있다면 해당 웹 사이트는 Google Maps API를 사용하여 해당지도를 포함하고있는 것입니다. Google은 이와 같은 API를 웹 개발자에게 공개하고, 웹 개발자는 API를 사용하여 웹 사이트에서 바로 복잡한 개체를 만들 수 있습니다. 이와 같은 API가 존재하지 않는 경우 개발자는 웹 사이트에 약간의 대화 형지도를 배치하기 위해 자체지도를 만들고 자체지도 데이터를 제공해야 할 수 있습니다.

또한 API이기 때문에 Google은 타사 웹 사이트에서 Google지도에 대한 액세스를 제어 할 수 있으므로 예를 들어 Google지도 웹 사이트를 표시하는 프레임을 어지럽게 삽입하지 않고 일관된 방식으로 사용하도록 할 수 있습니다.

이것은 다양한 온라인 서비스에 적용됩니다. Google 번역에서 텍스트 번역을 요청하거나 웹 사이트에 Twitter의 Facebook 댓글 또는 트윗을 삽입하는 API가 있습니다.

관련 : OAuth 란 무엇입니까? Facebook, Twitter 및 Google 로그인 버튼의 작동 방식

OAuth 표준은 또한 다른 서비스로 웹 사이트에 로그인 할 수 있도록하는 여러 API를 정의합니다. 예를 들어 Facebook, Google 또는 Twitter 계정을 사용하여 해당 사이트에 대한 새 사용자 계정을 만들지 않고도 새 웹 사이트에 로그인 할 수 있습니다. . API는 개발자가 서비스와 통신하는 방법 및 개발자가 다시 받아야하는 출력의 종류를 정의하는 표준 계약입니다.

이 과정을 거쳤다면 API가 무엇인지 더 잘 알 수있을 것입니다. 궁극적으로 개발자가 아니라면 API가 무엇인지 알 필요가 없습니다. 그러나 소프트웨어 플랫폼이나 서비스가 다양한 하드웨어 또는 서비스를위한 새로운 API를 추가 한 것을 본다면 개발자가 이러한 기능을 더 쉽게 활용할 수 있습니다.

이미지 크레딧 : patpitchaya / Shutterstock.com.