뭔가 오랜만에 포스팅을 하는 듯한 느낌이네요...
블로그에 잘못된 정보도 몇몇 있고 중구난방인 느낌이라 조만간 정리를 한 번 해야할 것 같습니다 😅
아무튼 오늘은! 그간 헷갈렸던 API, SDK, Framework, Library 의 차이점에 대해 정리해보도록 하겠습니다.
API
Application Programming Interface 의 약자입니다.
응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스를 뜻합니다.
한 마디로 누군가가 쓸 수 있도록 제공하는 것이라고 할 수 있습니다. 프로그램 사이에서 연결을 시켜주는 다리인 셈입니다.
예시) API 명세서, Open API (지도 API, 쇼핑 API 등)
때문에 외부에서 호출하여 사용할 수 있도록 만들어졌습니다.
예시) Open API (= 앱이나 웹에서 파라미터를 붙이는 식으로 호출해 사용)
특징
- 구현과 독립적으로 사양만 정의되어 있다.
- API에 따라 접근 권한이 필요할 수 있다.
SDK
Software Development Kit의 약자입니다. (= 소프트웨어를 만드는 키트)
API를 담고 있습니다.
Library
도서관이라는 의미입니다. (장난입니다...)
응용 프로그램 개발을 위해 필요한 기능(= 함수)들을 모아 놓은 소프트웨어를 뜻합니다.
때문에 API를 모은 것도 하나의 라이브러리가 될 수 있습니다.
특징
- 독립성을 가진다 (해당 라이브러리는 다른 라이브러리를 의존하지 않으므로)
- 필요 시 응용 프로그램이 능동적으로 라이브러리를 사용한다
Framework
frame (틀, 뼈대) + work (일(하다))
응용 프로그램이나 소프트웨어 솔루션 개발을 수월하게 하기 위해 제공된 소프트웨어 환경을 뜻합니다.
개발자는 이 틀 위에서 원하는 작업을 수행하기 위한 코드를 작성하면 됩니다.
특징
- 상호협력하는 클래스와 인터페이스의 집합이다.
- 응용 프로그램이 수동적으로 프레임워크에 의해 사용된다 (= 프레임워크가 할 일을 다 한 다음에 → 개발자가 작성한 코드를 호출)
정리
라이브러리와 API의 차이점은 구현 로직의 유무
라이브러리와 프레임워크의 차이점은 응용 프로그램의 주도권을 누가 가지고 있느냐
아래 링크를 참고하여 정리했습니다 🙇♀️
[10분 테코톡] 🙆♀️티버의 API vs Library vs Framework
'공부 > computer science' 카테고리의 다른 글
OSI Model (TCP/IP Model) 과 TCP/UDP (0) | 2022.09.11 |
---|---|
[컴퓨터네트워크] 2. Network edge, Network core (0) | 2022.08.06 |
[컴퓨터네트워크] 1. 인터넷이란? (1) | 2022.08.06 |
override할 때 super를 꼭 붙여줘야 할까? (2) | 2022.04.03 |
비동기 처리하는 이유 (3) | 2022.03.18 |
댓글