Study/Basic

API와 SDK

작은별._. 2025. 2. 3. 19:53
728x90

기술 면접에서도 가끔 등장하고, 개발자라면 알아야 하는 필수 개념입니다. API와 SDK 가 무엇인지 알아보고, 차이점이 무엇인지 정리하였습니다.

API와 SDK는 뭘까?


우선 API와 SDK를 풀어쓰면 아래와 같아요.

Application Programming Interface
응용 프로그램 인터페이스
Software Development Kit
소프트웨어 개발 키트



이제 각 기능을 설명하기 위해 시스템 A가 있다고 가정을 해 보고 각 개념을 정리해 보겠습니다.

API

다른 시스템들이 시스템 A의 특정 기능을 사용하고 싶어 합니다. 이를 위해 시스템 A에서 인터페이스를 정의해 두면, 다른 시스템들은 해당 인터페이스를 사용하여 A에서 제공하는 기능을 사용할 수 있게 됩니다. 여기서 인터페이스가 바로 API를 의미합니다.

즉, API는 특정 기능을 외부에서 사용할 수 있도록 개방함으로써 다른 소프트웨어, 시스템, 서비스가 상호작용할 수 있도록 인터페이스를 제공하는 것이 그 목적입니다.

비유를 들자면, API는 콘센트와 같은 개념으로, 벽에 있는 콘센트 (인터페이스)에 맞는 플러그 (API 호출)를 꽂으면 전기(데이터 또는 기능)를 사용할 수 있게 되는 것이죠.

SDK

SDK 또한 API처럼 다른 시스템들이 시스템 A에서 제공하는 기능들을 사용하기 위함입니다.

그렇지만 SDK는 개발 생산성을 높이기 위해서 API 뿐만 아니라 라이브러리, 도구, 샘플 코드 등을 모아서 제공하는 kit입니다. 즉, API 사용을 쉽게 만들고 개발 속도를 높이면서 특정 기능을 쉽게 구현할 수 있도록 도와주는 개발 kit (모음집)인 것이죠.

비유를 들자면, 조립 기트와 같습니다. 가구를 만들 때 필요한 나무, 못 망치 (=라이브러리, 샘플 코드, 도구)를 한 번에 제공하는 것입니다.


정리하자면, API는 특정 기능을 열어주는 역할로, 기능을 호출할 수 있도록 하는 인터페이스이고, SDK는 그 기능(API)을 쉽게 활용할 수 있도록 도와주는 도구 모음입니다. SDK가 API보다 좀 더 상위 개념으로 SDK가 API를 포함한다라고 할 수 있습니다.

 

언제 사용할까?

API

1) 간단한 기능이 필요할 때
  - 굳이 SDK를 설치할 필요 없이 API 만 호출하면 충분할 때
2) 커스텀 구현이 필요할 때
- SDK는 일반적인 사용 방법을 제공하지만, 특수한 요구사항이 있으면 직접 API를 호출하여 customize 하는 것이 유리합니다.
3) SDK가 제공되지 않을 경우
- 신규 프로그래밍 언어 또는 제한된 환경에서 개발할 때 간혹 SDK 가 제공되지 않는 경우가 있습니다.
4) 가벼운 실행 환경이 필요할 때
- SDK는 여러 기능을 포함하고 있어 용량이 클 수 있으므로, 제한된 리소스를 가진 환경에서는 API만 호출하는 것이 더 효율적입니다.

SDK

1) 빠르고 쉽게 개발하고 싶을 때
  - API 호출을 간편한 함수로 제공하므로 직접 HTTP 요청을 구현할 필요가 없다는 장점이 있습니다.
2) 복잡한 인증 과정이 필요한 경우
  - API를 직접 사용하면 OAuth, JWT 등의 인증을 직접 처리해야 합니다. 하지만, SDK는 이를 자동으로 처리해 줍니다.
3) 추가 도구가 필요할 때
  - 디버깅 도구, 예제 코드, 문서 등이 포함되어 있어 개발이 편리합니다.
4) API 호출이 많고 최적화가 필요할 때
  - SDK는 API 호출을 내부적으로 최적화하여 성능을 높이는 경우가 많습니다. 예를 들어, API 요청을 자동으로 retry 하거나, 여러 요청을 batch 처리하여 성능을 개선하는 기능을 제공하죠. 반면에, API를 직접 사용하는 경우 개발자가 이를 직접 처리해야 합니다.

 

개발을 진행할 때, 제한적인 환경이 아니라면 SDK 사용을 먼저 고려하는 것이 개발의 생산성을 높이는 데 도움이 되지 않을까 생각합니다.

728x90
반응형