Software Development Kit (SDK)의 정의
SDK는 특정 플랫폼 또는 서비스용 애플리케이션을 개발하는 데 사용할 수 있는 도구, 라이브러리 및 프로그램 세트이다.
최신 소프트웨어 개발에서 SDK와 API는 가장 많이 접하게 되는 주요 도구라 할 수 있다.
SDK와 API는 많은 공통점을 가지고 있기 때문에 어떻게 다른지에 대한 혼란이 생길 수 있지만, 본질적으로 SDK와 API 모두 보다 쉽게 애플리케이션의 기능을 향상시키기 위한 툴이라고 봐야 한다. 따라서, 내부 시스템 및 최종 사용자 경험(UX)을 개선하기 위해 두 도구가 백엔드에서 어떻게 작동하는지, 어떻게 다른지, 전체 개발 프로세스에 어떻게 기여하는지 이해하는 것이 더 중요하다고 할 수 있다.
Web API의 특징과 장단점
Web API는 웹 서버 또는 웹 브라우저용 애플리케이션 프로그래밍 인터페이스(Application programming interface) 입니다. 일반적으로 웹 개발 개념으로서 웹 애플리케이션의 클라이언트와 서버라는 두 소
jsonm.tistory.com
SDK는 DevKit이라고도 불리우며 목적이나 프로바이더에 따라 각기 다른 형태로 사용되고 배포되기 때문에 Standardized 되었다고 볼 수는 없지만 최대한 일반적인 내용들을 살펴보면 아래와 같다.
SDK에 전형적으로 포함되는 리소스들
- 코드 라이브러리(프레임워크)는 사용자가 기본 플랫폼과 상호 작용하고 해당 기능을 활용할 수 있도록 하는 기능입니다.
- 코드 샘플은 애플리케이션 또는 웹 페이지의 구체적인 예를 제공합니다.
- 컴파일러는 프로그래밍 언어 코드를 번역하고 소스 코드를 개체 코드로 변환합니다.
- 디버거는 플랫폼 또는 서비스 관련 문제를 식별하는 데 도움이 됩니다.
- 설명문서에는 개발에 도움이 되는 사용 지침, 방법 가이드, 모범 사례 및 코드 샘플이 포함됩니다.
SDK 사용방법
SDK는 소프트웨어 개발자가 소프트웨어 응용 프로그램을 보다 표준화된 방식으로 더 빠르게 구축할 수 있도록 하는 포괄적인 도구 모음을 제공합니다. 그렇기 때문에 굉장히 단순화되어 있는 형태로 작동하며 작동 방식은 다음과 같습니다.
- 플랫폼용 "키트"를 구매 또는 무료 다운로드 및 설치합니다(예: 미리 만들어진 파츠, 예제 및 매뉴얼).
- 통합 개발 환경(IDE)부터 시작하여 새 애플리케이션을 구축하는 데 필요한 모든 API와 모든 개발 도구를 활용. 이것은 실제 코딩을 수행하고 컴파일러가 있는 공간입니다.
- 매뉴얼, 문서, 코드 샘플 및 테스트 도구를 사용하여 빌드를 수행하면 개발팀이 보다 간편하고 순조롭게 개발을 시작 할 수 있습니다.
SDK의 장점 (Benefits of Software Development Kits):
- SDK 제공 기능에 Direct Access. SDK 플랫폼의 기능에 직접 액세스하고 애플리케이션 내에서 사용할 수 있습니다.
- 간단한 통합 및 빠른 개발. SDK는 필요한 모든 통합 및 개발 라이브러리를 제공합니다.
- 이미 개발되어 있는 기능 활용. SDK를 사용하면 개발자가 SDK를 호출하기만 하면 되므로 플랫폼과 상호 작용하기 위해 처음부터 함수를 생성할 필요가 없으므로 개발 시간이 대폭 단축됩니다.
- 효율적인 자원 조달 및 비용. 이렇게 짧고 빠른 개발 주기는 효율적인 리소스 관리와 개발 비용 절감으로 이어집니다.
- 다양한 옵션. 대부분의 플랫폼이 다양한 프로그래밍 언어에 대한 SDK를 제공하므로 개발자는 개발에 선호하는 언어를 사용할 수 있습니다.
- 강력한 기술 지원 및 자원. SDK는 설명서 및 코드 샘플과 함께 제공되므로 개발자가 사용 방법을 쉽게 배울 수 있습니다. 또한 대부분의 일반적인 SDK는 광범위한 커뮤니티 및 포럼을 가지고 있기 때문에 간단한 검색 쿼리로 개발 문제에 대한 답변을 쉽게 찾을 수 있습니다.
SDK의 사용 예 (Examples & usage)
- JSON 및 JDK(Java Developer Kit)와 같은 프로그래밍 언어별 SDK는 능률적이고 표준화된 방식으로 해당 언어로 프로그램을 개발하는 데 사용됩니다.
- Android 및 iOS 플랫폼용 모바일 애플리케이션 개발을 위한 Google의 Android SDK 및 Apple의 iOS SDK.
- Microsoft Windows 및 Apple macOS용 데스크탑 애플리케이션 개발을 위한 Microsoft의 .NET SDK 및 macOS SDK.
- 각각의 클라우드 플랫폼 개발을 위한 Amazon Web Services SDK, Microsoft Azure SDK 및 Google Cloud SDK.
- OpenAI SDK, AI용 Qualcomm Neural Processing SDK, AI 애플리케이션 개발을 위한 Vertex AI.
- 결제 서비스 애플리케이션에 통합된 Stripe SDK 및 Paypal SDK
'IT 지식' 카테고리의 다른 글
RFC 7523 - JWT 인증 방식의 특징, OAuth 2.0과의 관계 (0) | 2023.06.02 |
---|---|
Open API와 OpenAPI의 개념과 차이 (0) | 2023.05.27 |
REST API의 개념과 동작 방식 (0) | 2023.05.27 |
Web Server 와 Web Application Server (WAS) 란? (1) | 2023.05.22 |
API gateway와 Microgateway란? 개념 및 특징 (0) | 2023.05.18 |