라이브러리와 프레임워크의 차이점

Yuri Lee·2020년 7월 3일
0

이 글은 노마드 코더의 라이브러리? 프레임워크? 차이점 아직도 모름? 5분 순삭.내용을 바탕으로 정리한 내용입니다.

라이브러리, 프레임워크는 둘다 다른 누군가가 쓴 코드이다. 우리의 프로젝트를 위해서 가져다가 쓰는 것이다. 우리의 코딩 삶을 윤택하게 하기 위해서 가져다 쓰는 것들!

너가 코드를 컨트롤 하는건지 vs. 누군가의 규칙을 따라 코딩하는건지

라이브러리의 가장 좋은 예시는 JQuery이다. JQuery는 웹 사이트에 인터랙티브한 요소를 넣을 수 있다. 코딩을 하다가 필요할 때 제이쿼리를 부른다. 이게 라이브러리이다. 제이쿼리를 딴 것으로 대체해도 되고, 대체는 쉽게 할 수 있다. 시간절약을 하기 위해 소환하는 것이기 때문이다.

하지만 프레임워크는 다르다. 부르는 게 아니다. 프레임워크가 나를 부르는 것이다. 프레임워크로 일할때는 프레임워크의 규칙을 따라야 한다. 프레임워크가 어디에 코드를 넣어야 하는지 등등을 알려준다. 어디에 템플릿을 넣고, 컨트롤러를 넣고, 규칙에 따라서 하는 것이다. 장고 웹 프레임워크는 그 대표적인 예로 프레임워크 내의 규칙이 매우 많다. (장고에서 어드민 패널을 만들고 싶으면 admin.py에 써야 한다.)

A JavaScript library for building user interfaces: 필요할때마다 부를 수 있는 것
The Web framework for perfectionists with deadlines: 규칙과 문서가 따라오는 것

그렇다면 react는? 공식문서에는 A JavaScript library for building user interfaces 라고 적혀져 있다.

너의 어플리케이션의 ui를 빌드할때 리액트를 부르는 것이다. 이 경우 너가 리액트를 부르는 것이다. 리액트는 규칙, 폴더 구조나 컴포넌트명이 따로 없다. 하지만 리액트가 우리의 컴포넌트를 부르기도 한다. 이 경우에는 리액트를 프레임워크로 부를 수 있는 것이다. 리액트가 컴포넌트를 부르는 것이기 때문이다. 너가 컴포넌트를 쓰면 리액트가 그것을 불러와 스크린에 보여준다.

그래서 이 문제는 꽤나 회색의 영역이다. 어떤 사람들은 이것을 라이브러리다. 너가 필요할때 부르니까. 동시에 프레임워크로 불릴 수 있다. 컴포넌트를 불러오니까. 리액트가 우리의 컴포넌트를 인터랙티브하게 만들어주니까! 리액트가 states, props 같은 것을 컴포넌트에게 주니까...!

이게 라이브러리인지 프레임워크인지 규정하는 게 중요한가? 상관없다. 프론트엔드에서는 뭐든게 다 이모냥이거든...하지만 우리는 적어도 개념상으로 이해를 하고 있어야 한다. 라이브러리와 프레임워크의 차이가 무엇인지.

profile
Step by step goes a long way ✨

0개의 댓글