본문 바로가기
프로그래밍/IT지식

[라이브러리 & 프레임워크] 라이브러리와 프레임워크란?

by 준보틱스 2024. 6. 22.

라이브러리

라이브러리는 프로그램의 특정 기능을 수행하도록 미리 짜여진 코드 집합이다. 즉 활용가능한 도구들의 집합을 의미한다. 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식을 취한다. 집을 짓기 위한 과정을로 비유해보면, 라이브러리는 이케아에서 산 재료로 가구를 조립하는 것에 비유할 수 있다. 집에서 사용할 가구를 조립하거나 만들기 위해 벌목부터 시작해서 목공을 하고 가죽을 얻기위해 사냥을 하는 사람은 없다. 그래서 이케아에서 기본적인 재료를 사서 취향대로 조립하고 배치할 수 있다. 재료의 선택권이나 통제권은 사용자에게 있는 것이다.

프레임워크

프레임워크는 코드의 큰 뼈대를 제공해줘서 그 뼈대에서 개발할 수 있도록 도와주는 역할을 한다. 라이브러리와 마찬가지로 개발자가 미리 만들어 놓은 코드다. 집을 짓기 위한 과정을로 비유해보면, 프레임워크는 모델하우스를 짓는것에 비유할 수 있다. 모델하우스 소파의 위치, 의자와 책상의 위치, 방의 용도 등 우리가 수정할 수 있는 범위는 제한적이다. 주방의 위치, 기둥의 개수, 방의 개수 등 집을 이루고있는 굵직한 뼈대는 수정할 수 없다. 사용자는 모델하우스가 제공하는 청사진 안에서만 움직일 수 있다. 프레임워크가 제공하는 틀에 따라 코드를 작성해야 하는 것이다. 즉, 통제권은 사용자가 아닌 프레임워크가 쥐고 있다.

프레임워크 vs 라이브러리

라이브러리를 사용할 때 사용자는 애플리케이션 코드의 흐름을 직접 제어한다. 개발 시 필요한 기능이 있을 경우 능동적으로 라이브러리를 호출하여 사용하거나 기존에 구성된 함수나 코드를 가져다 쓴다. 반면 프레임워크는 애플리케이션의 코드가 프레임워크에 의해 사용된다. 애플리케이션 코드는 프레임워크가 짜 놓은 틀에서 수동적으로 동작하기 때문에 제어의 흐름은 프레임워크가 가지고 있고 사용자가 그 안에 필요한 코드를 작성한다.

∴ 결론

프레임워크와 라이브러리는 둘 다 코드 작성에 도움이 되는 타인이 작성한 코드의 집합이다.

프레임워크는 프로그램이 필요한 것을 개발자에게 알려줌으로써 제어권을 역전하고, 라이브러리는 개발자가 필요할 때 마다 설치, 호출함으로써 개발자가 능동적으로 사용하게 된다.