프레임워크와 라이브러리의 차이를 알아보자.
먼저 각각의 정의를 먼저 알아보자.
개발자가 소프트웨어를 개발함에 있어 코드를 구현하는 개발 시간을 줄이고, 코드의 재사용성을 증가시키기 위해 일련의 클래스 묶음이나 뼈대, 틀을 라이브러리 형태로 제공되는 것을 말한다.
제어의 역전이라는 개념이 적용된 대표적인 기술이다.
개발자가 만든 클래스들의 나열로, 다른 프로그램들에서 사용할 수 있도록 제공하는 방식이다.
프레임워크와 라이브러리의 차이점의 핵심은
제어 흐름에 대한 주도성이 누구에게 있느냐이다.프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 사용자는 그 안에서 필요한 코드를 짜 넣으며 반면에 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이라고 할 수 있다.
차이점을 집을 짓는 과정으로 비유를 들어서 쉽게 이해해보자.
프레임워크는 모델하우스에 비유할 수 있다. 모델하우스는 방의 용도, 인테리어 등 수정할 수 있는 범위가 제한적이다. 방의 개수, 기둥의 개수 등 정해져있는 뼈대는 수정할 수 없다. 프레임워크가 제공하는 틀에 따라 코드를 작성해야 하는것이다. 쉽게 생각하면 사용자가 프레임워크에 들어가서 사용하는 관점이다.
따라서 주도권이 프레임워크에게 있다.
라이브러리는 재료를 직접 사서 가구를 조립하는것에 비유할 수 있다.
집에 필요한 가구를 만들기 위해 벌목을해서 목공을 하는 등의 작업을 하지 않는다. 이케아 등 가구점에서 재료를 사서 가구를 내가 원하는대로 조립하여 사용할 수 있다.
만들어져있는 재료를 직접 사는거처럼 사용자가 필요할때마다 만들어져있는 라이브러리를 가져와서 코드를 완성시키는 느낌이다.
따라서 주도권이 사용자에게 있다.
Reference