1.API
- API란?
Application Programming interface 의 약어이다. 이때 interface는 서로 다른 두개의 시스템, 장치사이에서 정보나 신호를 주고 받는 경우의 접점이다. 컴퓨터 시스템끼리 정보를 교환하는 경계이다. 접속, 연결, 상호작용을 위한 존재들이라고 생각하면 된다. 즉, API는 응용프로그램에서 사용할수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 말한다. 그리고 데이터를 주고 받기 위한 방법과 규격을 뜻한다고도 할 수 있다.
API는 여러서버와 데이터베이스 등에 대해서 출입구 역할을 해주기도 하며, 허용된 사람들에게만 접근성을 부여해줄 수도 있다. 또 사용하는 API가 같다면 API가 통신 규격을 표준화했기 때문에 하드웨어에 상관없이 데이터를 주고 받을 수 있다.
- API의 종류
API의 종류는 public , partner, private 로 나뉘는데 public은 거의 다 무료로 쓸 수 있는 API 이고 제공자가 API를 공개한다. private API는 회사 개발자가 자체 제품과 서비스를 개선하기 위한 API로 제공자가 API 를 공개하지 않는다. partner API는 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있다. API는 문서를 공개하지 않으면 사용할 수 없다. API는 규격과 방법을 알려줄 뿐 API가 어떻게 만들어졌는지는 알려주지 않기 때문이다.
- 사용하는 이유
가져다 쓰는 API 기능을 어떻게 구현하는지 몰라도 된다. 그냥 API가 제공해주는 걸 사용만 하면 된다. 이처럼 API는 처음부터 개발하거나 유지보수할 필요가 없는 외부 데이터와 기능에 접속할 수 있게 해준다. 그리고 API는 모든 접속을 표준화하기 때문에, 기계, 운영체제등과 상관없이 누구나 동일한 접근권한을 얻을 수 있다. 때문에 API를 사용하면 개발에 필요한 시간과 비용을 절약할 수 있다. 정해져 있는것을 쓰기 때문에 협업에도 용이하다. 또 API를 사용함으로서 제품의 유연성을 높이고 설계와 관리, 사용방법을 간소화 하여 좀 더 품질을 높일 수 있다.
2.SDK
SDK란?
sdk는 SoftWare Development Kit 의 약자로 소프트웨어 개발 모음 이라는 뜻이다. 즉, 개발에 필요한 것들의 집합이다.
여러 도구의 모음이기때문에 여러가지가 포함될 수 있다. 예를 들어 API, IDE, 문서, 라이브러리, 코드 샘플등도 포함될 수 있다. SDK는 단일 패키지에 모두 통합되어 있다. 이런 SDK는 개발의 복잡함과 시간을 줄여주고 개발의 편리성을 높여준다.
3.SDK 와 API
SDK와 API의 차이를 비교하는것은 그다지 적절해보이지는 않을것 같다. 대부분의 SDK는 API가 포함되어있기 때문이다.
API는 핵심 언어를 구성하는 라이브러리 세트이고 SDK는 API 사용을 용이하게 하는 개발키트라고 할 때, 내 생각에 굳이 차이점을 짚는다면 사용 목적에 있지 않을까 싶다. SDK는 말 그대로 도구모음이다. 그 모음에는 API가 없을 수도 있다. SDK는 통신과 규격에 목적이 있지 않다. 오로지 개발자의 편의성에 목적이 있다. 하지만 API의 존재 목적은 개발의 편의성도 있지만 그보다 데이터 통신의 규격화와 표준화에 맞춰져 있지 않나 싶다.
참고
https://www.ibm.com/cloud/blog/sdk-vs-api
https://dev-dain.tistory.com/50
https://www.redhat.com/ko/topics/api/what-are-application-programming-interfaces
'참고자료' 카테고리의 다른 글
MIME 이란? Content-type 이란? (0) | 2023.09.26 |
---|---|
인코딩은 무엇이며 BASE 64 인코딩이란 무엇일까? (0) | 2023.09.15 |
blocking 과 non blocking (0) | 2022.01.27 |
웹서버 nginx (0) | 2022.01.27 |
포워드 프록시 와 리버스 프록시 (0) | 2022.01.26 |