-
[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 로딩 및 함수 탐색이 필요하여 상대적으로 느릴 수 있음 'CS' 카테고리의 다른 글
[CS] 프로세스(Process)와 스레드(Thread)의 차이 (0) 2025.01.20 [CS] 배치 작업 처리 (0) 2023.05.12 [CS] 나만의 간단한 프레임워크 설계 방법 (0) 2023.05.10 [CS] Unmanaged Language VS Managed Language (0) 2023.05.08 [CS] 공통 코드 (0) 2023.05.08