내가 정말 뭔가라는 차이 말할 수 없다는 것을 깨달았을 때 나는, 다양한 API 및 SDK를 통해보고 된 API 라고 뭔가 SDK를 .
둘 다 개념적으로는 다른 소프트웨어가 웹 서비스, 최종 사용자 앱, OS 서비스 또는 데몬 또는 커널인지 여부에 관계없이 프로그램이 다른 소프트웨어에서 제공하는 리소스와 인터페이스하고 제어하는 방법입니다. 장치 드라이버.
그렇다면 SDK와 API의 의미 상 차이점은 무엇입니까?
내가 정말 뭔가라는 차이 말할 수 없다는 것을 깨달았을 때 나는, 다양한 API 및 SDK를 통해보고 된 API 라고 뭔가 SDK를 .
둘 다 개념적으로는 다른 소프트웨어가 웹 서비스, 최종 사용자 앱, OS 서비스 또는 데몬 또는 커널인지 여부에 관계없이 프로그램이 다른 소프트웨어에서 제공하는 리소스와 인터페이스하고 제어하는 방법입니다. 장치 드라이버.
그렇다면 SDK와 API의 의미 상 차이점은 무엇입니까?
답변:
나는 그것이 "모든 SDK는 / API를 포함하지만 모든 API는 SDK는 아닙니다"라는 라인에 해당한다고 생각합니다.
SDK는 애플리케이션 작성에 필요한 모든 조치를 수행 할 수있는 완전한 API 세트 인 것 같습니다. 또한 SDK에는 플랫폼 / 항목 용으로 개발하기위한 다른 도구가 포함될 수 있습니다.
반면에 API는 특정 목적에 적합 할 수있는 일련의 관련 메소드 일뿐입니다.
예를 들어, JDK (Java Development Kit)에는 API, 컴파일러, 런타임 및 기타 기타 도구가 포함되어 있습니다. Java API는 기본적으로 사용할 수있는 핵심 언어를 구성하는 모든 라이브러리입니다.
따라서 실제 차이점은 API는 "일부 서비스"에 대한 인터페이스 일뿐 아니라 SDK는 특정 목적을위한 도구 / 컴포넌트 / 클래스 세트라는 것입니다. 실제로 SDK는 인터페이스 할 API를 제공합니다. 그러나 API가 웹 서비스를 통해 제공되는 경우와 같이 기본 구성 요소없이 API를 사용할 수 있습니다.
API의 예 :
SDK의 예 :
API → 문서화 된 인터페이스 (특정 시점 및 특정 대상) 문서가 불완전하거나 사용 불가능할 수 있으며 이는 의도적 인 것일 수 있지만 문서화 된 사실을 어둡게하지는 않습니다. 타사에서 사용할 수 있습니다.)
SDK → 인터페이스 설명서 (+ 예제 및 도구)
"SDK"는 "API"보다 더 큰 의미로 종합적입니다.
일반적으로 전체 플랫폼을 지원하는 SDK는 하나뿐입니다. 예를 들어 하나의 MacOS X SDK와 하나의 iOS SDK가 있으며 각각 하나의 기능 영역에 대한 API를 포함합니다.
"API"는 원래 총체적인 용어로도 사용되었지만 여전히 그 방식 (MAPI, WSAPI 등)으로 자주 사용되지만 일반적으로 특정 기술로 제한됩니다. "API"에 의해 암시 된 범위는 수년에 걸쳐 줄어든 것으로 보인다. 사람들은 "Mac Toolbox API"또는 "Windows API"에 대해 이야기했습니다. 둘 다 분명히 많은 기능을 포함하고 있었습니다. 요즘, 단일 시스템 기능을 의미하는 "API"를 듣는 것은 드문 일이 아닙니다. 새로운 버전의 운영 체제에는 수백 개의 새로운 API가 포함되어 있으며 수백 개의 새로운 시스템 호출이 의미합니다.
문맥이 없으면 용어가 모두 정확하지 않습니다.
API 란 무엇입니까?
API는 소프트웨어 프로그램이 서로 상호 작용할 수있는 인터페이스입니다. 서로 통신하기 위해 프로그램이 따라야하는 일련의 규칙을 정의합니다. API는 일반적으로 두 응용 프로그램이 통신하기 위해 루틴, 데이터 구조 등을 정의하는 방법을 지정합니다. API는 제공하는 기능이 다릅니다. Java API와 같은 프로그래밍 언어의 라이브러리 기능을 제공하는 일반 API가 있습니다. Google Maps API와 같은 특정 기능을 제공하는 API도 있습니다. 언어 별 API도 있으며 특정 프로그래밍 언어에서만 사용할 수 있습니다. 또한 여러 프로그래밍 언어와 함께 사용할 수있는 언어 독립적 인 API가 있습니다. API는 필요한 기능이나 데이터 만 외부에 노출시키면서 응용 프로그램의 다른 부분에는 액세스 할 수 없도록하여 매우 신중하게 구현해야합니다. 인터넷에서 API 사용이 대중화되었습니다. 일부 기능 및 데이터를 API를 통해 웹 외부로 허용하는 것이 매우 일반적이되었습니다. 이 기능은 사용자에게 향상된 기능을 제공하기 위해 결합 될 수 있습니다.
SDK 란 무엇입니까?
SDK는 특정 플랫폼을 대상으로하는 소프트웨어 응용 프로그램을 개발하는 데 사용할 수있는 도구 모음입니다. SDK에는 프로그래머가 응용 프로그램을 개발하는 데 도움이되는 도구, 라이브러리, 설명서 및 샘플 코드가 포함되어 있습니다. 대부분의 SDK는 인터넷에서 다운로드 할 수 있으며 프로그래머가 SDK의 프로그래밍 언어를 사용하도록 장려하기 위해 많은 SDK가 무료로 제공됩니다. 널리 사용되는 일부 SDK는 모든 라이브러리, 디버깅 유틸리티 등을 포함하는 Java SDK (JDK)로, Java에서 프로그램 작성을 훨씬 쉽게 해줍니다. SDK는 서로 호환되는 구성 요소 / 도구를 찾을 필요가없고 모든 패키지가 설치하기 쉬운 단일 패키지에 통합되어 있기 때문에 소프트웨어 개발자의 삶을 쉽게 만듭니다.
API와 SDK의 차이점은 무엇입니까?
API는 소프트웨어 프로그램이 서로 상호 작용할 수있는 인터페이스 인 반면 SDK는 특정 플랫폼을 대상으로하는 소프트웨어 응용 프로그램을 개발하는 데 사용할 수있는 도구 모음입니다. 가장 간단한 버전의 SDK는 특정 프로그래밍 언어와 상호 작용하는 데 필요한 일부 파일이 포함 된 API 일 수 있습니다. 따라서 API는 모든 디버깅 지원 등이없는 간단한 SDK로 볼 수 있습니다.
내 두 센트 : 나는 API라는 용어가 종종 잘못 사용된다고 생각합니다.
API는 응용 프로그래밍 인터페이스입니다.
어색한 이름이지만 인터페이스 라는 의미 입니다. 따라서 애플리케이션 에는 다른 애플리케이션과 통신 할 수있는 API 가있을 수 있습니다 . 또한 소프트웨어 (예 : OO 시스템의 클래스)는 시스템의 다른 모듈이 통신 할 수 있도록 API를 제공 할 수 있습니다.
그러나 종종 API라는 용어는 "라이브러리"의 동의어로 사용됩니다. 나는 그것이 그 단어를 올바르게 사용한다고 생각하지 않습니다. 일부 라이브러리는 코드를 사용할 수 있도록하는 API이지만, 라이브러리가 아닌 API를.
그리고 SDK는 일종의 라이브러리이므로 혼동 될 수 있습니다.
다른 답변들도 SDK가 툴링 을하고 있다고 설명 하지만, 어느 것도 직접 나오지 않고 API가 사양 이라고 말합니다 .
compoonent X 용 API는 X와 상호 작용할 다른 구성 요소를 작성하는 데 필요한 모든 정보입니다. 구성 요소 X 용 SDK에는 해당 구성 요소를보다 쉽게 작성할 수있는 라이브러리 루틴 이 포함될 수 있지만 라이브러리는 그렇지 않습니다. API : 그것들은 단지 API의 실시 예일뿐입니다 .
이 방법을 비교하고 싶습니다.
Microsoft 도구를 사용하는 개발자 인 경우 :
API = Microsoft.Net Framework Vs SDK = Visual Studio
Java를 사용하는 개발자 인 경우 :
API = Java RunTime Vs SDK = 개발 키트 (JDK)를 제공하는 모든 도구
SDK는 반드시 해당 API에 의존해야한다고 생각합니다 .API가없는 SDK는 없습니다.
다른 응용 프로그램과 인터페이스하여 응용 프로그램을 개발하고 향상시킬 때 다른 응용 프로그램 (논리)이 핵심 논리와 인터페이스 할 수 있어야합니다. 이는 정의 된 API 세트를 통해 수행됩니다. SDK는 API를 사용하여 다른 응용 프로그램과 상호 작용하는 코드를 만들거나 만드는 데 사용됩니다.