프론트엔드 짧은 간단 지식 정리 - 라이브러리와 프레임워크

이상범·2024년 9월 25일
0

소프트웨어 개발에서 라이브러리와 프레임워크는 중요한 도구이다.
그러나 둘 사이에는 명확한 차이점이 있다.

1. 라이브러리

  • 라이브러리는 특정 기능을 구현하기 위해 사용할 수 있는 재사용 가능한 코드의 집합이다.
    • 그러므로, 개발자는 필요할 때 라이브러리의 기능을 호출하여 사용할 수 있다.
    • 라이브러리는 주로 특정 작업을 단순화하고, 개발자가 더 빠르고 효율적으로 코드를 작성할 수 있도록 돕는다.
  • 특징
    • 호출: 개발자가 직접 라이브러리를 호출하여 사용한다.
    • 제어 흐름: 제어 흐름은 개발자에게 있다. 개발자는 필요할 때 라이브러리를 사용하고, 호출 순서와 타이밍을 스스로 결정하게 된다.
    • 구체적인 작업: 라이브러리는 특정 작업이나 기능을 수행하는 데 집중한다.
  • 예시
    • React: UI 컴포넌트를 구축하기 위한 JavaScript 라이브러리
    • Lodash: JavaScript 유틸리티 라이브러리.
    • Pandas: 데이터 조작 및 분석을 위한 Python 라이브러리

 

2. 프레임워크

  • 프레임워크는 소프트웨어 개발을 위한 일종의 뼈대나 구조를 제공한다.
    • 프레임워크는 개발자가 작성한 코드를 호출하여 실행하며, 전반적인 제어 흐름을 관리한다.
    • 프레임워크는 보통 특정 유형의 응용 프로그램 개발을 위한 전체 구조와 다양한 도구 및 라이브러리를 포함한다.
  • 특징
    • 역제어 (Inversion of Control): 프레임워크가 개발자의 코드를 호출한다. 개발자는 프레임워크의 흐름에 따라 코드를 작성해야 한다.
    • 전체 구조 제공: 프레임워크는 응용 프로그램의 전체 구조를 제공한다. 개발자는 프레임워크가 제시하는 구조에 맞춰 개발해야 한다.
    • 포괄성: 프레임워크는 전체 애플리케이션을 개발하는 데 필요한 도구와 기능을 포괄적으로 제공한다.
  • 예시
    • Angular, Next.js: 프론트엔드 애플리케이션 개발을 위한 JavaScript 프레임워크
    • Django: 웹 애플리케이션 개발을 위한 Python 프레임워크
    • Spring: 엔터프라이즈 애플리케이션 개발을 위한 Java 프레임워크

 

3. 가장 두드러지는 차이

  • 가장 두드러지는 이 둘의 핵심 차이는 제어 흐름의 권한이 어디에 있는가로 구분할 수 있다.
  • 라이브러리
    • 개발자가 작성한 코드가 애플리케이션의 흐름을 제어한다.
    • 즉, 개발자가 코드를 작성하여 동작되는 기능 사이에 라이브러리의 기능을 끼워넣을 뿐이다.
  • 프레임워크
    • 개발자가 작성한 코드는 프레임워크가 제공하는 틀과 규칙 위에서 제어된다.
    • 이는 라이브러리와 비교해 [제어의 역전] 개념이 적용되어 있다고 볼 수 있고, 애플리케이션 코드는 프레임워크가 짜 놓은 틀에서 수동적으로 동작함을 의미하는 것이다.

※ 참고 : 제어의 역전

  • 어떠한 일을 하도록 만들어진 Framework에 Control 권한을 위임하는 것을 의미한다.
  • 간단히 말해 프로그램의 제어 흐름 구조가 뒤바뀐 것을 뜻한다.
    • 라이브러리의 경우, 애플리케이션의 흐름을 개발자가 직접 제어해야 한다.
    • 반면 프레임워크의 경우, 미리 구성된 기본구조에서 개발자가 작성한 코드를 제어하기 때문에, 개발자는 이미 정의된 구조와 규칙에 따라 코드를 작성해야 한다.
profile
프론트엔드 입문 개발자입니다.

0개의 댓글