DLL(Dynamic Link Library) 이란?
- IT/윈도우(Window)
- 2020. 3. 25.
DLL이란? (Dynamic Link Library)
라이브러리 (Library)
- 소프트웨어 개발에서 자주 쓰고 기초적인 함수들을 중복 개발하는 것을 피하기 위해
표준화된 함수 및 데이터 타입을 만들어서 모아 놓은 것.
즉, 자주 사용되는 표준적인 함수를 매번 직접 작성해서 사용하는 것은 지나치게 시간 소모적이므로 표준화할 수 있는 함수를 미리 만들어서 모아 놓은 것.
- 라이브러리를 한 번 구축해 놓기만 하면 다시 만들 필요없이 불러서 사용할 수 있으므로 개발 속도도 빨라지고 신뢰성도 확보할 수 있다.
- 이런 라이브러리는 언제 메인 프로그램에 연결하느냐에 따라서 Static Link와 Dynamic Link로 나뉘며, DLL은 이 중 후자를 뜻한다.
스태틱 링크(Static Link Library)
- 정적 링크라고 하며 컴파일 시점에 라이브러리가 링커에 의해 연결되어 실행 파일의 일부분이 된다.
DLL(Dynamic Link Library)
- 동적 링크라고 하며 실행 파일에서 해당 라이브러리의 기능을 사용 시에만, 라이브러리 파일을 참조하여(혹은 다운로드받아) 기능을 호출한다.
- 정적 링크와는 다르게 컴파일 시점에 실행 파일에 함수를 복사하지 않고, 함수의 위치정보만 갖고 그 함수를 호출할 수 있게 한다.
1. DLL의 이점
1) 더 적은 리소스 사용
- 한 코드를 여러 프로그램이 동시에 사용하기 때문에 메모리가 절약된다.
- 사용되는 디스크 공간을 줄일 수 있다.
(정적링크를 사용하는 경우 실행 파일에 라이브러리의 함수가 모두 포함되어 실행파일이 커지지만 DLL을 사용하는 프로그램은 크기가 작다.)
- 운영 체제와 프로그램이 더 빠르게 로드 및 실행되며 컴퓨터에서 디스크 공간을 더 적게 차지한다.
2) 모듈식 아키텍처 활용
- DLL을 사용하면 모듈식 프로그램을 효율적으로 개발할 수 있다.
여러 언어 버전이 필요한 큰 프로그램이나 모듈식 아키텍처가 필요한 프로그램을 개발할 수 있다.
3) 손쉬운 배포와 설치
- DLL 내의 함수를 업데이트하거나 수정해야 하는 경우 DLL을 배포하고 설치할 때 프로그램을 DLL과 다시 연결하지 않아도 된다.
- 여러 프로그램이 같은 DLL을 사용하는 경우에는 모든 프로그램에 업데이트나 수정 내용이 적용된다.
4) 프로그래머들의 분담 작업이 용이하며 재사용성도 뛰어남.
또한 코드의 양이 적어지므로 디버깅도 용이해진다