프레임워크
정의
프레임워크는 어떤 목적을 달성하기 위한 기본 구조를 제공하는 도구와 라이브러리의 집합이다. 개발자들은 프레임워크를 사용하여 애플리케이션을 빠르게 개발할 수 있다. 프레임워크는 일반적으로 애플리케이션의 구조, 흐름, 규칙 등을 정의하며, 개발자는 이를 따르면서 자신의 코드를 작성하기만 하면 된다.
예시
- 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
'[항해99] TIL' 카테고리의 다른 글
객체지향 프로그래밍이란 무엇인가? (0) | 2023.12.11 |
---|---|
프로젝트 회고 (1) | 2023.11.13 |
62일차 (Array List와 Linked List) (1) | 2023.11.10 |
61일차 (리액트에서 자주 쓰이는 이벤트의 타입) (0) | 2023.11.08 |
60일차 (Recoil 사용방법 기초 2) (0) | 2023.11.04 |