본문 바로가기
[항해99] TIL

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

by @kkkk_biiin 2023. 12. 28.
728x90

프레임워크

정의

프레임워크는 어떤 목적을 달성하기 위한 기본 구조를 제공하는 도구와 라이브러리의 집합이다. 개발자들은 프레임워크를 사용하여 애플리케이션을 빠르게 개발할 수 있다. 프레임워크는 일반적으로 애플리케이션의 구조, 흐름, 규칙 등을 정의하며, 개발자는 이를 따르면서 자신의 코드를 작성하기만 하면 된다.

 

예시

  • Java --> Spring
  • Python --> Django, Flask
  • 웹 개발 --> Angular, Vue.js
  • 앱 개발 --> React Native, Flutter

 

 

라이브러리

정의

라이브러리는 개발자가 특정 기능을 수행하기 위해 사용하는 도구의 집합이다. 라이브러리는 개발자가 필요에 따라 호출하여 사용할 수 있으며, 애플리케이션의 특정 부분에 대한 기능을 제공한다. 개발자는 라이브러리를 선택적으로 사용하여 자신의 코드에 통합시킵니다.

 

예시

  • Python의 Pip으로 설치한 패키지/모듈 --> Pandas, Numpy
  • Node.js에서 npm, yarn으로 설치한 모듈
  • React.js

 

 

React는 왜 프레임워크가 아니고 라이브러리인가?

Angular와 Vue.js는 웹 개발에 필요한 모든 기능과 툴을 포함하고 있기 때문에 프레임워크라고 할 수 있다. 하지만 React는 이와 다르게 UI를 만드는 기능만 제공하기 때문에 라이브러리라고 할 수 있다.

 

따라서 Angular와 Vue.js는 자신만의 문법을 가지고 있지만, React는 라이브러리이기 때문에 JavaScript를 기반으로 할 수 있고,  JavaScript 문법에 대해 알고 있으면 비교적 쉽게 사용할 수 있다는 장점이 있으며, 확장성 또한 높기 때문에 라이브러리임에도 불구하고 프레임워크처럼 사용되는 것이다.

 

 

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

프레임워크는 애플리케이션의 전체 구조를 제공하고, 개발자는 그 구조에 맞춰 코드를 작성한다. 반면에 라이브러리는 특정 기능을 제공하며, 개발자는 필요한 부분에 라이브러리를 호출하여 사용한다.

 

프레임워크

  • 개발자가 작업을 위한 전체적인 tool을 제공
  • 개발자는 프레임워크 틀 안에 맞춰서 기능 구현

라이브러리

  • 전체의 틀이 아닌 하나의 기능만 제공
  • 개발자는 필요한 기능만 가져와서 사용

이처럼 프레임워크와 라이브러리의 차이는 개발자가 능동적으로 사용할 수 있는지, 아니면 수동적으로 사용해야 하는지에 차이가 있다고 볼 수 있다.

 

따라서 프레임워크는 개발자가 작성한 코드가 프레임워크라는 틀에서 수동적으로 동작을 해야하며, 라이브러리는 개발자가 필요한 기능이 있을 때 능동적으로 사용할 수 있다는 점이 가장 큰 차이점이라고 볼 수 있다.

 

 

 

 

Reference
https://velog.io/@ahn-sujin/React-%EB%A6%AC%EC%95%A1%ED%8A%B8%EB%8A%94-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC
https://cocoon1787.tistory.com/745
728x90