<정의>
특정 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다. (”프레임워크”, <나무위키>, https://namu.wiki/w/프레임워크)
일종의 밀키트 같은 존재.
<라이브러리와의 차이점>
프레임워크와 라이브러리를 엄밀한 차이로 나누기는 어렵다.
따라서 대충 이런 경향을 띤다는 것만 인지하는 것이 좋다.
가장 큰 차이는 제어 흐름이다.
제어 흐름
프레임워크 :
프레임워크가 사용자를 제어한다.
개발자에게 특정한 구조나 디자인 패턴을 강제
라이브러리 :
사용자가 라이브러리를 제어한다.
개발자가 필요한 기능을 선택적으로 사용할 수 있게 제공
제작자가 라이브러리라 하면 라이브러리, 프레임워크라 하면 프레임워크
<종류>
1. 웹 개발 프레임워크
Django (Python)
파이썬 기반의 웹 애플리케이션 개발 프레임워크로, 주로 백엔드 개발에 사용
Ruby on Rails (Ruby)
루비 기반의 웹 애플리케이션 프레임워크로, 빠른 개발과 간결한 코드를 강조
Express.js (Node.js)
Node.js 기반의 웹 애플리케이션 프레임워크로, JavaScript를 사용하여 백엔드 서버를 개발하는 데 사용
2. 프론트엔드 프레임워크
React (JavaScript)
Facebook에서 개발한 UI 라이브러리로, 단일 페이지 애플리케이션 및 웹 컴포넌트 개발에 주로 사용.
Angular (JavaScript/TypeScript)
Google에서 개발한 프론트엔드 프레임워크로, 대규모 응용 프로그램을 구축하는 데 사용
Vue.js (JavaScript)
가벼운 프론트엔드 프레임워크로, UI 개발 및 단일 페이지 애플리케이션에 많이 사용
3. 모바일 앱 개발 프레임워크
React Native (JavaScript)
React 기반의 모바일 앱 개발 프레임워크로, iOS와 Android 앱을 동시에 개발 가능
Flutter (Dart)
Google에서 개발한 모바일 앱 개발 프레임워크로, iOS, Android 및 웹 앱을 빌드하는 데 사용
4. 데이터 과학 및 머신 러닝 프레임워크
TensorFlow (Python)
구글에서 개발한 오픈 소스 머신 러닝 프레임워크로, 딥러닝 모델을 구축하고 학습시키는 데 사용
PyTorch (Python)
Facebook에서 개발한 머신 러닝 프레임워크로, 연구 및 프로토타입 개발에 널리 사용
5. 게임 개발 프레임워크
Unity (C#)
크로스 플랫폼 게임 개발을 위한 프레임워크로, 2D 및 3D 게임을 개발하는 데 사용
Unreal Engine (C++)
게임 엔진과 개발 프레임워크로, 고품질 그래픽과 대규모 게임 프로젝트를 지원
6. 백엔드 서버 프레임워크
Spring Framework (Java)
자바 기반의 엔터프라이즈 웹 애플리케이션 개발에 사용되며, 스프링 부트는 빠른 웹 애플리케이션 구축을 위한 도구