개인 공부😊/IT

라이브러리 VS 프레임워크

송테이토 2022. 10. 5. 00:46

라이브러리

→ 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한 것

비교 설명: 자동차 바퀴, 자동차 헤드라이트, 자동차 에어백

→ 폴더명, 파일명 등에 대한 규칙이 없고, 프레임워크에 비해 자유롭다.

→여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴(함수), 클래스, 값, 자료형 사양을 포함할 수 있다. OS/360 및 이후 세대에서는 파티션 데이터 세트로 부른다.

→대상 환경(플랫폼)에서 바로 실행될 수 있는 형태로 제공되며, 실제 실행되어 기능을 수행하는 단편화된 프로그램이라는 점이 API와 다르다.

API란? 프로그래밍 언어에서 라이브러리를 사용할 수 있도록 소스코드 수준에서 인터페이스를 노출시킨 것이 바로 Application Programming Interface(API)

따라서 라이브러리는 동작하는 완전한 프로그램이 아닌, 특정한 부분 기능만을 수행하도록 제작된, 컴파일되어 기계어의 형태로 (또는 대상 플랫폼에 따라서는 바이트코드로) 존재하는 프로그램이다.

  • 표준 라이브러리 : 특정한 언어의 개발 환경에 기본적으로 포함된 것들은 대부분 표준 라이브러리라고 불린다. 기본적인 기능 수행과 더불어 디버깅, 성능측정 등을 위한 별도의 API가 존재한다.
  • 런타임 라이브러리 : 프로그램이 실제 환경에서 실행되기 위해 필요한 모듈들이다. 대부분 위의 표준 라이브러리에서 기능 수행에 필요한 것들만 제공되거나, 스크립트의 실행기 등을 말한다.

예시)

  • Windows에서 자주 볼 수 있는 런타임 라이브러리의 확장자는 보통 .dll이다.
  • Browser환경에서 script src 로 불러들이는 js파일(JQuery 등)
  • node.js 환경에서 npm으로 설치한 모듈
  • Python 환경에서 pip로 설치한 패키지/모듈
  • Java 환경에서 설치한 jar

프레임워크

→공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것

비교 설명: 자동차 프레임(기본 구조 뼈대)

→폴더명, 파일명 등에 대한 규칙이 있으며 라이브러리에 대해 좀 더 엄격

→프레임워크만으로는 실행되지 않으며 기능 추가를 해야 되고 프레임워크에 의존하여 개발해야 되며 프레임워크가 정의한 규칙을 준수해야 합니다.

예시)

# 라이브러리 vs. 프레임워크

가장 큰 차이점은 **"코드 흐름의 제어권"**이 누구에게 있느냐이다.

1. 라이브러리

: 라이브러리의 객체나 함수를 개발자가 직접 호출하여 사용한다.

2. 프레임워크

: 개발자가 구현한 메서드가 프레임워크에 의해 호출된다.

: 이를 제어의 역전(IoC: Inversion of Control)이라고 한다.