API, SDK(JDK, ADK) 차이

API와 SDK는 이미 만들어진 기능을 제 3자의 개발에 활용할 수 있다는 공통점이 있습니다. API는 완성품을 사용할 수 있도록 도와주는 인터페이스이고, SDK는 완성품을 원하는대로 만들 수 있도록 도와주는 개발 도구입니다.

API

API는 Application Programming Interface의 약자입니다. 인터페이스는 접촉면이라는 뜻을 가지고 있습니다. 결국 애플리케이션을 프로그래밍하는 접촉면이라고 해석할 수 있겠죠. API는 서로 다른 두 애플리케이션이 통신할 수 있도록 연결해주는 통로입니다. 예를 들어, 페이스북 공유하기 기능을 제공하는 API를 티스토리 블로그 페이지에서 사용할 수 있도록 연동하는 식입니다. 이때 공유하기라는 이미 만들어진 기능을 가져다 쓰는 한편, 해당 버튼을 눌렀을 때 페이스북 서버와 통신을 하게 됩니다.

 

API에 대해 좀 더 궁금하시면 아래 내용을 참고하셔도 좋을 거 같습니다.

SDK

SDK는 Software Development Kit의 약자입니다. 말 그대로 소프트웨어를 개발할 때 사용하는 도구 모음(키트)입니다. API가 만들어진 걸 연동하는 개념이라면, SDK는 API의 한계를 넘어서서 독자적으로 원하는 개발이 가능합니다. 예를 들어, 페이스북 좋아요 기능에 대한 API와 SDK가 있다면, API는 "좋아요 기능을 만들어 놨으니까 연동해서 사용하세요"인 반면 SDK는 "좋아요 기능을 만들기 위해 필요한 재료를 드릴 테니까 원하는 대로 만들어보세요"인 것이죠. SDK는 특정 목적을 가진 개발에 필요한 모듈, 샘플 소스, 매뉴얼 등이 포함된다는 점에서 반드시 필요하다고 볼 수 있습니다.

 

SDK의 예시로는 자바 개발에 사용되는 JDK(Java Development Kit), 안드로이드 개발에 사용되는 ADK(Accessory Development Kit) 등이 있습니다. 즉, SDK는 이러한 개발 키트를 포괄하는 상위 개념입니다.

API와 SDK가 헷갈리는 이유

API는 SDK에 포함되는 경우가 많습니다. 생각해보면 자연스러운 현상이죠. 개발 키트에는 이미 만들어진 기능과 통신해서 사용하는 부분이 포함될 수도 있으니까요. 이런 이유로 제 3자의 개발을 돕는 API와 SDK는 종종 함께 언급되고, 둘의 개념이 다르지만 헷갈리는 거 같습니다.

반응형

댓글

Designed by JB FACTORY