Programming

API와 SDK의 차이점

procodes 2020. 5. 19. 20:44
반응형

API와 SDK의 차이점


비 개발자에게 API와 SDK의 차이점을 설명하려고합니다. 상용 지문 소프트웨어 공급 업체가 SDK를 제공하지 않았을 가능성이 높은 이유를 설명해야합니다.

장치 공급 업체와 소프트웨어 공급 업체 모두 잘 정의 된 API를 노출 할 수 있으며 노출해야합니다. 이 API를 사용하면 다른 소프트웨어 프로그램이 공급 업체의 자체 소프트웨어 구성 요소 또는 하드웨어 장치와 상호 운용 될 수 있습니다.

누군가가 이것을 명확하게 설명 할 더 많은 아이디어를 가지고 있다면 제안을 대단히 감사하겠습니다. 개발자 링고를 모르는 프로그래머가 아닌 사람에게 개념을 설명하는 것이 목표 라고 강조하고 싶습니다 .

구체적으로, 지문 센서 대 등록 / 검증을 수행하는 소프트웨어와 관련하여 설명하는 방법은 다음과 같습니다.

지문 장치 / 센서 제조업체이며 소프트웨어 작성 업무를 수행하지 않는 경우 제품을보다 효과적으로 마케팅 할 수있는 방법은 다음과 같습니다.

  1. 장치 드라이버가 다양한 운영 체제에 설치 가능해야합니다
  2. 소프트웨어 개발자가 프로그램을 작성하여 (예 : 등록, 확인 등) 내 장치와“대화”하거나 사용할 수있는 API를 정의하고 제공하십시오.
  3. 소프트웨어 개발자가 내 장치에서 작동하는 프로그램을 더 쉽고 빠르게 작성할 수 있도록 SDK (API를 넘어 한 단계)를 개발하고 제공하십시오. SDK는 헬퍼 코드 라이브러리, 참조 애플리케이션, 문서 등을 제공 할 수 있습니다.

케이크 조각 :

  • API는 인터페이스 입니다. 전화 시스템 사양이나 집안의 전기 배선과 같습니다. 인터페이스 방법을 알고있는 한 아무거나 * 사용할 수 있습니다. 선반 전화 장비 또는 집안의 AC 배선에 연결된 장치를 구입할 수있는 것처럼 특정 API를 사용하기 위해 상용 소프트웨어를 구입할 수도 있습니다.
  • SDK는 구현 툴 입니다. 전화 시스템이나 전기 배선에 연결할 수있는 맞춤형 제품을 제작할 수있는 키트와 같습니다.

* 모든 것이 API를 사용할 수 있습니다. 일부 API에는 라이센스 키, 인증 등을 요구하는 보안 규정이있어 특정 인스턴스에서 API의 완전한 사용을 금지 할 수 있지만 특정 인증 / 권한 부여 단계가 실패하기 때문입니다. 올바른 자격 증명을 제공하는 소프트웨어 (필요한 경우)는 API를 사용할 수 있습니다.

** 기술적으로 API가 잘 문서화되어 있으면 API를 사용하기 위해 자체 소프트웨어를 빌드하기 위해 SDK가 필요하지 않습니다. 그러나 SDK를 사용하면 일반적으로 프로세스가 훨씬 쉬워집니다.


API 는 어린이가 다른 모양의 블록을 결합하고 생각할 수있는 무언가를 만들기 위해 노는 퍼즐 게임의 빌딩 블록과 같습니다.

반면에 SDK 는 사전 구성된 빌딩 블록이 아닌 모든 개발 도구를 사용할 수있는 적절한 워크샵입니다. 워크샵에는 실제 도구가 있으며 블록에만 국한되지 않으므로 직접 블록을 만들거나 블록없이 시작하여 무언가를 만들 수 있습니다.

SDK 또는 API없는 코딩 은 작업장없이 처음부터 모든 것을 만드는 것과 같습니다. 자신 만의 도구를 만들어야합니다


회사 C가 제품 P를 제공하고 P가 어떤 방식으로 소프트웨어를 포함한다고 가정하십시오. 그러면 C는 P의 소프트웨어 시스템을 구동하는 소프트웨어 개발자에게 라이브러리 / 라이브러리 세트를 제공 할 수 있습니다.

해당 라이브러리 / 라이브러리는 SDK 입니다. P의 시스템의 일부입니다. 소프트웨어 개발자가 P의 소프트웨어를 수정, 구성, 수정, 개선하기 위해 사용하는 키트입니다.

C가 다른 회사 / 시스템에 P의 기능을 제공하려는 경우 API를 사용하여 수행 합니다 .

이것은 P에 대한 인터페이스입니다. 외부 시스템이 P와 상호 작용하는 방법입니다.

구현 측면에서 생각하면 그것들은 상당히 비슷해 보일 것입니다. 특히 인터넷은 이제 하나의 큰 분산 운영 체제처럼되었습니다.

그러나 목적 상 실제로는 상당히 다릅니다.

SDK로 무언가를 만들고 API로 무언가를 사용하거나 소비합니다.


응용 프로그래밍 인터페이스 는 OS X, Android, 프로젝트 관리 응용 프로그램, 가상화 소프트웨어 등과 같은 대상 플랫폼 / 소프트웨어와 상호 작용하는 방법을 지정하는 루틴 / 데이터 구조 / 클래스 세트입니다.

하지만 소프트웨어 개발 키트는 API의 래퍼입니다 / 그 개발자를 위해 쉽게 작업을하게이야.

예를 들어, Android SDK를 사용하면 개발자가 전체적으로 Android 플랫폼과 상호 작용할 수 있으며 플랫폼 자체는 API를 통해 통신하는 복합 소프트웨어 구성 요소로 구축됩니다.

또한 특정 프로그래밍 언어로 쉽게 개발할 수 있도록 SDK가 구축되기도합니다. 예를 들어, Java로 빌드 된 Selenium 웹 드라이버 는 모든 브라우저를 기본적으로 구동하는 API를 제공하는 반면, capybara 는 Ruby 개발자가 Selenium 웹 드라이버를 쉽게 사용할 수있는 SDK로 간주 될 수 있습니다. 그러나 Selenium 웹 드라이버는 다양한 기본 브라우저 드라이버와의 상호 작용을 하나의 패키지로 결합하므로 자체적으로 SDK입니다.


이 두 용어에 대한 공식적인 정의가 확실하지 않습니다. API가 문서화 된 프로그래밍 가능 라이브러리 및 헤더 또는 IDL 파일과 같은 지원 소스 세트라는 것을 알고 있습니다. SDK에는 일반적으로 API가 포함되지만 종종 컴파일러, 도구 및 샘플을 믹스에 추가합니다.


API는 "철도 선로가 4 피트 떨어져 있고 금속 막대가 1 인치 넓습니다"와 같은 인터페이스를 수행하는 방법에 대한 사양입니다. 이제 API가 있으므로 해당 철도에 맞는 열차를 만들 수 있습니다. 어디든 가고 싶다면 추적합니다. API는 코드를 작성하는 방법에 대한 정보 일뿐 아무것도하지 않습니다.

SDK는 이미 사양을 염려 한 실제 도구 패키지입니다. "여기에는 기차, 석탄, 유지 보수 담당자가 있습니다.이를 사용하여 장소를 이동하십시오."SDK를 사용하면 세부 사항에 대해 걱정할 필요가 없습니다. SDK는 실제 코드이며 자체적으로 무언가를 수행하는 데 사용될 수 있지만 물론 기차는 자발적으로 시작되지 않으므로 열차를 제어하기 위해 지휘자가 있어야합니다.

SDK에는 자체 API도 있습니다. "기차에 석탄을 넣으려면 열차에 동력을 공급하려면", "파란색 레버를 당겨 기차를 옮기십시오.", "기차가 재미있게 작동하기 시작하면 정비 담당자에게 전화하십시오"등.


API = 사용 가능한 단어 사전 및 그 의미 (및이를 결합하는 데 필요한 문법)

SDK = 워드 프로세싱 시스템… 2 살짜리 아기를위한 아이디어…

몇 년 후 학교에 다니면서 언어를 배우게 되더라도 SDK를 사용하면 모든 의미있는 문장을 한 번에 작성하는 데 도움이 될 것입니다 (이 예에서는 아직 아기를 얻지 못했다는 사실을 기억하십시오) SDK 사용 방법을 배우기 위해 다른 언어를 배우는 것)


How about... It's like if you wanted to install a home theatre system in your house. Using an API is like getting all the wires, screws, bits, and pieces. The possibilities are endless (constrained only by the pieces you receive), but sometimes overwhelming. An SDK is like getting a kit. You still have to put it together, but it's more like getting pre-cut pieces and instructions for an IKEA bookshelf than a box of screws.


You use an SDK to access functionality of a library, and an API to control it.


API = Application Programming Interface SDK = Software Development Kit

An SDK seems to be a complete set of APIs that allow you to perform most any action you would need to for creating applications. In addition an SDK may include other tools for developing for the platform/item that it is for.

An API on the other hand is just a series of related methods that may be good for a specific purpose.

As an example, the JDK (Java Development Kit) contains the API as well as the compilers, runtimes, and other miscellaneous tools. The Java API is simply all the libraries that make up the core language that you can work with out of the box.

Examples of APIs: Java API, Google Maps API, Flash Player API.

Examples of SDKs: JDK, GWT, Flex SDK.

참고URL : https://stackoverflow.com/questions/834763/difference-between-an-api-and-sdk

반응형