라이브러리와 프레임워크
라이브러리와 프레임워크 되게 많이 듣는 단어인데요. 비슷한 거 아닌가? 생각이 들지만 조금씩 차이가 있습니다. 오늘은 그 차이에 대해서 설명하려고 합니다.
프레임워크는 원하는 기능을 개발할 수 있도록 필요한 기능을 가지고 있는 뼈대입니다.
라이브러리는 개발을 할 때 특정 기능을 모아둔 코드, 함수들의 집합을 말합니다.
쉽게 얘기하면 프레임워크는 하나의 방, 라이브러리는 하나의 소품이라고 할 수 있는 것입니다.
라이브러리란?
라이브러리는 내가 원하는 걸 가져다 쓸 수 있다는 장점이 있지만 양이 많기 때문에 찾는 시간이 오래 걸리는 단점도 가지고 있습니다.
- 프로그래밍을 할 때 활용할 수 있는 도구들의 집합이다.
- class나 function으로 정의하며 필요할 때 호출해서 사용한다.
- 라이브러리는 코드의 전체적 흐름에 영향을 주지 않기 때문에 주도권은 라이브러리가 아닌 사용자에게 있다.
프레임워크란?
프레임워크는 필요해 보이는 라이브러리를 미리 다 설치해 놓았기 때문에 새로운 라이브러리를 설치하기보단 기존에 설치된 라이브러리를 이용하는 방식입니다.
- 정해진 규칙이 있어 그 틀을 지키여 프로그램을 짜야한다.
- 목적에 따라 프레임워크를 다르게 써야 한다.
- 프레임워크의 규칙을 따라야 하기 때문에 주도권은 사용자보단 프레임워크에 있다.
프레임워크와 라이브러리의 종류
프레임워크와 라이브러리의 종류가 무엇이 있을까요?
프레임워크 | 라이브러리 |
Vue.js Angular Express Spring Django Larabel |
jQuery npm모듈 React |
그렇다면 node.js는 프레임워크인가요? 라이브러리인가요?라고 묻는다면 둘 다 해당하지 않습니다.
node를 플랫폼이라 표현을 했었는데요 플랫폼은 프로그램 실행 할 수 있는 환경을 말하는데 이는 프레임워크를 사용할 수 있게 환경을 말합니다. 즉, 프레임워크랑은 다른 개념입니다.
프레임워크는 방, 라이브러리는 소품이라고 했는데 node.js와 같은 플랫폼은 방을 짓는 땅이라고 할 수 있습니다.
또 하나, Vue나 Angular는 프레임워크인데 React는 왜 프레임워크가 아닌가요?라고 생각할 수 있는데요.
MVC, MVW와 구조를 사용하는 Vue나 Angular와 다르게 React는 오로지 V(view)만을 신경 쓰는 라이브러리입니다.
제어의 역전
제어의 역전이란 객체나 메서드의 제어를 개발자가 아닌 외부에 위임하는 설계 원칙을 말하는데요. 프레임워크가 대표적인 예시라고 할 수 있습니다.
쉽게 말하자면 방을 청소하기 위해 일반청소기를 구매해서 내(개발자)가 청소기를 제어하여 청소를 하는 게 일반적인 제어라면, 일반청소기 대신에 로봇청소기(프레임워크)를 구매하게 되면 청소하는 주체가 나에서 로봇청소기로 바뀌고 이때 제어의 역전이 일어나게 되는 것입니다.
나(개발자)를 중심으로 내가 제어를 하는 쪽이 라이브러리, 나 대신 제어를 하는 게 프레임워크가 되는 것입니다.
'개발지식' 카테고리의 다른 글
env 환경변수 (0) | 2023.12.25 |
---|---|
code refactoring (0) | 2023.12.12 |
CS[Computer Science]가 무엇일까? (0) | 2023.12.05 |
REST API와 RESTful API (0) | 2023.12.05 |
API(Application Programming Interface) (0) | 2023.12.04 |