위키백과에서 먼저 정의를 살펴보았습니다.
"라이브러리는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다.
여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴, 클래스, 값, 자료형 사양을 포함할 수 있다."
"컴퓨터 프로그래밍에서, 소프트웨어 프레임워크는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다.
간단히 뼈대, 골조, 프레임워크라고도 한다."
글만 간단히 보아도 두 개념이 많이 다른 것을 알 수 있습니다.
라이브러리는 프레임워크에 비해 작은 개념입니다.
프론트개발을 할때 쉽게 접하는 것을 예로 들어보자면 jQuery, React 같은 것들이 라이브러리입니다.
엥? 왜 React가 라이브러리이지? 프레임워크 아니었어? 하는 사람이 있을 수도 있습니다.
과거의 저도 헷갈렸었는데, 정확히 리액트의 생태계는 프레임워크이지만 리액트만은 라이브러리라고 합니다.
프레임워크로 분류되기 위해서는 필수로 충족해야하는 것들이 있습니다.
다른 많은 프레임워크들이 기본적으로 내장하고 있는 기능들말이죠.. (예를 들어 라우터 기능이라던가)
리액트에서 이러한 기능들을 구현하기 위해서는 여러가지 추가적인 라이브러리를 같이 사용해야합니다.
(react-router, react-redux, react-saga 등....)
그렇기 때문에 React는 프레임워크로 분류되지 않고 라이브러리로 분류됩니다.
물론 공식사이트에도 라이브러리로 소개되고 있습니다.^^
'개념' 카테고리의 다른 글
Redux-Saga란? (0) | 2021.05.03 |
---|---|
자바스크립트 반복기(Iterator)와 생성기(Generator) (0) | 2021.05.03 |
자바스크립트의 호출 스택(Call Stack)과 이벤트 루프(Event Loop) (0) | 2021.05.01 |
프로그래밍 패러다임(명령형 프로그램(절자적, 객채지향), 선언형 프로그램(함수형))의 정의, 특징, 비교를 간단히 알아가자 (0) | 2021.04.30 |
[DB] Sequelize seed기능을 사용해서 db에 정적인 데이터 삽입하기 (0) | 2021.04.07 |
cross-env 패키지 / webpack 설정 development와 production으로 나누기 (0) | 2021.03.31 |
Javascript로 사이트에서 메일을 발송해보자! _Contact Form 만들자_ EmailJS를 사용해보자 (0) | 2021.03.18 |
파비콘(favicon.ico) 만들기 (0) | 2021.03.16 |