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

이 블로그의 인기 게시물

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

2025 상생페이백 사용처 조회, 편의점·주유소·병원·약국 예상금액 확인·신청·기간 정리

투자자산운용사 2026년 제 44회 시험일정 및 시험장소 총정리