본문 바로가기
Web Programing

프레임워크와 라이브러리의 차이점

by 기록하는 초보 2024. 1. 30.
반응형

프레임워크(Framework)와 라이브러리(Library)는 개발자들에게 코드의 재사용성을 증가시키고 개발 시간을 단축시켜 주는 도구들이지만, 이 두 용어는 명확히 다른 개념을 가지고 있습니다. 이해를 돕기 위해 각각의 정의와 주요 차이점에 대해 알아보겠습니다.

 

프레임워크(Framework)란?

소프트웨어의 복잡한 문제를 해결하거나 서술하는데 사용되는 기본 개념 구조입니다. 개발에 필요한 뼈대를 제공하여 상호협력하는 클래스의 인터페이스의 집합으로 이해할 수 있습니다.

특징으로는 개발자가 따라야 하는 가이드를 제공합니다. 정해진 규칙에 따라서 개발을 진행하게 되므로 일정 수준 이상의 품질을 담보할 수 있습니다. 이러한 프레임워크의 장점으로는 개발 시간이 단축되며, 유지보수의 용이성이 있습니다. 프레임워크는 제어의 흐름을 가지고 있어 개발자는 일정한 규칙 안에서 코드를 작성해야 합니다. 이를 '제어의 역전'으로 프레임워크가 언제 개발자의 코드를 호출할지 결정합니다. 하지만 프레임워크에 대한 학습이 필요하고 너무 의존할 경우 자체적인 개발 능력이 저하할 가능성이 있는 단점이 있습니다.

예시로 Java의 Spring, Python의 Django, JavaScript의 Angular 등이 있습니다.

 

라이브러리(Library)란?

소프트웨어 개발에 흔히 사용되는 기능들을 모아 놓은 코드의 집합입니다. 필요한 기능을 미리 구현해 놓고 개발자가 요구할 때 가져다 쓸 수 있는 도구입니다.

특징으로는 개발자가 필요한 기능을 선택하여 호출하며 사용합니다. 프로그램의 흐름을 개발자가 직접 관리합니다. 이러한 필요한 기능만을 선택적으로 사용할 수 있는 장점이 있습니다.

예시로 : Phthon의 NumPy, JavaScript의 jQuery, C++의 STL 등이 있습니다,

 

프레임워크와 라이브러리 차이점

프레임워크는 라이브러리를 포함하는 좀 더 광범위한 개념이며, 구조와 패턴을 제공합니다. 반면 라이브러리는 단순히 재사용 가능한 코드의 집합이며, 개발자가 좀 더 유연하게 사용할 수 있습니다.

프레임워크는 '개발자가 프레임워크에 편입되어야 한다'는 느낌이고, 라이브러리는 '개발자가 라이브러리를 사용한다'는 느낌입니다.

프레임워크는 개발 프로젝트의 큰 그림을 설계하는 반면, 라이브러리는 프로젝트의 특정 부분에 필요한 기능만을 제공합니다.

프레임워크는 전반적인 흐름을 잡아주고, 라이브러리는 필요한 기능을 제공하는 도구 느낌입니다.

반응형