ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] DLL(Dynamic Link Library)
    CS 2025. 1. 20. 01:19

    DLL(Dynamic Link Library)

     

    DLL(Dynamic Link Library)은 동적 링크 라이브러리로, Windows 운영체제에서 여러 프로그램이 공용으로 사용할 수 있도록 기능을 묶어놓은 파일이다. 확장자는 .dll이며, 주로 실행 파일(.exe)과 함께 동작하며 코드, 데이터, 리소스(예: 아이콘, 이미지)를 공유하는 데 사용된다.

     

     

    dll의 주요 특징

     

    🔹 코드 재사용성

    • 여러 프로그램에서 동일한 코드를 공유하여 중복을 줄일 수 있음.
    • 예를 들어, Windows에서 User32.dll, Kernel32.dll 같은 시스템 DLL을 여러 프로그램이 공동으로 사용.

    🔹 메모리 절약

    • DLL을 사용하는 프로그램들은 실행 시 필요한 코드만 메모리에 로드함.
    • 중복되는 코드를 각각 포함하는 것보다 메모리 사용량이 감소.

    🔹 업데이트 용이성

    • 프로그램을 수정하지 않고도, DLL 파일만 업데이트하면 기능을 개선할 수 있음.
    • 예: 게임에서 물리 엔진을 포함한 DLL을 업데이트하면 게임 전체를 다시 빌드하지 않아도 됨.

    🔹 모듈화 (Modularity)

    • 프로그램을 여러 개의 독립적인 모듈로 분리할 수 있음.
    • 예를 들어, Unreal Engine에서는 여러 기능이 DLL로 분리되어 있어 필요할 때만 로드할 수 있음.

     

    Static Library(정적 라이브러리)

     

    정적 라이브러리(Static Library)는 실행 파일(.exe)에 컴파일 시점에서 포함되는 라이브러리이다. 보통 .lib (Windows) 또는 .a (Linux, macOS) 확장자를 가지며, 프로그램이 실행될 때 별도의 추가 파일 없이 라이브러리 기능을 사용할 수 있다.

     

     

     

    static library(.lib)와 dynamic link library(.dll)의 차이

    구분 정적 라이브러리 (Static Library) 동적 라이브러리 (DLL, Dynamic Library)
    파일 확장자 .lib (Windows), .a (Linux/macOS) .dll (Windows), .so (Linux), .dylib (macOS)
    링크 방식 컴파일 시 실행 파일에 포함 실행 시 필요할 때 로드
    파일 크기 실행 파일(.exe)이 커짐 실행 파일은 작고 DLL이 별도로 존재
    메모리 사용 각각의 실행 파일이 라이브러리 코드 포함 여러 프로그램이 하나의 DLL을 공유 가능
    배포 방식 실행 파일만 배포하면 됨 실행 파일과 함께 DLL도 배포해야 함
    업데이트 실행 파일을 다시 빌드해야 함 DLL만 교체하면 프로그램 변경 가능
    속도 일반적으로 빠름 (함수 호출이 직접 포함됨) DLL 로딩 및 함수 탐색이 필요하여 상대적으로 느릴 수 있음

     

Designed by Tistory.