네트워크와 CS

TIL 38일차 리액트 . 그래서 라이브러리야 ~뭐야?; 라이브러리와 프레임워크의 차이점!

Sophie소피 2021. 11. 12. 22:37

 

리액트 ~ 라이브러리야 프레임워크야? 

하 ~ 이거 오늘 개념정리하고 들어가기 전에! 

라이브러리와 프레임워크의 차이점에 대해 알아보아요 ~~

 

일단 라이브러리, 프레임워크는 둘다. 다른 누군가가 쓴 코드입니다!

우리의 프로젝트를 위해서 가져다 쓰는 것이죠. 

요약. 우리의 코딩 삶을 윤택하기 위해서 가져가다 쓰는 것들.

라이브러리. 프레임워크를 가르는 차이점은 아주 심플한 컨셉입니다 

누가 누구를 컨트롤 하는가! 

우리가 코드를 컨트롤하는건가? 모든 결정을 다 내리는건가 ...? 

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

바로 이 부분에 라이브러리, 프레임워크 차이점이 있습니다. 

 

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

예를 들자면, 라이브러리의 가장 좋은 예시는 JQuery입니다. 

제이쿼리는 웹사이트에 인터랙티브한 요소를 넣을 수 있는데. 

그래서 우리가 웹사이트를 코딩을 하고 있는데, 내가 필요할 때, "우리가" 제이쿼리를 소환을 합니다

코딩을 하다가 필요할 때 제이쿼리를 부르는거고 

"우리가" 코딩을 해나가는 겁니다. 이것이 바로 라이브러리의 개념입니다. 

우리가 필요할 때 라이브러리를 쓰는 것입니다! 그리고 라이브러리는 정말 쉽게 대체될 수 있습니다! 

원하면 제이쿼리로 바꿀 수도 있어요 바꾼다고 해서 프로젝트가 망가지고 그러진않습니다!

왜냐면 ~ 시간절약을하려고 소환하는 용도이니까요!

 

그러나 !!! 프레임워크는 다릅니다 

왜냐하면 프레임워크를 부른 것이 아니거든요~!

"프레임워크"가 코드를 불러오는 것입니다! 

바로 이게 명확한. 라이브러리와 프레임워크의 차이점입니다.

프레임워크로 일을 할 때는 프레임워크의 규칙을 따라야합니다!

우리가 코드의 규칙을 결정하는 입장이 아니래요 ..

근데 프레임워크가 친절히 어떻게 하라고 알려주는거라는 사~실 

프레임워크가 어디에 코드를 넣어야하는지 등등을 알려줍니다 ...~

프레임워크가 우리에게 규칙을 알려주는 것!!

어디에 템플릿을 넣고, 컨트롤러를 넣고, 뷰를 넣고..

규칙에 따라서 하면 모든건 알아서 정상작동하는 것이죠 !!

우리가 컨트롤하는 건 없습니다... 그저 우리는 규칙을 따를 뿐 ...

 

프레임워크의 좋은 예시는 장고 웹프레임워크입니다 

장고 웹 프레임워크는 규칙이 너무 많습니다. 

잘 작동하기를 바란다면 모든 규칙을 잘 준수해야겠죠? 

예를 들어 장고에서 어드민 패널을 만들고 싶다면 

무조건 무조건 코드를 admin.py에 써야합니다. 

만약 URL을 바꾸고 싶다? 

반드시 파일명을 url.py에 가야합니다. 

왜냐하면 장고가 시작할 때 url.py, admin.py로 읽기 때문입니다. 

장고가 가지고 있는 이러한 규칙을 우리가 절대 바꿀 수는 없습니다 

앞에 예시를 들었던 규칙을 잘 준수해야만 어드민 패널, URL이 잘 작동하는걸 볼 수있습니다!

이러한 시나리오에서는 내가 장고를 call해야하고 이딴거 없습니다 ㅜㅜ 아시겠죠??

장고 문서를 잘 보면서 장고 규칙에 따라 코드들을 잘 넣어두면

장고가 알아서 그걸 실행시키는 작동원리이니까요 ~!

 

그래서 프레임워크라고 하는 것들은 반드시 따라야하는 규칙이 있는 것입니다. 

아주아주 쉽게 말하자면 라이브러리는 우리가 필요할 때 내가 부르는 것들

프레임워크는 나를 부르는 것들이라고 이해하시면 됩니다!

 

A JavaScript library for building user interface 사용자 인터페이스 구축을 위한 자바스크립트 라이브러리

"000을 빌드를 하기 위한 000라이브러리" 이면  필요할 때마다 부를 수 있는 것이라는걸 알게될 것입니다!

 

 

The web framework for perfectionists with deadlines 마감일이 있는 완벽주의자를 위한 웹 프레임워크

반대로 "000울 빌드하기 위한 프레임워크" 이면 이건 규칙과 문서가 따라오는 것이니 프레임워크를

적극 수용하고 그 규칙을 따라서 잘 작동시키게 해야합니다! 

앞에서 언급했듯이 우리가 컨트롤하는게 아니라 규칙에 따라야하는거니까요! 

 

그런데 reactJS 웹사이트에 들어가면 뭐라고 써있는지 아시나요? 

"리액트는 라이브러리"라고 써있습니다. 

즉, 우리의 애플리케이션의 UI를 빌드할 때 

리액트를 부르는 것인데, 이러한 경우는 우리가 리액트를 부른 것이죠! 

우리가 부른 것이니, 리액트는 라이브러리가 되는 것이 맞습니다! 

그리고 리액트는 프레임워크와 같은 규칙이나, 폴더 구조, 컴포넌트 그런게 없습니다

그러나, "리액트"가 우리의 컴포넌트를 부르기도 합니다

그래서 이러한 경우엔 리액트를 프레임워크라고 할 수 있답니다! 

즉, 리액트가 컴포넌트를 부르는거니까 규칙으로 뭐가 틀렸는지 맞는지를 알려주는 작동원리입니다. 

우리가 컴포넌트를 쓰면, 리액트가 그걸 불러와서 스크린에 보여줍니다!

 

하 근데 뭐가 라이브러리고 ~ 뭐가 프레임워크고~ 이런걸 규정하는게 그렇게 중요하나? 하는 생각이 들기도합니다..

상관없다고 볼 수 있다네요,, 프론트엔드에서 뭐든게 다 이런 작동원리거든요

그래도 개념도 놓치지 않는 멋진 개발자가 될 것이기에 개념상으로 이해하고 넘어가자구요~!

 

주절 주절 글로 쓰긴했는데 이해하기 어려운 점과 더 궁금하신 점이 있다면 좋댓 ~ 필수 ~ ㅎㅎ 

모두 화이팅 !!!