1. API (Application Programming Interface)
컴퓨터나 컴퓨터 프로그램 사이의 연결이다.
일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다.
컴퓨터와 인간을 연결시키는 UI (User Interface)와 반대로, API는 컴퓨터나 소프트웨어를 서로 연결한다.
Google API, Kakao API, Riot API 등 기업이 제공하는 REST API를 이용하여
개발하는 소프트웨어와 기업에서 개발한 소프트웨어나 오픈 소스를 연결하여
다양한 기능의 소프트웨어를 편리하게 개발할 수 있다.
2. SDK (Software Develoment Kit)
소프트웨어 개발 도구 모음이라고도 한다.
API, IDE, 문서, 라이브러리, 코드 샘플 및 기타 유틸리티가 포함될 수 있다.
프로그램 및 응용 프로그램 개발의 복잡성을 줄이는 강력한 기능 집합이다.
즉, 어떤 소프트웨어를 만들기 위한 도구 모음을 SDK라고 한다. 그리고 이 도구엔 API도 포함되어 있다.
3. Library
소프트웨어 개발에서 자주 쓰고 기초적인 함수들을 중복 개발하는 것을 피하기 위해서
표준화된 함수 및 데이터 타입을 만들어서 모아 놓은 것이다.
여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀,
미리 작성된 코드, 서브루틴(함수), 클래스, 값, 자료형 사양을 포함할 수 있다.
실제 실행되어 기능을 수행하는 단편화된 프로그램이라는 점이 API와 다르다.
이런 라이브러리는 언제 메인 프로그램에 연결하느냐에 따라서 Static Link와 Dynamic Link로 나뉘며,
스태틱 링크는 컴파일 시점에 라이브러리가 링커에 의해 연결되어 실행 파일의 일부분이 된다.
그러나 다이나믹 링크는 각 실행 파일에서 해당 라이브러리의 기능을 사용 시에만,
라이브러리 파일을 참조하여(혹은 다운로드받아) 기능을 호출한다.
C++을 예시로 들면 MFC, DirectX, STL, Boost 등을 주로 사용한다.
4. Framework
정의된 API를 제공하는 라이브러리의 모음
라이브러리와 달리 애플리케이션의 틀과 구조를 결정할 뿐만 아니라, 그 위에 개발된 개발자의 코드를 제어함.
소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.
라이브러리는 코드 안에서 호출하여 사용하지만 프레임워크는 코드를 호출한다.
라이브러리와 코드는 행동을 정의하고 프레임워크는 큰 틀에서 통제 흐름을 제어한다.
즉, 라이브러리 보다 상위의 그룹이다.
'Computer Science' 카테고리의 다른 글
[추천 시스템] 추천 알고리즘 평가 방법 (0) | 2023.02.21 |
---|---|
[추천 시스템] 추천 알고리즘 종류 (0) | 2023.02.21 |
[추천 시스템] 추천 시스템이란? (0) | 2023.02.21 |
[Computer Science] 자료 구조(Data structure) 란? (0) | 2022.04.07 |
[Computer Science] 알고리즘(Algorithm) 이란? (0) | 2022.04.07 |