프레임워크(Framework) vs 라이브러리(Library)

G_NooN·2024년 3월 12일
0
post-thumbnail

라이브러리(Library)

특정 기능과 관련된 코드, 함수를 모듈로 구성한 프로그램의 집합

특징

  • 특정 기능과 관련되어 있기 때문에, 대부분 사이즈가 크지 않다.
  • 필요한 곳에 어디서든 사용할 수 있다.

주요 라이브러리

언어라이브러리
C/C++STL, DirectX
JavaLombok, JSTL
JavaScriptReact.js, axios, redux
PythonNumPy, Pandas, PyTorch
OthersOpenCV, TensorFlow

프레임워크(Framework)

개발자가 기능 구현에만 집중할 수 있도록 필요한 프로그래밍적 재원(코드 구조, 라이브러리, 스타일링 등)을 지원하는 기술의 집합

특징

  • 개발에 필요한 대부분의 요구사항(ex. 디렉토리 구조, 코드 문법 및 컨벤션, 스타일링, 테스트 등)을 기본적으로 내장하고 있다.
  • 틀이 정해져 있어 유지 보수가 상대적으로 쉽다.

주요 프레임워크

개발환경/언어프레임워크
JavaSpring
JavaScriptVue.js, Svelte
JSXSolidJS, Next.js
TypeScriptAngular
Node.jsExpress.js, NestJS
PythonDjango, Flask
RubyRuby on Rails
AndroidAndroid
DartFlutter
.NET.NET framework
CSSBootstrap, TailWind CSS

Framework vs Library

공통점

  • 코드, 함수의 집합체다.
  • 재사용이 가능하다(Reusable)

차이점

제어의 역전 (IoC: Inversion of Control)

  • 라이브러리(Library)
    : 개발자가 프로그램의 전체적인 흐름을 짜고, 필요한 부분에 능동적으로 라이브러리를 사용한다.
    (= 코드의 흐름을 개발자가 제어한다.)

  • 프레임워크(Framework)
    : 개발자는 프레임워크에서 정한 흐름대로 코드를 작성해야 한다.
    (= 코드의 흐름을 프레임워크가 제어한다.)

참고 : https://www.interviewbit.com/blog/framework-vs-library/

profile
쥐눈(Jin Hoon)

0개의 댓글