로그인 / 등록 Account

클라우드 네이티브 애플리케이션

SDK란?

Jump to section

소프트웨어 개발 키트(Software Development Kit, SDK)는 (일반적으로) 하드웨어 플랫폼, 운영 체제(Operatting System, OS) 또는 프로그래밍 언어 제작사가 제공하는 일련의 툴입니다. 소프트웨어 개발자는 SDK를 활용하여 특정 플랫폼, 시스템 또는 프로그래밍 언어에 따라 애플리케이션을 개발할 수 있습니다. 이를 직접 조립할 수 있는 옷장에 포함되어 있는 도구 키트라고 생각하시면 쉬울 것 같습니다. SDK는 애플리케이션 개발에 사용된다는 것만 다를 뿐입니다. 작업 완료에 필요한 요소 또는 개발 툴은 제공되지만 키트에 포함된 내용물은 제작사마다 다릅니다. 

일반적으로 기본 SDK에는 컴파일러, 디버거, 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)가 포함되지만, 다음 중 한 가지도 포함될 수 있습니다.

  • 설명서
  • 라이브러리
  • 편집기
  • 런타임/개발 환경
  • 테스트/분석 툴
  • 드라이버
  • 네트워크 프로토콜

양질의 SDK라면 개발자가 특정 제품 및 에코시스템을 위한 새로운 애플리케이션을 개발할 때 필요할 수 있는 모든 구성 요소를 제공할 것입니다. 일부 SDK에는 개발자가 최대한 빨리 시작할 수 있도록 예시 또는 기본 테스트 프로젝트도 포함되어 있습니다.

소프트웨어 개발 키트의 몇 가지 예로 Java 개발 키트(Java Development Kit, JDK), Windows 7 SDK, MacOS X SDK, iPhone SDK를 들 수 있습니다. 구체적인 예를 들자면, 쿠버네티스 오퍼레이터 SDK는 개발자가 자기만의 쿠버네티스 오퍼레이터를 개발하는 데 도움이 됩니다. 이 SDK에는 상위 수준의 API, 스캐폴딩 및 코드 생성용 툴, 그리고 공통된 오퍼레이터 활용 사례를 포괄하는 확장 기능이 포함되어 있습니다. 

새 모바일 애플리케이션이나 프로젝트를 소스 텍스트 수준에서 커맨드라인으로 연결하기 위해 대부분의 SDK에는 API가 포함되어 있습니다. 코드 샘플도 포함된 경우가 많은데, 이 코드에서 제공하는 예시 프로그램 및 라이브러리는 개발자가 기본 프로그램 빌드 방법을 학습하는 데 도움이 됩니다. 이를 출발점으로 삼아 개발자는 최적화 및 복잡한 애플리케이션을 더욱 쉽게 개발하게 될 수 있을 뿐만 아니라, 필요에 따라 디버깅하고 새로운 기능을 추가할 수 있습니다.

일부 SDK에는 API 사용법에 관한 설명서뿐 아니라 튜토리얼, FAQ, 샘플 그래픽이 포함되어 있는데, 그 이유는 개발자가 새 SDK를 사용하는 방법을 배우는 데 시간이 걸릴 수 있기 때문입니다. 따라서 직관적인 프로그래밍 또는 사용자 인터페이스(또는 더 광범위한 설명서)는 개발자가 경쟁업체의 옵션 대신 한 업체의 특정 프로그램을 사용하도록 권장할 때 유용합니다.

마찬가지로 기업은 SDK를 활용하여 개발자들에게 제품을 소개하고 자사 플랫폼이나 OS를 사용해 통합된 개발 환경에서 애플리케이션을 개발하도록 권장할 수 있습니다. 이러한 이유로 대부분의 SDK는 무료로 사용할 수 있으므로 개발자는 SDK를 다운로드하여 즉시 프로그래밍을 시작할 수 있습니다. 

고려할 사항  

일부 SDK에는 사용 전에 미리 동의하고 제출해야 하는 규칙이나 계약이 있을 수 있습니다. 특히 알파 또는 베타 단계에 있는 신제품이나 일반에 공개되지 않은 알고리즘(오픈소스가 아님)이 포함된 소프트웨어인 경우 그렇습니다. SDK에는 새로 개발된 소프트웨어가 호환되지 않는 라이센스로 릴리스되지 않도록 라이센스 계약이 적용될 수도 있습니다.

개발자는 작업에 사용할 SDK를 선택할 때 이러한 점을 고려해야 합니다. 예를 들면 다음과 같습니다.

  • 독점 라이센스가 있는 SDK는 오픈소스 소프트웨어 개발과 호환되지 않습니다.
  • GPL(General Public License)이 있는 SDK는 독점 애플리케이션 개발에 사용할 수 없습니다.
  • 독점 코드 요소가 있는 프로젝트를 위해 LGPL(Lesser General Public License)을 피해 작업할 경우 주의해야 할 사항이 있습니다. 

Red Hat을 선택해야 하는 이유

오픈소스 애플리케이션을 아마추어와 전문가들이 지속적으로 개발하는 이유는 SDK가 새로운 설계 및 기능 확장을 코딩하여 이를 커뮤니티와 공유하는 것을 염두에 두고 있기 때문입니다. 

Red Hat은 최상의 툴, 솔루션, 서비스를 통합하여 애플리케이션을 개발하며, 이를 오픈소스 방식으로 실현하고 있습니다. 애플리케이션을 빌드할 플랫폼(Red Hat OpenShift) 또는 런타임 환경(Red Hat Runtimes), 애플리케이션을 개발, 디버그, 테스트, 배포하는 데 필요한 모든 툴을 갖춘 개발 환경(Red Hat CodeReady Studio) 등 Red Hat은 다양한 지원을 제공합니다.

API 설명서 및 SDK 생성 자동화의 더 큰 가능성을 살펴보세요