소프트웨어 개발 도구

내위키
Dennis (토론 | 기여)님의 2022년 2월 2일 (수) 03:34 판

Software Development Kit.

줄여서 SDK라고 쓰며, 주로 이 이름으로 많이 쓰인다.

소프트웨어 개발에 필요한 컴파일러[1] 또는 인터프리터, 라이브러리, 디버거와 같이 소프트웨어 개발에 필요한 각종 소프트웨어와 문서 자료를 한데 묶어서 한꺼번에 설치할 수 있도록 한 것. 소프트웨어를 실행시키기 위해 가상머신과 같은 런타임 플랫폼을 필요로 하는 경우에는 이것도 포함된다. 개발 환경과 실행 환경이 다를 경우에는 두 환경을 연결하는 드라이버나 에뮬레이터도 제공한다. 예를 들어 모바일 기기용 SDK는 앱 개발은 데스크톱 컴퓨터에서 하지만 개발한 소프트웨어는 모바일 기기에서 돌려야 하므로 디버깅이나 테스트를 하려며 컴퓨터에 기기를 연결해서 실행시키거나 에뮬레이터를 띄워서 실행시켜야 한다. 그밖에도 다음과 같은 도구들도 포함될 수 있다.[2]

  • 설명서
  • 테스트 및 분석 도구
  • 편집기 (또는 통합 개발 환경)
  • 네트워크 프로토콜

만약 완전한 소프트웨어를 개발할 수 있는 라이브러리나 문서는 들어 있지만 실행이나 빌드 도구는 없다면 이는 SDK보다는 프레임워크에 가깝다. 예를 들어 스프링 프레임워크는 자바 컴파일러를 포함하고 있지 않으며 장고 프레임워크파이썬 인터프리터를 포함하고 있지 않다.[3]

API하고도 비교되는데, API는 응용소프트웨어 개발에 필요한 프로그래밍의 인터페이스만을 제공한다. 예를 들어 윈도우 API라면 윈도우 운영체제에서 굴러가는 응용프로그램을 만들기 위한 인터페이스, 즉 윈도우가 제공하는 어떤 기능을 불러다 쓰려면 어떤 함수를 불러야 하고 전달해야 할 매개변수는 뭐고 반환값이나 오류값은 무엇인지를 정해 놓은 일종의 규약이라 할 수 있다. 실제로 소프트웨어를 개발할 때에는 덜렁 API만 있으면 부족하고 소프트웨어 빌드에 필요한 도구를 포함한 SDK를 제공하는 게 보통이다.

따라서 SDK는 API 또는 프레임워크, 아니면 둘 다 포함하고 있다. 어떤 운영체제나 플랫폼 위에서 돌아가는 소프트웨어�를 개발하기 위해서는 적어도 둘 중 하나는 필요하기 때문.

각주

  1. 컴파일러로 중간 파일을 만드는 경우에는 링커가 추가로 필요하다.
  2. "SDK란?", Red Hat, 2020년 6월 10일.
  3. 장고 프레임워크파이썬과 함께 제공되는 패키지 관리 프로그램인 pip으로 설치한다.