문제

개발자가 아닌 사람에게 API와 SDK의 차이점을 설명하려고 합니다.상업용 지문 인식 소프트웨어 공급업체가 SDK를 사용했음에도 불구하고 SDK를 제공하지 않는 이유를 설명해야 합니다.

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

누군가 이것을 명확하게 설명할 수 있는 더 많은 아이디어가 있다면 제안해 주시면 매우 감사하겠습니다.나는 그것을 강조하고 싶다. 목표는 개발자 용어를 모르는 프로그래머가 아닌 사람에게 개념을 설명하는 것입니다..

특히 등록/확인을 수행하는 소프트웨어와 지문 센서의 맥락에서 이를 설명하려고 시도한 방법은 다음과 같습니다.

소프트웨어 작성 사업이 아닌 지문 장치/센서 제조업체라면 제품을 더 잘 마케팅 할 수있는 방법은 다음과 같습니다.

  1. 내 장치 드라이버가 다양한 운영 체제에 설치 가능한지 확인하세요.
  2. 소프트웨어 개발자가 프로그램 (예 : 등록, 확인)을 작성하여 내 장치와“대화”하거나 사용하도록 API를 정의하고 제공합니다.
  3. 소프트웨어 개발자가 내 장치와 함께 작동하는 프로그램을 작성하는 것이 더 쉽고 빠르게 SDK (API를 넘어서 한 단계)를 개발하고 제공합니다.SDK는 도우미 코드 라이브러리, 참조 응용 프로그램, 문서 등을 제공 할 수 있습니다.
도움이 되었습니까?

해결책

케이크 조각 :

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

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

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

다른 팁

API 어린이가 다른 모양의 블록에 가입하고 생각할 수있는 것을 만들기 위해 연주하는 수수께끼의 게임의 빌딩 블록과 같습니다.

SDK, 반면에, 사전 형태의 빌딩 블록이 아닌 모든 개발 도구를 사용할 수있는 적절한 워크샵이 있습니다. 워크숍에서는 실제 도구가 있으며 블록에만 국한되지 않으므로 자신의 블록을 만들거나 블록없이 무언가를 만들 수 있습니다.

SDK 또는 API없이 코딩 워크숍없이 처음부터 모든 것을 만드는 것과 같습니다.

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

해당 라이브러리/도서관입니다 SDK. 그것은 P의 시스템의 일부입니다. 소프트웨어 개발자가 소프트웨어 조각을 수정, 구성, 수정, 개선 등으로 사용하기 위해 사용할 수있는 키트입니다.

C가 다른 회사/시스템에 P의 기능을 제공하려면 API.

이것은 외부 시스템이 P와 상호 작용하는 방법입니다.

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

그러나 의도적으로, 그것들은 실제로 상당히 뚜렷합니다.

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

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

하는 동안 소프트웨어 개발 키트 API/S 주변의 래퍼로서 개발자가 작업을 쉽게 할 수 있습니다.

예를 들어, Android SDK는 개발자가 API를 통해 통신하는 복합 소프트웨어 구성 요소에 의해 구축 된 반면, 개발자가 Android 플랫폼과 상호 작용하도록 촉진합니다.

또한 때때로 SDK는 특정 프로그래밍 언어의 개발을 촉진하기 위해 구축됩니다. 예를 들어, 셀레늄 웹 드라이버 (Java에서 내장)는 기본적으로 브라우저를 구동하는 API를 제공합니다. 카피 바라 루비 개발자가 셀레늄 웹 드라이버를 사용하도록 촉진하는 SDK로 간주 될 수 있습니다. 그러나 셀레늄 웹 드라이버는 다양한 기본 브라우저 드라이버와 하나의 패키지로의 상호 작용을 결합하여 SDK 자체입니다.

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

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

SDK는 이미 사양에 대해 걱정하는 실제 도구 패키지입니다. "여기에는 기차, 석탄 및 유지 보수 담당자가 있습니다. SDK와 함께 세부 사항에 대해 걱정하지 않는 SDK와 함께 사용하십시오. SDK는 실제 코드이며, 그 자체로 무언가를 할 수 있지만 물론 열차는 자발적으로 시작되지 않으며 여전히 열차를 제어하기 위해 지휘자를 가져와야합니다.

SDK에는 또한 자체 API가 있습니다. "열차에 석탄을 넣고 싶다면", "파란색 레버를 당겨 열차를 옮기십시오."

API = 사용 가능한 단어와 그 의미의 사전 (그리고 그것들을 결합하는 데 필요한 문법)

SDK = 단어 처리 시스템… 2 살짜리 아기를위한… 아이디어에서 바로 글을 씁니다.

몇 년 후에 학교에 가서 언어로 마스터가 될 수 있지만 SDK를 사용하면 의미있는 문장을 즉시 작성하는 데 도움이 될 것입니다 (이 예에서는 아기조차받지 못했다는 사실을 용서합니다. 적어도 SDK 사용을 배우기 위해 다른 언어를 배우려면.)

어때요...마치 집에 홈시어터 시스템을 설치하려는 것과 같습니다.API를 사용하는 것은 모든 전선, 나사, 부품을 얻는 것과 같습니다.가능성은 무궁무진하지만(받은 작품에 의해서만 제한됨) 때로는 압도적일 때도 있습니다.SDK는 키트를 얻는 것과 같습니다.여전히 조립해야 하지만 나사 상자보다는 IKEA 책장에 미리 잘라 놓은 부품과 설명서를 구하는 것과 더 비슷합니다.

SDK를 사용하여 라이브러리의 기능에 액세스하고 API를 제어합니다.

API = 응용 프로그램 프로그래밍 인터페이스 SDK = 소프트웨어 개발 키트

an SDK 완전한 세트 인 것 같습니다 API응용 프로그램을 작성하는 데 필요한 대부분의 작업을 수행 할 수있는 s. 또한 SDK 플랫폼/품목을위한 다른 도구가 포함될 수 있습니다.

an API 반면에 특정 목적에 좋을 수있는 일련의 관련 방법 일뿐입니다.

예를 들어, JDK (Java Development Kit)에는 API와 컴파일러, 런타임 및 기타 기타 도구가 포함되어 있습니다. Java API는 단순히 상자에서 작업 할 수있는 핵심 언어를 구성하는 모든 라이브러리입니다.

API의 예 : Java API, Google Maps API, Flash Player API.

SDK의 예 : JDK, GWT, Flex SDK.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top