Framework

ww_ung·2025년 3월 11일

SKALA

목록 보기
9/25

Framework란?

소프트웨어 개발에서 특정 유형의 응용 프로그램을 구축하는 데 도움을 주는 미리 정의된 구조나 템플릿을 말한다.

프레임워크는 개발자가 코드를 작성할 때 특정 규칙이나 디자인 패턴을 따르도록 유도하며, 반복적인 작업을 단순화하여 효율적인 개발이 가능하도록 지원한다.

EX)

Django(Python)

  • 웹 애플리케이션을 빠르게 개발할 수 있도록 돕는 프레임워크
  • DB연동, 인증 시스템, 관리자 페이지 등을 자동으로 제공하여 이를 직접구현할 필요 없게 만든다

React(JavaScript)

  • UI를 만들기 위한 자바스크립트의 라이브러리
  • 상태관리 및 데이터 바인딩 기능을 제공하여 동적인 웹 어플리케이션을 개발할 수 있다.

TensorFlow(Python)

  • 딥러닝 모델을 구축하고 훈련시키는데 사용되는 오픈소스 라이브러리이다.

프레임워크 == 라이브러리?

그렇다면 이쯤에서 라이브러리와 프레임워크가 같다고 착각할 수 도 있다.
하지만 사용 방식과 개념에서 중요한 차이가 있다.

라이브러리

  • Control Flow(제어의 흐름)
  • 개발자가 필요할 때마다 라이브러리를 호출하고 사용하는 방식이다.
  • 즉, 개발자는 프로그램의 흐름을 완전히 제어하면서 필요할 때마다 기능을 호출한다
  • Ex) Numpy는 특정 계산을 할 때마다 호출하여 사용한다.

프레임워크

  • Inversion of Control(제어의 역전)
  • 프레임워크가 개발자의 코드 흐름을 제어하고, 개발자는 프레임워크에 필요한 부분을 추가하고 수정하는 방식
  • 프레임워크는 코드의 구조와 흐름을 결정하고 그에 맞춰서 개발자가 개발하는 방식이다.
  • Ex) Django는 웹 어플리케이션의 흐름을 정의하고 개발자는 그 안에 필요한 기능만 구현한다.

즉)
라이브러리는 필요할때 가져오는 도구
프레임워크는 개발방식과 흐름을 규정하는 틀
으로 정리 할 수 있다.

0개의 댓글