공부/게임수학 및 DirectX12

Library

원클릭쓰리버그 2022. 3. 28. 15:12
728x90

Library란?

 

라이브러리는 유사한 기능을 하는 컴파일된 함수나 클래스의 집합체이다. 이미 컴파일되었기 때문에 링크를 통해 호출하여 사용할 수 있습니다.

 

구성 

  • 정적 라이브러리(lib) : 링크 시간에 실행파일에 포함된다.
  • 동적 라이브러리(dll) : 실행파일에 포함되지 않고 실행 시간에 메모리에 로드된다.

 

 

정적 라이브러리 (Static Library)

 

프로그램 빌드시 라이브러리가 제공하는 코드를 실행 파일에 넣는 방식의 라이브러리이다. 컴파일의 링킹 단계에서 실행파일에 결합되는데, 라이브러리(lib 파일)를 실행 바이너리에 포함시킨다는 의미이다.

 

 

 

출처 : https://blog.daum.net/coolprogramming/41

 

장점

  1. 동적 라이브러리에 비해 속도가 빠르다. (런타임시 외부 참조가 필요없어 속도가 향상 됨.)
  2. 생성이 간단하다.
  3. 프로그램 내 적재하기 때문에 이식성이 좋다.(컴파일시 해당 내용이 실행 바이너리 안에 포함된다)
  4. 안정적으로 사용이 가능하다. (시스템 환경 변화에 영향을 주지 않는다.)

단점

  1. 메모리 낭비
  2. 라이브러리 변경이 필요할 경우 프로그램을 재배포해야한다.

 

 

동적 라이브러리(Dynamic Library)

 

 

여러 프로그램이 공통적으로 필요로 하는 기능들을 프로그램과 분리하여 필요할 때에만 불러내어 쓸 수 있게 만들어 놓은 라이브러리를 의미한다.

 

 

 

출처 : https://blog.daum.net/coolprogramming/41

 

장점

  1. 메모리 절약이 가능하다.
  2. 디스크 공간 절약 가능
  3. 독립적으로 업그레이드 가능하다.
  4. 출시 후에 지원이 가능하다.
  5. 언어 형식이 다른 여러 프로그램을 지원한다.

단점

  1. 외부 의존도 발생으로 이식성이 어렵다.
  2. 성능저하가 우려됨
    • 어딘가 있는 동적 라이브러리를 찾아 메모리에 등록하는데 비용이 발생함
  3. 실행파일을 배포할 경우 라이브러리를 함께 배포해야한다.
    • 실행 파일은 함수에 대한 정보만 갖고 있어 DLL파일이 꼭 있어야 함

'공부 > 게임수학 및 DirectX12' 카테고리의 다른 글

Direct3D 12 그래픽 파이프라인  (0) 2022.04.06
기초 베이스  (0) 2022.03.29
Rendering Pipe Line & GPU  (0) 2022.03.28