의견.png

라이브러리

해시넷
tjswn0425 (토론 | 기여)님의 2020년 9월 2일 (수) 10:34 판 (구분)
이동: 둘러보기, 검색

라이브러리(library)란 다른 프로그램에 링크되어 특정한 기능을 수행하도록 작성된 하나의 프로그램 코드 파일이다. 모듈(module) 또는 컴포넌트(component)보다 기능이 단순하고, 파일 사이즈가 작다.

개요

역사

목적

라이브러리(library)는 소스코드 재사용을 위해 조직화된 초기 방법 중의 하나이며 많은 다른 프로그램들에서 사용할 수 있도록 운영체계나 소프트웨어 개발 환경 제공자들에 의해 제공되는 경우가 많다. 라이브러리는 사용자의 프로그램과 링크되어 실행이 가능한 완전한 프로그램을 이룬다. 또한 라이브러리 내에 있는 루틴들은 범용적으로 사용 가능하며, 3차원 애니메이션 그래픽과 같은 특별한 용도의 함수로도 설계될 수 있다. [1]

특징

구분

정적 라이브러리(static library)

동적 라이브러리(dynamic library

동적 라이브러리(dynamic library)는 소프트웨어의 일종으로, 동적 링크를 사용한 라이브러리이다. 여러 프로그램이 공통적으로 필요로 하는 기능들을 프로그램과 분리하여 필요할 때에만 불러내어 쓸 수 있게 만들어 놓은 라이브러리를 의미한다. 마이크로소프트 윈도우에서는 동적 링크 라이브러리라고 해서 확장자가 DLL인 파일로 제공되고 있으며, 리눅스에선 /lib 밑의 .so 파일 등으로 구현된다. 개인이 자유 소프트웨어 등을 작성할 때에 만들기 쉽게 하기위해 작성하여 무료로 제공되는 것도 있다. [2]

장단점

  • 장점

동적 라이브러리는 첫째, 메모리를 절약할 수 있으며, 스와핑을 줄여준다. 여러 프로세스가 메모리에 있는 하나의 DLL 복사본을 공유하여 하나의 DLL을 동시에 사용할 수 있다. 두번째, 디스크 공간도 절약할 수 있다. 여러 응용 프로그램이 디스크에 있는 하나의 DLL 복사본을 공유할 수 있다. 세번째, DLL을 쉽게 업그레이드할 수 있다. DLL의 함수가 변경되어도 함수의 인수 및 반환 값이 변경되지않았다면 그 함수를 사용하는 응용 프로그램은 다시 컴파일하거나 링크를 할 필요가 업다. 네번째, 출시 후에 지원이 가능하다. 예를들면, 응용 프로그램을 출시할 때 사용할 수 없었던 디스플레이 기능을 지원하도록 디스플레이 드라이버 DLL을 수정할 수 있다. 다섯번째, 언어 형식이 다른 여러 프로그램을 지원한다. 서로 다른 프로그래밍 언어로 작성된 프로그램인 경우에도 함수의 호출 규칙을 따르기만 한다면 여러 프로그램에서 동일한 DLL 함수를 호출할 수 있다. 이 경우 각 프로그램과 DLL 함수는 여러 부분에서 호환될 수 있어야 한다. [1]

  • 단점

동적 라이브러리의 단점으로는 첫째, 외부 의존도가 발생하기 때문에 이식성이 어렵다. 둘째, 성능저하로 인해 속도가 느려질수있다. 동적 라이브러리는 정적 라이브러리에 비해 사용이 복잡하기 때문에 공유 라이브러리를 메모리에 올리려면 해당 라이브러리를 찾고 올리는데까지 시간이 걸린다. 이로인해 성능저하가 발생하게 되며 속도가 현저히 느려진다. [1] 세번째, 실행파일을 배포할 경우 라이브러리를 함께 배포해야한다. 컴파일시 해당 동적 라이브러리의 내용이 실행 파일안에 포함되어 있지않기 때문에, 반드시 실행 파일을 배포할 경우 라이브러리는 함께 배포해야한다. [3]

각주

  1. 1.0 1.1 1.2 동적라이브러리란?〉, 《개인사이트》, 2016-07-13
  2. 동적라이브러리〉, 《위키백과》, 2020-04-02
  3. Static Link Library와 Dynamic Link Library의 장단점〉, 《개인블로그》, 2011-01-07

참고자료

같이 보기


  의견.png 이 라이브러리 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.