🪴 라이브러리란
라이브러리란 특정 기능을 수행하는 코드의 집합으로, 개발자가 필요에 따라 라이브러리를 선택하여 사용할 수 있습니다.
따라서 라이브러리를 사용하는 상황이라면 애플리케이션의 흐름을 제어하는 것은 개발자입니다.
- F-Lab
라이브러리는 특정 기능을 모듈화 한 것으로, 이미 작성된 변수나 함수, 클래스를 포함하고 있습니다.
라이브러리는 애플리케이션의 구성요소가 되며, 적용되는 대상에서 바로 실행될 수 있는 형태로 제공됩니다.
따라서 개발자는 목적에 따라 필요한 라이브러리를 고르고 설치하여 프로젝트에 적용시킵니다.
개발자가 먼저 프로젝트의 흐름을 구성하고, 구현 과정에서 필요한 라이브러리를 가지고 와서 사용하게 되는 것입니다.
쉬운 예시로 많이 소개되는 것은 라이브러리를 가구에 비유하는 예시입니다.
예를 들어, 밥 먹을 곳이 필요하여 4인용 식탁을 들이기로 하였습니다.
이때 우리는 보통 식탁이 필요하다고 해서 목재를 직접 고르거나 가공하지 않고, 이미 만들어져 있는 식탁 중에서 마음에 드는 것을 골라 구입합니다. 그리고 이것을 집 구조에 맞게 벽에 붙여 사용할지, 네 면을 모두 띄워 사용할지 선택합니다.
위의 예시에서 이미 만들어져 있는 식탁이 곧 라이브러리이고,
밥을 먹기 위함이 라이브러리를 사용하는 목적,
집 구조에 맞게 배치하는 것이 사용자가 흐름의 주도성을 갖고 있다는 라이브러리의 특징이 됩니다.
대표적인 라이브러리의 종류는 다음과 같습니다.
- 자바스크립트: React, axios, jQuery
- 파이썬: NumPy, Pandas, PyTorch, matplotlib
- C: OpenGL, libgit2
- C++: MFC, Qt, DirectX, Boost
🪴 프레임워크란
프레임워크란 말 그대로 애플리케이션의 구조나 틀을 제공하는 것으로, 개발을 위한 기본적인 형태와 필수 요소를 포함하고 있습니다.
구조 및 틀이 존재하기 때문에 개발자는 프레임워크가 정한 규칙과 구조에 맞춰 개발을 진행해야 합니다.
따라서 프레임워크를 사용하는 상황이라면 애플리케이션의 흐름을 제어하는 것은 프레임워크입니다.
- F-Lab
프레임워크는 애플리케이션을 개발할 때 요구되는 필수적인 코드나 알고리즘, 또는 데이터베이스 연동과 같은 기능을 위해 뼈대를 일부 제공합니다.
이렇게 프레임워크가 틀을 갖춰 놓으면, 개발자는 그 틀 안에서 프레임워크가 제시하는 규칙에 따라 필요한 코드를 구현하게 되는 것입니다.
라이브러리와 마찬가지로 쉬운 예시로 많이 소개되는 것은 프레임워크를 집에 비유하는 예시입니다.
예를 들어, 이미 만들어진 집은 초기 설계에 따라 주방은 주방으로, 안방은 안방으로, 화장실은 화장실로, 제공되는 공간의 특성에 맞게 가구와 짐을 배치하여 사용해야 합니다.
식탁을 벽에 붙일지 말지 정도는 우리가 정할 수 있지만, 공간의 용도 자체를 바꾸어 식탁을 화장실에 두지는 못합니다.
위의 예시에서 이미 만들어져 있는 집이 곧 프레임워크이고,
공간에 주어진 주방/안방/화장실이라는 용도가 프레임워크의 규칙,
사용자는 식탁이 있어야 할 주방 안에서 식탁의 배치 정도만 정하는 것이 프레임워크가 흐름의 주도성을 가지고 있다는 특징이 됩니다.
대표적인 프레임워크의 종류는 다음과 같습니다.
- Next.js
- Angular
- Vue.js
- Bootstrap
- JWT
- Spring
- Apache
읽어주셔서 감사합니다:)