상위 질문
타임라인
채팅
관점
소프트웨어 개발 키트
위키백과, 무료 백과사전
Remove ads
소프트웨어 개발 키트(software development kit, SDK)는 소프트웨어를 개발하기 위한 소프트웨어 개발 도구들을 하나의 설치 가능한 패키지로 모아 놓은 것이다. 여기에는 컴파일러, 디버거 및 때때로 소프트웨어 프레임워크가 포함되어 애플리케이션 생성을 용이하게 한다. 이것들은 일반적으로 하드웨어 플랫폼 및 운영 체제 조합에 따라 다르다. 광고, 푸시 알림 등과 같은 고급 기능을 갖춘 애플리케이션을 만들려면 대부분의 응용 소프트웨어 개발자는 특정 소프트웨어 개발 키트를 사용한다.
일부 SDK는 플랫폼별 앱 개발에 필요하다. 예를 들어, 자바 플랫폼에서 안드로이드 앱을 개발하려면 자바 개발 키트가 필요하다. iOS 애플리케이션(앱)에는 iOS SDK가 필요하다. 유니버설 윈도우 플랫폼에는 .NET 프레임워크 SDK가 사용될 수 있다. 또한 추가 기능을 추가하고 앱에 설치하여 분석, 애플리케이션 활동에 대한 데이터 및 수익화 옵션을 제공할 수 있는 SDK도 있다. 이러한 유형의 SDK의 주요 제작자로는 구글, 스마토, 인모비, 페이스북이 있다.
Remove ads
상세
SDK는 특정 프로그래밍 언어와 인터페이스하거나 코틀린 (프로그래밍 언어)과 같은 SDK 기반 언어를 안드로이드 개발에 사용하는 데 사용되는 재사용 가능한 함수의 온디바이스 라이브러리 형태의 응용 프로그래밍 인터페이스[1] 형태를 취할 수 있거나, 특정 임베디드 시스템과 통신할 수 있는 하드웨어별 도구만큼 복잡할 수 있다.[2] 일반적인 도구에는 디버깅 기능과 기타 유틸리티가 포함되며, 종종 통합 개발 환경으로 제공된다.[3] SDK에는 샘플 소프트웨어 및 기술 노트와 함께 설명서, 기본 참조 자료에서 설명하는 요점을 명확히 하는 데 도움이 되는 튜토리얼이 포함될 수 있다.[4][5]
SDK에는 종종 호환되지 않는 라이선스 하에 개발될 소프트웨어를 구축하는 데 부적합하게 만드는 라이선스가 포함된다. 예를 들어, 독점 SDK는 일반적으로 자유 소프트웨어 개발과 호환되지 않으며, GNU 일반 공중 사용 허가서에 따라 라이선스된 SDK는 법적인 이유로 독점 소프트웨어 개발과 호환되지 않을 수 있다.[6][7] 그러나 GNU 약소 일반 공중 사용 허가서 하에 구축된 SDK는 일반적으로 독점 개발에 사용할 수 있다.[8][9] 기본 기술이 새로운 경우, SDK에 하드웨어가 포함될 수 있다. 예를 들어, 에어태그(AirTag)의 2012년 근거리 무선 통신 SDK에는 필요한 하드웨어 스택의 결제 및 판독 부분이 모두 포함되었다.[10]
평균 안드로이드 모바일 앱은 15.6개의 개별 SDK를 구현하며, 게임 앱은 평균 17.5개의 다른 SDK를 구현한다.[11][12] 안드로이드 모바일 앱에 가장 인기 있는 SDK 범주는 분석 및 광고이다.[12]
SDK는 안전하지 않을 수 있다 (앱 내에서 구현되지만 별도의 코드를 실행하기 때문이다). 악성 SDK(선의로든 아니든)는 사용자의 데이터 프라이버시를 침해하고, 앱 성능을 손상시키거나, 심지어 앱이 구글 플레이 또는 앱 스토어에서 금지될 수도 있다.[13] 새로운 기술은 앱 개발자가 클라이언트 SDK를 실시간으로 제어하고 모니터링할 수 있도록 한다.
특정 시스템 또는 서브시스템용 SDK 공급자는 때때로 소프트웨어 대신 더 구체적인 용어를 사용한다. 예를 들어, 마이크로소프트[14]와 Citrix[15]는 모두 장치 드라이버 개발을 위한 드라이버 개발 키트를 제공한다.
Remove ads
예시
다양한 플랫폼을 위한 소프트웨어 개발 키트의 예시는 다음과 같다:
같이 보기
- 게임 개발 키트
- 위젯 툴킷
각주
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads