SDK(System Development Kit)
- 소프트웨어 개발 도구 모음
- SDK 안에는 개발에 도움이 될 개발 도구 프로그램, 디버깅 프로그램, 문서, API 등이 있다.
API (Application Programming Interface)
- 개발자가 공개적으로 노출한 멤버들을 사용하여 기능에 접근하고, 해당 기능을 구현하는데 사용된 코드를 숨길 수있는 인터페이스
Framework
- 문제를 풀기 위한 추상적 설계를 구체화한 클래스의 집합.
- 설계, 구현을 재사용하게끔 협업화된 형태로 클래스를 제공하는 것.
- 라이브러리와 달리 앱의 틀과 구조를 결정하며, 그 위에 개발된 개발자의 코드를 제어한다.
- 구체적이고, 확장 가능한 기반 코드를 보유한다.
- 설계자가 의도하는 여러 디자인 패턴의 집합으로 구성돼있다.
Library
- 컴퓨터 프로그램에서 자주 사용되는 부분 프로그램들을 모아 놓은 것.
- 정적, 동적(링크, 로드) 라이브러리로 나뉨
- 정적 라이브러리
- 컴파일러가 소스파일을 컴파일할 때 참조되는 프로그램 모듈
- 빌드 시에 라이브러리가 제공하는 코드를 실행파일에 넣는 라이브러리
- 시스템환경이 변해도 앱에는 아무 영향 없으며, 완성된 앱을 안정적으로 사용 가능하다.
- 사용하는 모든 오브젝트 코드를 실행파일에 내장하므로, 메모리에 로드되는 앱 코드가 많아진다.
- 동적 라이브러리
- 프로그램 수행 도중 해당 모듈이 필요할 때 호출해 사용하는 프로그램 모듈
- 앱을 빌드할 때 존재하지 않던 라이브러리도 사용 가능하다.
- 플러그인 형식으로 경로를 설정해야 하며, 설치가 따로 필요하다.
- 동적 링크 라이브러리
- 실행파일과 관련된 라이브러리코드를 모두 메모리에 읽어들여 호출관계를 조정한 다음 앱이 실행된다.
- 동적 로드 라이브러리
- 실행파일 실행 시 읽어 들이지 않은 라이브러리를 추가적으로 이용하는 라이브러리
- 정적 라이브러리
Framework Library 차이
- 누가 누구를 호출하느냐의 차이이다.
- 프레임워크에서는 프레임워크 코드가 내 코드를 호출한다. (프레임워크 -> 내 코드)
- 라이브러리에서는 내 코드가 라이브러리를 호출한다. (내 코드 -> 라이브러리)
- 내 코드와 라이브러리 코드가 행동을 정의한다면, 프레임워크 코드는 통제 흐름을 정의한다.
참고
https://you9010.tistory.com/147
https://waaan.tistory.com/15
https://waaan.tistory.com/16
'Web' 카테고리의 다른 글
Local Cache, Global Cache 차이 (0) | 2020.03.05 |
---|---|
Restful API 설계하는 방법 (0) | 2020.03.04 |
HTTP/1.1 HTTP/2.0 차이 (1) | 2020.03.03 |
Apache Nginx 차이점 (0) | 2020.02.26 |
주소창에 url을 검색하면 생기는 일들 (DNS, ARP, TCP, TLS/SSL, HTTP) (0) | 2020.02.25 |