소프트웨어 개발 키트
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
소프트웨어 개발 키트(SDK)는 소프트웨어 개발을 위한 도구 모음이다. SDK는 라이선스에 따라 자유 소프트웨어 개발이나 독점 소프트웨어 개발에 적합하지 않을 수 있다. SDK는 특정 시스템이나 서브 시스템을 위해 존재하며, 운영체제 및 플랫폼, 게임 개발, 기타 다양한 분야에서 사용된다. 안드로이드, iOS, Windows, Java 등이 대표적인 SDK를 제공하며, 언리얼 개발 키트, Xbox 개발 키트, PlayStation Mobile SDK 등 게임 개발을 위한 SDK도 존재한다.
더 읽어볼만한 페이지
- 소프트웨어 개발 키트 - 퀵타임
퀵타임은 1991년 애플에서 처음 출시된 멀티미디어 프레임워크로, 다양한 기능 업데이트를 거치며 발전했으나 애플의 소극적인 지원으로 쇠퇴하였고, 비디오 및 오디오 트랜스코딩, 코덱 지원 등의 특징을 가지며 퀵타임 플레이어를 통해 다양한 파일 형식을 재생할 수 있도록 지원했으나, 2016년 4월 윈도우 버전 지원이 중단되었다. - 소프트웨어 개발 키트 - 넷빈즈
넷빈즈는 1996년 자바 IDE 학생 프로젝트로 시작되어 썬 마이크로시스템즈를 거쳐 아파치 소프트웨어 재단에 기증된 오픈 소스 통합 개발 환경(IDE)으로, 다양한 언어를 지원하고 GUI 디자인 도구, 프로파일러 등 기능을 제공하며 자바 VM 운영체제에서 동작한다. - 소프트웨어 개발 - 유스 케이스
유스 케이스는 시스템과 액터 간 상호작용을 통해 시스템 목표 달성에 기여하는 동작들을 나타내는 요구 사항 캡처, 모델링, 명세 기법으로, 객체 지향 소프트웨어 공학에서 기능 요구 사항을 캡처하는 데 중요한 역할을 하며 다양한 분야에서 활용된다. - 소프트웨어 개발 - 사용자 경험 디자인
사용자 경험 디자인은 인간 공학에 기반하여 제품 또는 서비스와 사용자 간의 상호작용을 설계하는 분야이며, 사용자 조사, 인터랙션 디자인, 사용성 테스트 등을 통해 효율적이고 만족스러운 경험을 제공하는 것을 목표로 한다. - 라이브러리 - 바이너리 재컴파일러
- 라이브러리 - 동적 링크 라이브러리
동적 링크 라이브러리(DLL)는 윈도우 운영체제에서 프로그램 실행 시 필요한 코드와 데이터를 제공하며, 여러 프로그램에서 공유되어 메모리 효율성을 높이고 모듈성을 향상시키는 라이브러리 형식이다.
소프트웨어 개발 키트 | |
---|---|
개요 | |
유형 | 소프트웨어 개발 도구 모음 |
상세 정보 | |
정의 | 특정 소프트웨어 플랫폼용 애플리케이션을 개발하는 데 필요한 도구 모음 |
구성 요소 | 디버거 컴파일러 링커 |
API 문서 | API 사용법 설명서 |
관련 도구 | 추가 소프트웨어 샘플 코드 기술 노트 |
활용 분야 | |
주요 사용처 | 특정 운영 체제나 하드웨어 플랫폼에서 실행되는 애플리케이션 개발 |
예시 | 안드로이드 SDK 윈도우 SDK |
API와의 관계 | |
차이점 | SDK는 개발에 필요한 도구 모음이며, API는 특정 기능이나 데이터에 접근하기 위한 인터페이스임 |
API 포함 여부 | SDK는 종종 API를 포함하지만, API 자체가 SDK는 아님 |
참고 사항 | |
개발 플랫폼 | SDK는 특정 개발 플랫폼에 종속적임 |
사용자 정의 | 개발자는 SDK를 사용하여 자신의 애플리케이션에 필요한 기능을 추가할 수 있음 |
2. 상세
SDK는 일반적으로 API 형태로 제공되며, 특정 프로그래밍 언어를 위한 인터페이스를 정의한 파일 집합이나, 임베디드 시스템과 통신하기 위한 하드웨어 관련 도구를 포함할 수 있다.[1][2] 일반적인 SDK에는 디버거를 포함한 유틸리티, IDE, 샘플 코드, 기술 문서, 자습서 등이 포함된다.[3][4][5]
SDK는 마케팅 도구로 활용되기도 하는데, 특정 제품에서 작동하는 프로그램을 개발하여 판매하려는 사람들이 대상 제품을 구매하도록 유도하는 효과를 가진다. SDK가 무료로 제공되면 제품 구매 장벽이 낮아지기 때문이다.
평균 안드로이드 모바일 앱은 15.6개의 SDK를 구현하며, 게임 앱은 평균 17.5개의 SDK를 구현한다.[10][11] 안드로이드 앱에서 가장 많이 사용되는 SDK는 분석 및 광고 관련 SDK이다.[11] 악성 SDK는 사용자 데이터 개인 정보 보호를 침해하거나 앱 성능을 저하시키며, 심하면 앱이 구글 플레이나 앱 스토어에서 금지될 수도 있다.[12]
마이크로소프트나 시트릭스와 같이 특정 시스템 또는 하위 시스템용 SDK 제공업체는 '소프트웨어' 대신 다른 용어를 사용하기도 한다. 예를 들어, 마이크로소프트는 장치 드라이버 개발을 위한 드라이버 개발 키트(Driver Development Kit)를 제공한다.[13][14]
2. 1. 라이선스 문제
SDK는 특정 라이선스가 설정되어 있어, 해당 라이선스와 호환되지 않는 라이선스로 소프트웨어를 개발하려는 경우 문제가 발생할 수 있다.[6][7] 예를 들어, 독점 SDK는 자유 소프트웨어 개발에 적합하지 않으며, GPL SDK는 독점 소프트웨어 개발에 적합하지 않을 수 있다. 그러나 LGPL로 구축된 SDK는 일반적으로 독점 개발에 사용할 수 있다.[8]3. 종류
SDK는 특정 API 형태를 취하거나, 특정 임베디드 시스템과 통신할 수 있는 하드웨어 관련 도구를 포함하기도 한다.[2] 일반적인 소프트웨어 개발 도구에는 디버거 및 기타 유틸리티 프로그램이 포함되며, 통합 개발 환경으로 제공되는 경우가 많다.[3] SDK에는 샘플 소프트웨어나 기술 노트, 자습서 등 참조 자료가 포함될 수 있다.[4][5]
SDK는 특정 시스템이나 서브 시스템을 위한 경우가 많으며, 제공업체는 '소프트웨어' 대신 다른 용어를 사용하기도 한다. 예를 들어, 마이크로소프트는 장치 드라이버 개발을 위한 드라이버 개발 키트(DDK)를 제공했었고, 시트릭스도 같은 용어를 사용한다.[13][14] 팜 소스는 팜 OS 개발 키트(PDK)를 제공했다.
3. 1. 운영체제 및 플랫폼 SDK
3. 2. 게임 개발 SDK
3. 3. 기타 SDK
- Microsoft의 DirectX SDK[15]
- Eclipse Foundation의 이클립스 SDK
- 오토데스크의 FBX SDK
- 소니의 넷 하려고!
4. 한국 관련 SDK
1990년대 후반부터 한국의 IT 산업이 급성장하면서 다양한 SDK가 개발 및 활용되기 시작했다. 특히, 모바일 게임 산업의 발전과 함께 안드로이드 및 iOS SDK의 활용이 두드러졌다. 넥슨, 넷마블, 엔씨소프트 등 주요 게임 개발사들은 자체 SDK를 개발하거나 외부 SDK를 활용하여 게임 개발 효율성을 높이고 있다.
최근에는 인공지능, 빅데이터, 클라우드 컴퓨팅 등 신기술 분야의 성장에 따라 관련 SDK의 중요성이 더욱 커지고 있다. 네이버, 카카오 등 주요 IT 기업들은 자사 플랫폼의 기술을 활용할 수 있는 SDK를 공개하여 개발자 생태계를 확장하고 있다.
한국 정부는 소프트웨어 산업 육성을 위해 다양한 지원 정책을 펼치고 있으며, SDK 개발 및 활용을 장려하는 정책도 포함되어 있다.
4. 1. 비판적 관점
일부 SDK는 개발자의 데이터를 과도하게 수집하거나 개인정보를 침해할 수 있다는 비판을 받는다.[12] 악의적인 SDK는 사용자의 데이터 개인 정보 보호를 위반하거나, 앱 성능을 저하시키고, 심지어 앱이 구글 플레이나 앱 스토어에서 금지될 수 있다.[12]SDK의 라이선스 정책 또한 문제가 될 수 있다. SDK는 호환되지 않는 라이선스 때문에 해당 소프트웨어 개발에 적합하지 않은 경우가 많다.[6] 예를 들어, 독점 SDK는 자유 소프트웨어 개발과 호환되지 않으며, GNU 일반 공중 사용 허가서가 적용된 SDK는 법적 이유로 독점 소프트웨어 개발과 호환되지 않을 수 있다.[6][7]
특정 플랫폼에 종속적인 SDK는 개발자가 다른 플랫폼으로 확장하는 것을 어렵게 만들 수 있다는 문제점도 제기된다.
참조
[1]
웹사이트
What is the Difference Between an API and an SDK?
https://nordicapis.c[...]
Nordic APIs AB
2018-07-05
[2]
서적
Proceedings International Test Conference 2000 (IEEE Cat. No.00CH37159)
[3]
서적
Android Application Development All-in-One For Dummies
https://books.google[...]
John Wiley & Sons
[4]
서적
Next Generation Mobile Communications Ecosystem: Technology Management for Mobile Communications
https://books.google[...]
John Wiley & Sons
[5]
서적
SharePoint 2010 Development For Dummies
https://books.google[...]
John Wiley & Sons
[6]
웹사이트
No, Google is not making the Android SDK proprietary. What's the fuss about?
https://www.zdnet.co[...]
CBS Interactive
2018-07-05
[7]
웹사이트
Sony's legal quest to remove its leaked developer's kit from the Web
https://arstechnica.[...]
Condé Nast
2018-07-05
[8]
웹사이트
A Primer on Open Source Software for Business People and Lawyers
http://www.wipo.int/[...]
Leonard, Street and Deinard
2018-07-05
[9]
웹사이트
Airtag releasing NFC mobile payments developer kit, wishes Apple would help simplify the ecosystem
https://venturebeat.[...]
2012-10-16
[10]
웹사이트
The All-Star Winners of Mobile App Tools (SDKs)
http://blog.safedk.c[...]
[11]
웹사이트
All iOS and Android 3rd Platform SDKs
https://fork.ai/tech[...]
[12]
웹사이트
Hundreds Of Apps Banned From App Store For Accessing Users' Personal Information
https://techcrunch.c[...]
2015-10-19
[13]
웹사이트
Windows Driver Kit documentation
https://docs.microso[...]
Microsoft
2018-07-05
[14]
웹사이트
Driver Development Kit - For XenServer 6.2.0 Service Pack 1 with Hotfix XS62ESP1062
https://support.citr[...]
Citrix Systems, Inc
2018-07-05
[15]
문서
System Extension - Apple Developer
https://developer.ap[...]
[16]
서적
CCNA Data Center DCICT 640-916: Official Cert Guide
https://books.google[...]
Cisco
[17]
웹인용
SDK (software development kit)
https://www.gartner.[...]
Gartner, Inc
2018-07-05
[18]
웹인용
What is the Difference Between an API and an SDK?
https://nordicapis.c[...]
Nordic APIs AB
2018-07-05
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com