소프트웨어 개발 키트

소프트웨어 개발 키트(software development kit, SDK)는 소프트웨어를 개발하기 위한 소프트웨어 개발 도구들을 하나의 설치 가능한 패키지로 모아 놓은 것이다. 여기에는 컴파일러, 디버거 및 때때로 소프트웨어 프레임워크가 포함되어 애플리케이션 생성을 용이하게 한다. 이것들은 일반적으로 하드웨어 플랫폼 및 운영 체제 조합에 따라 다르다. 광고, 푸시 알림 등과 같은 고급 기능을 갖춘 애플리케이션을 만들려면 대부분의 응용 소프트웨어 개발자는 특정 소프트웨어 개발 키트를 사용한다.

일부 SDK는 플랫폼별 앱 개발에 필요하다. 예를 들어, 자바 플랫폼에서 안드로이드 앱을 개발하려면 자바 개발 키트가 필요하다. iOS 애플리케이션(앱)에는 iOS SDK가 필요하다. 유니버설 윈도우 플랫폼에는 .NET 프레임워크 SDK가 사용될 수 있다. 또한 추가 기능을 추가하고 앱에 설치하여 분석, 애플리케이션 활동에 대한 데이터 및 수익화 옵션을 제공할 수 있는 SDK도 있다. 이러한 유형의 SDK의 주요 제작자로는 구글, 스마토, 인모비, 페이스북이 있다.

 상세 
SDK는 특정 프로그래밍 언어와 인터페이스하거나 코틀린 (프로그래밍 언어)과 같은 SDK 기반 언어를 안드로이드 개발에 사용하는 데 사용되는 재사용 가능한 함수의 온디바이스 라이브러리 형태의 응용 프로그래밍 인터페이스 형태를 취할 수 있거나, 특정 임베디드 시스템과 통신할 수 있는 하드웨어별 도구만큼 복잡할 수 있다. 일반적인 도구에는 디버깅 기능과 기타 유틸리티가 포함되며, 종종 통합 개발 환경으로 제공된다. SDK에는 샘플 소프트웨어 및 기술 노트와 함께 설명서, 기본 참조 자료에서 설명하는 요점을 명확히 하는 데 도움이 되는 튜토리얼이 포함될 수 있다.

SDK에는 종종 호환되지 않는 라이선스 하에 개발될 소프트웨어를 구축하는 데 부적합하게 만드는 라이선스가 포함된다. 예를 들어, 독점 SDK는 일반적으로 자유 소프트웨어 개발과 호환되지 않으며, GNU 일반 공중 사용 허가서에 따라 라이선스된 SDK는 법적인 이유로 독점 소프트웨어 개발과 호환되지 않을 수 있다. 그러나 GNU 약소 일반 공중 사용 허가서 하에 구축된 SDK는 일반적으로 독점 개발에 사용할 수 있다. 기본 기술이 새로운 경우, SDK에 하드웨어가 포함될 수 있다. 예를 들어, 에어태그(AirTag)의 2012년 근거리 무선 통신 SDK에는 필요한 하드웨어 스택의 결제 및 판독 부분이 모두 포함되었다.

평균 안드로이드 모바일 앱은 15.6개의 개별 SDK를 구현하며, 게임 앱은 평균 17.5개의 다른 SDK를 구현한다. 안드로이드 모바일 앱에 가장 인기 있는 SDK 범주는 분석 및 광고이다.

SDK는 안전하지 않을 수 있다 (앱 내에서 구현되지만 별도의 코드를 실행하기 때문이다). 악성 SDK(선의로든 아니든)는 사용자의 데이터 프라이버시를 침해하고, 앱 성능을 손상시키거나, 심지어 앱이 구글 플레이 또는 앱 스토어에서 금지될 수도 있다. 새로운 기술은 앱 개발자가 클라이언트 SDK를 실시간으로 제어하고 모니터링할 수 있도록 한다.

특정 시스템 또는 서브시스템용 SDK 공급자는 때때로 소프트웨어 대신 더 구체적인 용어를 사용한다. 예를 들어, 마이크로소프트와 Citrix는 모두 장치 드라이버 개발을 위한 드라이버 개발 키트를 제공한다.

 예시 
다양한 플랫폼을 위한 소프트웨어 개발 키트의 예시는 다음과 같다:
 아미가OS NDK
 안드로이드 NDK
 iOS SDK
 자바 개발 키트
자바 웹 서비스 개발 팩
 마이크로소프트 윈도우 SDK
VaxTele SIP 서버 SDK
Visage SDK
 Vuforia
 윈도우 앱 SDK
엑스박스 개발 키트

 같이 보기 
 게임 개발 키트
 위젯 툴킷

 각주 


분류:소프트웨어 개발
분류:라이브러리