Library와 SDK, API의 차이점

Library와 SDK, API는 모두 소프트웨어 개발을 돕는 도구들이지만, 그 범위와 목적에서 차이가 있습니다. 세 가지 개념은 포함 관계로 이해하면 가장 쉽습니다.

세 가지 개념의 관계 (포함 관계)

가장 넓은 범위가 SDK이며, SDK 안에 API라이브러리가 포함되는 경우가 많습니다.

SDK > API + 라이브러리 + 도구 + 문서

Library (라이브러리)

라이브러리는 특정 기능을 수행하도록 미리 작성된 코드의 집합입니다. 개발자가 반복적으로 수행해야 할 작업을 대신 해줍니다.

  • 목적: 특정 기능을 제공하여 개발 효율성을 높입니다.

  • 성격: 단일 기능 또는 제한된 기능에 초점을 맞춥니다.

  • 예시: Flutter의 http 라이브러리(네트워크 통신 기능), path_provider 라이브러리(파일 경로 접근 기능).


API (Application Programming Interface)

API는 소프트웨어 구성 요소가 서로 통신하는 데 사용하는 규칙 및 정의의 집합입니다. 라이브러리나 SDK를 통해 접근할 수 있는 '사용 설명서' 또는 '창구' 역할을 합니다.

  • 목적: 다른 시스템, 서비스, 또는 코드 블록과 상호작용하는 방식을 정의합니다.

  • 성격: 주로 메서드(함수)와 데이터 형식 등 접근 규칙을 의미합니다.

  • 예시: Google 지도 API (지도 데이터를 요청하고 표시하는 방법), 라이브러리 내의 공개 함수 이름과 사용법.


SDK (Software Development Kit)

SDK는 특정 플랫폼이나 서비스용 애플리케이션을 개발하는 데 필요한 모든 도구를 묶어 놓은 종합 선물 세트입니다.

  • 목적: 특정 환경(플랫폼/서비스)에서 앱을 만들 수 있도록 완전한 환경을 제공합니다.

  • 성격: 라이브러리, API, 문서, 샘플 코드, 에뮬레이터 등 개발에 필요한 모든 것을 포괄합니다.

  • 예시: Flutter SDK (Flutter 앱 개발 전체), Android SDK (Android 앱 개발 전체), AdMob SDK (앱에 광고를 통합하는 데 필요한 모든 도구).

요약 비교

구분범위역할예시
API가장 좁음 (규칙)소통 및 호출 규칙 정의getProducts() 함수 호출 방식
Library중간 (코드 묶음)특정 기능을 대신 수행하는 코드 제공http 통신 코드, Flame 엔진 코드
SDK가장 넓음 (종합 세트)개발에 필요한 모든 것 제공 (도구 + API + 라이브러리)Flutter SDK, Android SDK

이 블로그의 인기 게시물

블루엘리펀트 전국 쇼룸 매장 상세, 쇼룸 플래그십 매장 차이점, 부산, 광주, 대구 매장 없는 이유

스타벅스 코코말차 얼마? 가격, 맛, 칼로리 정리

인튜이션(TRUST) 코인 만든 사람?, 빌리 루에트케는 누구?