기타/면접 준비

7. Framework와 Library 차이점

hrming 2022. 4. 30. 18:56

Framework(프레임워크)

프레임워크는 뼈대나 기반구조를 뜻합니다.

프로그래밍을 진행할 때 필수적인 코드, 알고리즘 등과 같이 어느 정도의 구조를 제공해주기 때문에 프레임워크를 사용하는 프로그래머는 이 프레임워크의 뼈대 위에서 코드를 작성하여 프로그램을 개발하면됩니다.

즉 간단하게 프레임워크는 완성된 제품이 아닌 완성된 제품을 만들기 위해서 개발자를 도와주는 또는 기반이 되는 역할을 합니다. 이를 소프트웨어적으로 다시 정의하면 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합입니다.

프레임워크 예시)

- Java 개발자라면 Spring

- Python 개발자라면 Django

- JavaScript 개발자라면 Node.js

- PHP 개발자라면 Laravel

 

프레임워크의 특징

- 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있습니다.

- 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의합니다.

- 컴포넌트들은 재사용이 가능합니다.

- 높은 수준에서 패턴들을 조작화 할 수 있습니다.

 


라이브러리(Library)

라이브러리는 단순 활용가능한 도구들의 집합

프로그래머가 어떠한 기능을 수행하기 위해서 도움을 주는 또는 필요한 것을 제공해주는 역할

즉, 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식을 말합니다

 

라이브러리 예시

- 가장 유명한 자바스크립트 라이브러리는 jQuery입니다. (간혹 프레임워크라고 소개되는 곳이 있는데 공식 사이트에서도 라이브러리로 명시되어 있습니다.)

- 그래픽 사용자 인터페이스(Graphical user interface , GUI)에서 재사용하기 쉽게 버튼, 테이블 같은 구성 요소를 호출해서 쓸수 있도록 분리해두었다면 라이브러리입니다.

- Windows에서 간혹 보았을 dll 확장자는 동적 링크 라이브러리(dynamic-link library, DLL)의 약자로 라이브러리라고 할수 있습니다.

- 객체지향 프로그래밍(object-oriented programming, OOP)은 기본적으로 각 기능마다 함수화하는 것으로 클래스 라이브러리라고 할수도 있습니다.


Framework Vs Library

​프레임워크와 라이브러리의 차이점은 흐름을 누가 지니고 있냐의 차이입니다.

프레임워크는 전체적인 흐름을 자체적으로 가지고 있어 프로그래머는 그 안에서 필요한 코드를 작성합니다.

반면에 라이브러리는 프로그래머가 전체적인 흐름을 가지고 있어 라이브러리를 자신이 원하는 기능을 구현하고 싶을 때 가져다 사용할 수 있다는 것이죠.

 

프레임워크가 집이라면, 라이브러리는 집에 있는 가구들


* 프레임워크 : 특정 프로그램을 개발하기 위한 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램

* 라이브러리 : 프로그램을 개발하기 위해 쓰는 공구와 같은 도구들

 

* 공통점 : 프로그램을 쉽게 만들 수 있게 하는 공통된 목적이 있음

* 차이점 : 자유도, 프레임워크는 꼭 써야되는 것과 지켜야되는 룰이 있다. 라이브러리는 쓰든 안 쓰든 자기 마음이다.

 


출처: https://inpa.tistory.com/entry/👩‍💻-프레임워크-라이브러리-차이-정리#thankYou [👨‍💻 Dev Scroll]