웹 공부 중에 리액트, 스프링을 접하게 되었는데 프레임워크와 라이브러리의 차이가 궁금해서 찾아보았다.
프레임워크 (Framework)
쉽게 말해 웹이나 앱 등을 개발할 때 도와주는 역할을 하는 것. 기본적인 기능이 있어 소프트웨어에 필요한 기능을 넣는 것에만 집중하면 된다. 예컨대, 샤브샤브를 만들 때 밀키트를 사용하는 것과 사용하지 않는 것을 비교하면 당연히 밀키트를 사용하는 것이 훨씬 편하고 시간을 단축할 수 있다. 즉, 샤브샤브를 만들기 전에 갖가지 재료를 구매해서 손질하는 등의 여러 과정을 무시하고 만드는데만 집중할 수 있다.
왜?
개발하는 과정에서 중복되는 작업들을 미리 짜놓는 과정에서 프레임워크가 탄생했다. 우리도 비슷하거나 같은 일을 반복할 때 미리 틀을 짜놓고 쓰기만 하면 여러 번 반복하지 않아도 된다.
종류
- Frontend : Angular, Vue(자바스크립트의 프레임워크)
- Backend : Spring, Django, Express Js ...
웹을 제외하고도 애플의 코코아 프레임워크, 안드로이드 프레임워크 등 여러가지가 있다.
프레임워크 vs 라이브러리
공부하다보니, 리액트를 프레임워크로 분류한 게시글이 많아서 프레임워크인 줄 알았는데 '라이브러리'였다.
라이브러리란, 웹, 앱, 소프트웨어를 개발하기 쉽게 기능을 제공하는 도구라고 한다.
프레임워크 | 라이브러리 | |
공통점 | 프로그래밍을 쉽게 할 수 있게 도와줌. | |
차이점 | 프로그램 개발을 위해 여러 요소들과 매뉴얼을 제공, 프로그램의 제어 권한을 가짐 | 프로그램을 개발할 때 쓰이는 도구, 사용자가 직접 제어 |
쉽게 말해서, 프레임워크는 교육부에서 제공하는 '교육과정'으로 꼭 따라야 하는 것이고 라이브러리는 도서관처럼 필요한 책만 읽는 것이라 할 수 있다.
참고자료
프레임워크(Framework)? 라이브러리(Library)? 둘의 차이점? 이것만 알면 됩니다.