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

Jin Seok Kim·2022년 11월 9일
0

1. 🖼️ 프레임워크(Framework)란?

: 원하는 기능 구현에 집중해 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 뼈대나 기반구조

  • 앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 관리(어플리케이션 흐름, 제어 흐름에 관여하는 부분)는 프레임워크가 관리하며, 사용자는 프레임워크가 정해준 방식대로 클래스, 메서드등을 구현한다.

예시

  • Java 서버 개발용 Spring
  • Python 서버 개발용 Django, Flask
  • 웹 개발에 사용되는 Angular, Vue.js, Next.js

사용 형태

자체적인 실행 흐름(라이프사이클)을 가지고 있으며 그 흐름에 맞춰 프로그래머가 필요한 코드를 작성해야한다.

= 제어의 역전 👌


2.📚 라이브러리(Library) 란?

: 코드 작성시 활용 가능한 특정 기능에 대한 도구 or 함수들의 집합

예시

  • Python pip로 설치한 패키지들(tensorflow, pandas, beautifulsoup 등)
  • Node.js에서 npm으로 설치한 모듈
  • 웹에서 UI 개발에 사용되는 React

사용 형태

사용자가 어플리케이션 코드의 흐름을 직접 제어하며, 필요한 경우 능동적으로 라이브러리를 호출해 사용한다.

= 제어의 역전 ❌


3. 🤸 제어의 역전(IoC : Inversion of Control)이란?

: 어플리케이션의 제어의 흐름 권한을 프레임워크에게 위임해, 프레임워크가 결정한 제어 흐름을 프로그래머가 따르는 방식


따라서 React는 라이브러리다.

💡 React의 Render 라이프사이클을 고려할 때, React는 프로그램의 흐름에 작업을 추가해 프로그램 흐름을 바꾸는 것이 가능하기 때문에 라이브러리라고 할 수 있다.

  • React는 componentwillMount()render()componentDidMount() 의 기본적인 라이프사이클 흐름을 가지고 있지만, 프로그래머가 필요에 따라 추가적인 동작 추가가 가능하다
  • 또한 React의 폴더 디렉토리를 개발자 임의로 구성하거나, router를 구성하는 방식등이 자유롭기 때문
profile
블로그 자료 마이그레이션 중입니다

0개의 댓글