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

Odyssey·2025년 1월 3일
0

Next.js_study

목록 보기
1/58
post-thumbnail

라이브러리(Library)프레임워크(Framework)는 둘 다 개발을 쉽게 하기 위한 도구이지만 서로 다른 개념이다. 각자의 특징과 목적이 있으며 개발자는 이를 적절히 구분하여 사용할 줄 알아야한다.


1. 라이브러리 (Library)

  • 정의
    라이브러리는 특정 작업을 수행하는 데 필요한 미리 작성된 코드의 모음이다.
    개발자가 필요할 때 직접 호출하여 사용하는 방식이다.

  • 제어 흐름
    라이브러리를 사용하는 주체는 개발자이며, 개발자가 원하는 기능을 직접 호출하여 제어한다.

  • 유연성
    라이브러리는 단위 기능을 제공하므로 유연하게 조합하여 사용할 수 있다.

  • 예시

    • Python: NumPy, Pandas, Matplotlib
    • JavaScript: Lodash, Axios
    • Java: Apache Commons, Guava
  • 특징

    • 개발자가 필요한 기능만 선택해서 호출.
    • 작은 규모의 모듈화된 코드 제공.

2. 프레임워크 (Framework)

  • 정의
    프레임워크는 특정 유형의 애플리케이션을 개발하기 위한 구조와 규칙을 제공하는 플랫폼이다.
    개발자는 프레임워크가 제공하는 구조에 따라 코드를 작성해야 한다.

  • 제어 흐름
    프레임워크가 전체 제어 흐름을 책임지고, 개발자는 그 틀 안에서 코드를 작성하며, 이는 흔히 "제어의 역전(Inversion of Control, IoC)"이라 불린다.

  • 유연성
    프레임워크는 정해진 규칙과 구조를 따르기 때문에 라이브러리에 비해 유연성이 낮다.

  • 예시

    • Python: Django, Flask
    • JavaScript: React, Angular, Vue.js
    • Java: Spring, Hibernate
    • Flutter (Dart 기반 UI 프레임워크)
  • 특징

    • 개발자가 프레임워크의 틀에 맞춰 개발.
    • 프로젝트 구조와 아키텍처를 정의해줌.

핵심 차이

특징라이브러리프레임워크
제어 권한개발자가 호출하여 사용프레임워크가 호출하며 흐름을 제어
유연성비교적 유연하며 필요한 부분만 사용 가능규칙과 구조에 따라 개발해야 함
규모작은 단위 기능 제공애플리케이션 전체 구조와 동작을 설계함
학습 곡선낮음상대적으로 높음

비유

  • 라이브러리는 필요한 도구(예: 전동 드릴)를 가져와 사용하는 것.
    • 개발자가 원하는 방식으로 도구를 사용함.
  • 프레임워크는 집을 짓기 위한 설계도와 규칙(예: 빌딩 매뉴얼).
    • 설계도에 따라 집을 지어야만 제대로 작동함.

0개의 댓글