공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것을 의미한다. 폴더명, 파일명 등에 대한 규칙이 없고 프레임워크에 비해 자유롭다. 예를 들어 무언가를 자를 때 '도구'인 '가위'를 사용해서 '내가' 직접 컨트롤하여 자르는데,ㅣ 라이브러리는 이와 비슷하다.
라이브러리는 표준
, 런타임
라이브러리 두 개로 나눌 수 있습니다.
표준 라이브러리
: 특정 언어의 개발 환경에 기본적으로 포함된 것들
런타임 라이브러리
: 프로그램들이 실제 환경에서 실행되기 위해 필요한 모듈들
공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것을 의미한다. 폴더명, 파일명 등에 대한 규칙이 있으며 라이브러리에 비해 좀 더 엄격하다. 다른 곳으로 이동할 때 '도구'인 비행기를 타고 이동하지만 '비행기'가 컨트롤하고 나는 가만히 앉아 있어야 한다. 프레임워크는 이와 비슷하다.
둘의 차이점은 "코드 흐름 제어권"이 누구에게 있는가에 있습니다. 즉, 애플리케이션의 흐름(Flow)를 누가 제어하는지에 달려 있습니다.
Framework
는 전체적인 흐름을 자체적으로 가지고 있으며, 개발자가 프레임워크 안에 필요한 코드를 작성하는 반면에 library
는 사용자가 전체적인 흐름을 제어하며 필요한 상황에 직접 호출하는 것입니다.
제가 생각한 라이브러리와 프레임워크는 개발자가 직접 호출하여 사용하는 함수의 집합이면 라이브러리, 개발자가 구현한 함수가 프레임워크에 의해 호출된다면 프레임워크입니다.
안드로이드를 기준으로 Activity 클레스는 onCreate 반드시 구현해야합니다.
이것은 라이브러리가 아니라 프레임워크입니다!