API
API는 Application Programming Interface의 약자입니다. 인터페이스는 두 가지 시스템이 상호 작용할 수 있는 지점을 의미합니다. API는 이러한 상호 작용을 위한 통로로 생각할 수 있습니다.
API는 서로 다른 두 애플리케이션이 데이터를 주고받고 서비스를 공유할 수 있도록 연결해주는 역할을 합니다. 예를 들어, 페이스북의 공유하기 기능을 티스토리 블로그 페이지에서 사용하고 싶다고 가정해봅시다. 이때 API를 사용하면 티스토리와 페이스북이 연결되어, 티스토리 블로그 페이지에서 공유하기 버튼을 누르면 페이스북 서버와 통신하여 해당 기능을 실행할 수 있습니다.
간단히 말하면, API는 다른 애플리케이션의 기능을 가져와 우리가 원하는 방식으로 사용할 수 있도록 도와주는 도구라고 할 수 있습니다. 이를 통해 비개발자도 다른 애플리케이션의 기능을 활용할 수 있게 되며, 서로 다른 시스템 간의 상호 작용을 가능하게 합니다.
SDK
SDK는 Software Development Kit의 약자입니다. 이는 소프트웨어를 개발하는 동안 사용되는 도구 모음을 의미합니다.
API가 다른 애플리케이션의 기능을 연동하여 사용하는 개념이라면, SDK는 그 이상의 개발을 가능하게 해주는 도구입니다. 예를 들어, 페이스북의 좋아요 기능에 대한 API와 SDK가 있다고 가정해봅시다. API는 "좋아요 기능을 사용할 수 있도록 연동해주세요"라는 제공된 기능을 제공합니다. 하지만 SDK는 "좋아요 기능을 만들기 위해 필요한 모든 도구와 자료를 제공하므로, 개발자는 원하는 대로 기능을 만들어볼 수 있습니다"라는 개발을 위한 재료를 제공합니다.
SDK는 특정 목적을 가진 소프트웨어 개발에 필요한 여러 모듈, 샘플 코드, 설명서 등이 포함되어 있어, 개발 과정에서 필수적으로 활용됩니다.
쉽게 이해할 수 있도록 말하자면, SDK는 개발자가 소프트웨어를 개발하는 동안 필요한 도구 모음이라고 생각할 수 있습니다. 이 도구 모음은 원하는 기능을 만들기 위해 필요한 자료와 도움을 제공하여 개발자가 자유롭게 원하는 소프트웨어를 만들 수 있도록 도와줍니다. 예를 들면, 자바 개발을 위한 JDK(Java Development Kit)나 안드로이드 앱 개발을 위한 ADK(Accessory Development Kit) 등이 SDK의 예시입니다. 이러한 SDK들은 개발자들이 소프트웨어를 만들 때 필요한 도구들을 포괄하는 개념이라고 할 수 있습니다.
API와 SDK가 혼동되는 이유
- API와 SDK는 서로 밀접하게 관련되어 있습니다: API는 애플리케이션 간 상호 작용을 위한 인터페이스를 제공하며, SDK는 소프트웨어 개발을 위한 도구 모음입니다. API는 SDK의 일부로 제공될 수 있기 때문에, 두 용어가 함께 언급되고 혼용되는 경우가 많습니다.
- 개발자를 대상으로 하는 용어들이기 때문에 비개발자에게는 낯선 개념일 수 있습니다: API와 SDK는 주로 소프트웨어 개발 과정에서 사용되는 용어들이기 때문에, 비개발자에게는 낯선 개념일 수 있습니다. 이로 인해 이해하기 어려울 수 있고, 두 용어가 서로 혼동되는 경우가 있을 수 있습니다.
- API와 SDK가 서로 다른 관점을 가지고 있기 때문입니다: API는 애플리케이션 간의 상호 작용을 중심으로 설계되었으며, 주로 외부 개발자들이 다른 시스템의 기능을 활용하기 위해 사용합니다. 반면에 SDK는 개발자들이 소프트웨어를 개발하기 위한 도구 모음으로서, API뿐만 아니라 추가적인 개발 도구, 문서, 샘플 코드 등을 제공합니다. 이러한 차이로 인해 두 용어가 혼동될 수 있습니다.
요약하자면, API와 SDK는 밀접한 관련이 있으며, 개념적으로는 서로 다른 측면을 갖고 있습니다. 이로 인해 비개발자에게는 낯선 개념으로 다가올 수 있으며, 두 용어가 함께 언급되고 혼용되는 경우가 있을 수 있습니다.
'IT > etc..' 카테고리의 다른 글
자주 쓰는 명령어 git - branch 생성 (0) | 2023.11.14 |
---|---|
Airflow error (api_key) (0) | 2023.09.07 |
(seleniumwire) install (0) | 2023.05.10 |
(conda) 자주 쓰는 명령어 모음 (0) | 2023.05.04 |
GitHub- 깃허브 레파지토리 복구 (0) | 2023.04.25 |