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 (앱...