라이브러리 vs 프레임워크(Feat, React)

김민석·2024년 10월 24일

1. 라이브러리(Library)

Library는 코드 내에서 사용하려고 설치하는 것이지만, 사용의 주체는 사용자

라이브러리(Library)란 개발자가 만든 클래스들의 나열로, 다른 프로그램들에서 사용할 수 있도록 제공하는 방식이다.

2. 프레임워크(Framework)

프레임워크(Framework)는 프레임워크가 직접 사용자의 코드를 사용한다, 사용의 주체는 프레임워크

일반적인 관점에서 "라이브러리"와 "프레임워크"라는 개념을 햇갈리기 쉽다고 생각한다.
정확히는 설명해보라고 해보면 비슷하긴한데 뭔가 다른것? 이라고 짚고 넘어가는 사람도 많다. (내 이야기임)


검색을 통해서 나온 예시 중에 제일 쉽게 이해가는 예시는 다음과 같았다.

프레임워크는 어떤 집의 뼈대 가깝다. 프레임워크를 사용하더라도 수정가능한 범위는 제한적이다.
방과 기둥의 위치, 방의 구조나 방의 개수 등 집을 이루는 기본적인 구조자체는 수정할 수 없고 사용자가 통제권을 가지지 않는다.

라이브러리는 그 집에 들어가는 가구나 구조물에 가깝다. 누군가가 만들어 둔 것 을 가져와서 본인 입맛에 맞춰서 개조하거나, 원하는 용도대로 사용할 수 있다. 어떤 가구나 구조물의 재료나, 용도를 사용자가 직접 선택해서 사용할 수 있으므로 사용자가 통제할 수 있다.



자바스크립트로 예시를 들자면

라이브러리: JQuery, React, axios
프레임워크: Node.js의 Express.js, NestJS, NextJs

이렇게 있다고 생각하는데, 약간의 의문이 생겼다.



React가 라이브러리라고?

근데 Next.js는 왜 프레임워크임?





해당 부분이 궁금해서 검색해보니 결과는 다음과 같았다.

  1. React는 많은 내장기능이 부족하다. (다른 패키지에 의존성이 높다)
  • 가장 기초적인 routing부터 시작해서 api를 호출하기 위해 Axios나 fetch API를 사용해야 한다.
  1. 애플리케이션 개발을 위한 생태계를 완벽하게 제공하지 않으며, 디자인 시스템도 제공하지 않는다.
  • 기본적인 구조 자체는 제공해주지만 React에서 무언가를 할 수 있는 "올바른" 방법은 존재하지 않으며, 가이드도 존재하지 않는다. 즉 모든 React 프로젝트는 완벽하게 다를 수 있다.
  1. React는 무언가가 할 수 있는 옵션이 많고, 패키지를 선택해야하며, 모든 프로젝트에 적합한 설계 시스템을 직접 만들어야 한다.




Next.js는 React와 다르다

Next.js는 라우팅, SSR, API관리, 이미지최적화 등 많은 내장 기능을 제공하는 React.js의 프레임워크다!! 라고 정리할 수 있다.

profile
web development 주니어

0개의 댓글