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

이시우·2021년 3월 24일
0

컴퓨터 지식

목록 보기
11/17


노마드코더 유튜브를 참고한 글입니다.

공통점

프레임워크와 라이브러리 모두 누군가 미리 작성해놓은 코드이다.
우리가 코딩(개발)할 때 필요에 의해 가져다 쓰는 코드들이며 프로젝트 제작을 편리하게 해준다.


차이점

누가 누구를컨트롤 하는가 !
작성된 코드들의 규칙에 맞게 내가 행동하는가 ? 아니면 내가 작성된 코드들을 컨드롤하는가 ? 를 구분하면 된다.
물론 완벽한 흑/백 논리는 아니라 구분이 미묘한 부분도 존재한다.


프레임워크

프레임워크의 예시에는 Django가 있다.
프레임워크로 일을 할 때는 프레임워크의 규칙을 따라야한다.
어디에 코드를 넣어야하고, 어떤 규칙을 지켜야하는지.. 정해진 대로 하지 않으면 정상적으로 작동하지 않는다.

예를 들어, Django에서 어드민 패널을 만들려면 무조건 코드를 admin.py에 작성해야하한다.
URL을 설정하려면 url.py에 코드를 작성해야한다.

사용자는 마음대로 변경할 수 없고 정해진 규칙을 꼭 따라야한다. 그렇지 않으면 프레임워크는 정상적으로 작동하지 않으니까 !

라이브러리

라이브러리의 예시에는 Jquery가 있다.
Jquery는 웹사이트에 인터랙티브한 요소를 넣을 수 있다.

내가 웹사이트를 코딩할 때, 내가 필요할 때, 내가 필요한 상황에서 Jquery를 사용해 코딩하는 것이다.

라이브러리는 쉽게 대체가 가능하다.
내가 원하면 Jquery를 다른 라이브러리로 교체할 수 있다.

하지만..

시작할 때 말 했듯이 완벽한 흑백 논리로 나눌 수 없는 부분도 있다.
대체적으로 프론트엔드 파트의 기술들이 그렇다.

React.JS를 예로 들어보자.
React.JS의 웹페이지에서는 React는 라이브러리라고 정의되어있다. 그리고 React는 규칙, 폴더 구조, 컴포넌트명 같은게 없다.
사용자의 어플리케이션 UI를 빌드할 때 사용자가 React를 부르기 때문에 라이브러리가 맞다.

하지만 React가 사용자의 컴포넌트를 부르고 규칙을 알려주기도 한다. 이 경우엔 리액트를 프레임워크라고 부를 수 있다.
사용자가 컴포넌트를 쓰면 리액트가 그걸 불러와서 스크린에 보여준다.

React를 사용해본 경험이 없고 어떤 기능을 하는지 몰라서 이 부분은 크게 체감은 되지 않았다.
하지만 흑백이 아닌 회색의 영역이 있다는 것은 이해가 된다 !


정리

내가 파이썬을 이용해 웹사이트를 만든다고 해보자.
그러면 나는 Django를 이용해 뼈대를 가져올 것이다.
Django의 정해진 규칙에 따라 웹사이트를 만들겠지?
그리고 코딩을 하면서 추가적인 기능이 필요할 때 다양한 라이브러리를 불러 살을 붙여나갈 것이다.
예를 들면 numpy, pandas, jquery... 만드는 웹 사이트에 따라 필요한 라이브러리는 달라진다. 그리고 사용자에 따라 달라지기도 할 것이다.

프레임워크는 프레임워크의 정해진 규칙을 내가 따르며, 내가 작성한 코드를 프레임워크가 부른다.
라이브러리는 내가 필요로 할 때 라이브러리를 부른다.

누가 주체가 되어 누구를 부르는지를 잘 알고 있으면 될 것 같다.

0개의 댓글