Terminology
( API , SDK ) vs. ( Framework vs. Library )
박빅백
2020. 10. 6. 17:09
API ( Application Programming Interface )
- 운영체제가 응용프로그램을 위해 제공하는 함수의 집합으로 응용프로그램과 디바이스를 연결해주는 역할을 한다.
- 응용프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
- 개발자가 공개적으로 노출한 멤버들을 사용하여 기능에 접근하고, 해당 기능을 구현하는데 사용된 코드를 숨길 수 있는 인터페이스.
- API 제작자는 누군가 쉽게 데이터베이스나 기능을 사용할 수 있도록 모듈화하여 만들어 두었다. API사용자(개발자)는 API에 대한 정보가 필요할 때 DB에 접속하여 정보를 가져오는 것이 아닌 getInfo같은 API를 통해 정보를 가져오게 된다. 수정이나 삭제 등의 작업도 이와 같이 동작한다.
SDK ( Software Development Kit )
- 소프트웨어 개발 도구 모음. SDK안에는 개발에 도움이 될 개발 도구 프로그램, 디버깅 프로그램, 문서, API등이 있다.
- SDK 안에는 개발에 도움이 될 개발도구 프로그램, 디버깅 프로그램, 문서. API등이 있다.
- 소프트웨어를 개발하기 위한 공구박스(?)
- ex) Android SDK, JDK, IOS SDK, NET Framework SDK, Facebook SDK ...
Framework ( Software Faramework )
- 정의된 API를 제공하는 Software Library의 모음
- Library와 달리 Application의 틀과 구조를 결정할 뿐만 아니라, 그 위에 개발된 개발자의 코드를 제어함.
Library ( Software Library )
- 컴퓨터 프로그램에서 자주 사용되는 부분 프로그램들을 모아 놓은 것.
- 정적, 동적(링크, 로드) 라이브러리로 나뉨.
Framework vs. Library
Framework Code가 나의 코드를 호출함.
나의 코드가 Library Code를 호출함.
▶Framework vs. Library 분석.
Framework code : 통제 흐름을 정의
Your code : 행동을 정의
Library code : 행동을 정의
Framework와 Library의 차이점은 Control에 관한 것. 통제의 흐름(Flow of Control)이 그 차이이다.
Framework는 나의 Application의 흐름을 통제하고, Library는 그러지 않는다.