Just Do IT!

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

CS 정리

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

MOON달 2023. 3. 29. 11:51
728x90

프레임워크(Framework)

  • 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 커넥션 등의 기능들을 위해 뼈대(구조)를 제공
  • 이러한 뼈대 위에서 개발자들이 코드를 작성해 원하는 애플리케이션을 개발할 수 있다.
  • 소프트웨어적으로 정의하면, 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 상호 협력하는 클래스와 인터페이스의 집합이다
  • 통제권은 사용자가 아닌 프레임워크가 쥐고 있다. = 프레임워크 내에서 코드를 작성할 수 있다

(예) Java - Spring / Python - Django / 안드로이드 앱개발 - Android / JavaScript - Node.js 등

프레임워크의 특징

  • 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있다
  • 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다
  • 컴포넌트들은 재사용이 가능하다
  • 높은 수준에서 패턴들을 조작화 할 수 있다

 

 

 

 

 

 

 

 

 

 

 

 

 

라이브러리 (Library)

  • 개발에 필요한 것들을 미리 구현해놓은 도구
  • 재사용이 가능한 기능을 미리 구현해놓고 필요한 곳에서 호출하여 사용 가능하도록 만들어진 집합
  • 특정 기능을 모아놓은 코드, 함수들이 집합이며 코드 작성 시 활용 가능한 도구들을 의미
  • 개발자에게 전적으로 제어 흐름이 있으며 필요할 때마다 능동적으로 호출하여 사용한다

(예) JavaScript 라이브러리인 jQuery, 사용자 인터페이스 개발에 도움이 되는 React.js 등

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

프레임워크와 라이브러리의 차이점

출처: https://code-lab1.tistory.com/284

가장 큰 차이점은 "제어 흐름"이 어디에 있는가 이다.

 

프레임워크

  • 제어의 역전 개념이 적용되어 있다.
  • 프레임워크에게 제어의 흐름을 넘겨 개발자가 작성하는 코드에서 신경 써야 할 부분을 줄인다는 뜻이다.

라이브러리

  • 개발자에게 제어 흐름이 있다
  • 개발자가 원하는 라이브러리를 선택해서 사용할 수 있다