프레임워크와 라이브러리(Framework & Library)
프레임워크란?
프레임워크란 어떠한 응용 프로그램이나 소프트웨어의 개발을 더욱 수월하게 하기 위해 제공되는 개발 환경으로, 하나의 뼈대라고 생각하면 된다. 즉, 개발자가 어떠한 프레임워크 내에서 그 프레임워크가 요구하는 조건과 로직에 맞춰 코드를 작성하면 프레임워크는 그에 따른 결과물을 만들어준다고 생각하면 된다.
자바스크립트 프레임워크의 예시
Node.js, AngularJS, Vue.js, Next.js, Bootstrap, Express.js
라이브러리란?
라이브러리란 개발 시 사용되는 특정 기능이나 코드들이 모듈화 된 형태로 제공되어 개발자가 필요한 상황에 맞춰 선택하여 사용할 수 있는 코드 집합체이다. 즉, 개발자는 자신의 환경에 맞는 라이브러리를 가져와 필요한 부분에 능동적으로 적용하여 개발을 진행하게 된다.
자바스크립트 라이브러리의 예시
jQuery, React.js, Moment.js, Chart.js, Animate.css
프레임워크와 라이브러리의 차이
-
제어(호출)의 주체 프레임워크는 개발자에게 프레임워크가 제공하는 환경과 뼈대에 맞춰 필요한 코드를 작성하도록 요구한다는 점에서 제어의 주체가 프레임워크라고 볼 수 있다. 반면에 라이브러리는 개발자가 자신의 환경과 필요에 맞춰 라이브러리를 조합하고 분리하며 적용하고 호출·제어할 수 있다는 점에서 제어의 주체가 개발자라고 볼 수 있다.
-
독립성 프레임워크는 재사용 가능한 코드들을 하나로 묶어 처음부터 제공해주기 때문에 각각의 묶음들은 독립적이기 보단 서로 유기적으로 연결되어 있다. 그렇기 떄문에 개발자는 프레임워크가 제시하는 사용법과 틀에 맞춰 묶음들을 조합하여 코드를 작성하면 프레임워크가 이를 실행해준다. 반면에 라이브러리는 각각의 라이브러리가 독립적으로 제작되어 있고 호출되기 때문에 개발자가 이 라이브러리들의 동작 방식과 동작 환경을 이해하고 있어야 하고, 이들을 직접 유기적으로 연결시켜줘야만 코드가 제대로 작동한다.