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

summer_joy·2022년 5월 4일
0

라이브러리와 프레임워크란

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

이 둘의 차이점을 가르는 분명한 점은 ?

🔥 누가 누구를 컨트롤 하는가 !
WHO IS CONTROLLING ???

내가 코드를 컨트롤 하는것인지

아니면, 누군가 정해준 규칙을 따라하고 있는지

이 부분에 라이브러리와 프레임워크의 차이점이 있다
내가 코드를 컨트롤 하는건지 VS 누군가가 정해놓은 규칙에 따라 코딩하는건지

예를 들면,

라이브러리의 가장 좋은 예시는 jQuery이다.
제이쿼리는 웹사이트에 인터랙티브한 요소를 넣을 수 있는데
내가 웹사이트를 코딩한다고 했을 때
내가 필요할 때 "내가" 제이쿼리를 소환한다.
코딩을 하다가 필요할 때 제이쿼리를 부르는 것이고
"내가" 코딩을 해나가는 것 = 라이브러리

라이브러리는 쉽게 대체될 수 있음
(내가 원하면 제이쿼리가 아닌 다른 라이브러리로 대체해도 프로젝트가 망가지지 않음)

프레임워크는 다름

"프레임워크"가 나를 부르는 것

프레임워크로 일을 할때는 프레임워크의 규칙을 따라야 한다.
내가 코드의 규칙을 결정하는 것이 아닌
프레임워크가 어디에 코드를 넣어야 하는지 등등을 알려줌

어디에 템플릿을 넣고 컨트롤러를 넣고 뷰를 넣고에 대한 규칙을 알려주고
우리는 그걸 따라서 코딩해야 함

한마디로, 프레임워크는 내가 컨트롤 할 수 없고 쓰는 사람이 규칙을 따라서 써야 정상작동이 된다는 말

프레임워크의 좋은 예시는 장고 웹 프레임워크인데
예를 들어 장고에서 어드민 패널을 만들고 싶다면 무조건 코드를 admin.py에 써야함
만약 url을 바꾸고 싶다면 반드시 파일명 url.py를 가야함
왜냐하면 장고가 시작할 때 url.py, admin.py를 읽기 때문
내가 이걸 컨트롤 할 수는 없음 왜냐? 장고의 규칙이니까

이처럼, 프레임워크라고 하는 것들은 반드시 따라야 하는 규칙이 존재한다.

요약 : 라이브러리는 "내가" 필요할 때 가져다 쓰는 것이고 프레임워크는 "프레임워크"가 나를 부르는 것

그러니까 "ooo을 빌드하기 위한 ooo라이브러리"라면
내가 필요할 때마다 부를 수 있는 것이고

반대로, "ooo을 빌드하기 위한 프레임워크"라면

이건 규칙과 문서가 따라오는 것이며, 내가 적극 수용해야 한다 !
내가 컨트롤 하는 것이 아니라, 규칙에 따라야 하는 것이기 때문

💥but

리액트js 웹사이트에 들어가보면 리액트는 라이브러리로 소개되어 있는데
나의 애플리케이션의 ui를 빌드할 때 리액트를 불러온다면
이 경우 "내가" 리액트를 부르는 것이기 때문에 리액트는 라이브러리가 되는 것이 맞음

하지만, 리액트가 우리의 컴포넌트를 부르기도 함
이 경우 리액트는 프레임워크라고 부를 수 있음
리액트가 컴포넌트를 부르는 것이기 때문에..
(vue도 마찬가지)

▶ 프론트엔드 개발을 위해 라이브러리와 프레임워크를 규정하는 것이 중요한가?
nope.. 아니다,,
하지만 차이점이 무엇인지는 대략적으로 이해하고 있으면 좋겠다고 생각해서 적어보는 글..

참고영상

https://www.youtube.com/watch?v=t9ccIykXTCM

profile
💻 Hello world

0개의 댓글