2021년 4월 15일
동적 연결 라이브러리 (Dynamic Link Library)
I. 동적 연결 라이브러리 (Dynamic Link Library)의 개요
가. 동적 연결 라이브러리의 개념
- 컴파일 시점에 실행 파일에 함수 복사 없이 함수의 위치 정보를 이용하여 기능을 호출하는 라이브러리 참조 기술
나. 동적 연결 라이브러리의 특징
- 리소스 최적화: 하나의 코드를 여러 프로그램이 동시에 사용하므로 메모리 및 디스크 공간 절약
- 배포 및 설치 용이: 프로그램과 독립적으로 DLL 함수 업데이트 및 수정, 배포, 설치 가능
- 재사용성: 개발자 간 협업이 용이하며, 코드의 양이 적어 디버깅이 용이
II. 동적 연결 라이브러리 연결 방식 및 유형
가. 동적 연결 라이브러리 연결 방식
나. 동적 연결 라이브러리의 유형
구분 | 유형 | 설명 |
---|---|---|
DLL 연결 형태 | 묵시적 연결 (Implicit Linking) | – 프로그램 실행 시 연결 – 실행 파일 자체에 함수 사용 정보 포함 |
명시적 연결 (Explicit Linking) | – 프로그램 실행 중 연결 – API 기반 필요 함수만 호출 | |
DLL 호출 형태 | 정규 DLL | – 클래스 형태가 아닌 C 함수 형태 – MFC 미사용 타 프로그램과 호환 가능 |
확장 DLL | – DLL 호출 시 클래스 기반 호출 – MFC 구조체와 호환 |
III. 동적 연결 라이브러리와 정적 연결 라이브러리 비교
비교 항목 | 동적 연결 라이브러리 | 정적 연결 라이브러리 |
---|---|---|
프로그램 포함 여부 | 프로그램에 독립적 | 프로그램에 포함 |
적용 시기 | 런타임 시 호출 | 컴파일 시 프로그램에 포함 |
장점 | 유지관리 용이, 재사용성 | 실행 시 외부 의존도 낮음 |
단점 | 실행 시 외부 의존도 발생 | 메모리 낭비, 유지관리 어려움 |
One Comment
잘 보고 갑니다~