cs

라이브러리 vs 프레임워크

ssoonn 2024. 6. 24. 16:16

라이브러리

  • 공통 사용 기능을 모듈화한 것으로, 폴더명이나 파일명에 대한 규칙이 없고 자유롭다.
    • 자동차를 타고 목적지까지 이동할 때
      • 경로선택, 창문열기 등 자유도가 높음
      • 직접 운전을 해야하고, 음료를 제공받는 등 제공되는 것이 적음
  • 개발자가 만든 클래스들의 나열로, 다른 프로그램에서 사용할 수 있도록 제공하는 방식

ex. axios

 

프레임워크

  • 공통 사용 기능을 모듈화한 것으로, 폴더명이나 파일명 등에 대한 규칙이 있고, 라이브러리에 비해 엄격하다.
    • 비행기를 타고 목적지까지 이동할 때
      • 경로 선택 불가, 창문 열기 불가 등 자유도가 떨어짐
      • 기장이 운전하고, 음료가 제공되는 등 제공되는 것이 많음
  • 개발자들이 소프트웨어를 개발함에 있어 개발 시간을 줄이고, 코드 재사용성을 증가시키기 위해 클래스 묶음, 뼈대, 틀을 라이브러리 형태로 제공하는 것

ex. vue.js, django

 

라이브러리는 프레임워크에 넣을 수 있다.

 

라이브러리 vs 프레임워크

  • 제어 흐름에 대한 주도성이 누구에게, 어디에게 있는가에 따라 달라진다.
  • 애플리케이션의 Flow를 누가 쥐고 있느냐
  • 프레임워크는 제어 흐름의 주도성을 갖지만(제어의 역전이 적용됨), 라이브러리는 개발자가 갖고 있다.
    • 프레임워크: 프로그래머가 필요한 코드를 작성 -> 사용자로금 하여금 코드 연결 공간을 강제
      • 통제권이 프레임워크에 있음
    • 라이브러리: 사용자가 flow 직접 제어 -> 언제, 어디서 호출할지 사용자가 능동적으로 결정
      • 통제권이 사용자에게 있음

cf. 제어의 역전(IoC, Inversion Of Control)

개발자가 아닌 프레임워크가 소프트웨어의 흐름을 제어한다.

소프트웨어에 대한 제어권이 개발자에서 프레임워크로 역전된 것.

 

  라이브러리 프레임워크
정의 미리 정의된 함수, 클래스 제공하여 작업을 쉽게 하고, 개발 프로세스를 향상시킴 특정 플랫폼용 패플리케이션을 구축하는 foundation
IoC flow를 사용자가 제어 프레임워크가 flow 제어
구성 헬퍼 모듈, 객체, 클래스, 함수 등 APIs, 컴파일러, 툴셋, 지원 프로그램, 라이브러리 등
코드 수정 필요에 따라 라이브러리 코드 수정 가능 변경, 수정 불가
호출 코드에서 적절하다고 생각되는 구간 어디에나 라이브러리 호출 가능 프레임워크 내 속한 것만 호출하여 사용할 수 있음
확장성 확장성을 위해 설계되지 않음. 일반적인 기능을 제공하므로, 개발자가 프레임워크의 소스 코드를 수정하지 않아도 확장 가능
대체 가능성 다른 라이브러리로 대체 가능
ex. jQuery의 date picker 라이브러리는 bootstrap date picker로 바꿀 수 있음
다른 프레임워크로 교체 불가.
프레임워크를 바꿀 시 전체 코드베이스를 다시 작성해야 함
기존 프로젝트에 통합 가능 불가
예시 JQuery, React JS, etc. Spring, NodeJS, AngularJS, Vue

 

ref.

프레임워크(Framework)와 라이브러리(Library)의 차이점 - tistory

 

프레임워크(Framework)와 라이브러리(Library)의 차이점

1. 프레임워크(Framework)란? 개발자가 소프트웨어를 개발함에 있어 코드를 구현하는 개발 시간을 줄이고, 코드의 재사용성을 증가 시키기 위해 일련의 클래스 묶음이나 뼈대, 틀을 라이브러리 형

sharonprogress.tistory.com

프레임워크 라이브러리 차이와 종류 - 디지털 인사이트 매거진

 

프레임워크 라이브러리 차이와 종류 - 디지털 인사인트 매거진

프레임워크 라이브러리 차이와 종류 ,효율적이고 효과적인 코드를 작성하려는 개발자에게는 프레임워크 라이브러리 차이와 종류를 이해하는 것이 중요합니다.프레임워크 라이브러리 차이와

digit2sight.com

 

프레임워크(Framework)와 라이브러리(Library)의 차이 - velog

 

프레임워크(Framework)와 라이브러리(Library)의 차이

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

velog.io

Library vs. framework: How these software artifacts differ - TheServerSide

 

Library vs. framework: How these software artifacts differ | TheServerSide

The difference between a library and a framework is subtle but significant. Here's how to select the right library and software framework for your next project.

www.theserverside.com

Framework vs Library: Full Comparison - InterviewBit