반응형
DLL이란?
DLL은 Dynamic Link Libray의 약자로 동적 링크 라이브러리라고 불립니다. 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는 라이브러리입니다. DLL을 사용하면 프로그램을 여러 개별 구성 요소로 모듈화할 수 있습니다. 또한 프로그램의 다른 부분에 영향을 주지 않고 각 모듈의 업데이트를 손쉽게 할 수 있습니다.
DLL의 이점
더 적은 리소스 사용
여러 프로그램이 같은 함수 라이브러리를 사용하는 경우에 DLL을 사용하면 실제 메모리에서 로드되는 중복 코드를 줄일 수 있어 Windows 운영체제의 다른 프로그램의 성능이 크게 향상될 수 있습니다.
모듈식 아키텍처 활용
DLL을 사용하면 모듈식 프로그램을 효율적으로 개발할 수 있습니다. 여러 언어 버전이 필요한 큰 프로그램이나 모듈식 아키텍처가 필요한 프로그램을 개발할 수 있습니다.
손쉬운 배포와 설치
DLL 내 함수를 업데이트하거나 수정하는 경우 프로그램을 DLL과 다시 연결하지 않아도 됩니다. 또한 여러 프로그램이 같은 DLL을 사용하는 경우 모든 프로그램에 업데이트 또는 수정사항이 적용됩니다.
DLL 종속성
프로그램이나 DLL이 다른 DLL의 DLL 함수를 사용하는 경우 종속성이 작성됩니다. 이런 경우 해당 프로그램은 더 이상 자체 포함 프로그램이 아니며, 종속성이 손상될 시 프로그램에 문제가 발생할 수 있습니다. 아래 내용은 DLL이 충돌한 경우입니다.
- 종속 DLL을 새 버전으로 업그레이드하는 경우
- 종속 DLL을 수정하는 경우
- 종속 DLL을 이전 버전으로 덮어쓰는 경우
- 종속 DLL을 컴퓨터에서 제거하는 경우
이전 버전과 호환성이 적용되지 않으면 프로그램이 정상적으로 실행되지 않을 수 있습니다.
사용 방법
묵시적 링킹(Implict linking)
- 실행 파일 자체에 어떤 DLL의 함수를 사용하겠다는 정보를 포함시키고 운영체제가 프로그램 실행 시 해당 함수를 초기화한 후 그 것을 이용하는 방법
- 컴파일러가 자동으로 해주는 경우가 많음
명시적 링킹(Explict linking)
- 프로그램이 실행 중일 때 API를 이용하여 DLL 파일이 있는지 검사하고 동적으로 원하는 함수만 불러와서 사용하는 방법
- 사용하고자 하는 DLL이나 함수가 실행 환경에 있을지 없을지 모르는 경우 또는 메모리 절약을 위해 사용
출처
- https://learn.microsoft.com/ko-kr/troubleshoot/windows-client/deployment/dynamic-link-library
- https://ko.wikipedia.org/wiki/%EB%8F%99%EC%A0%81_%EB%A7%81%ED%81%AC_%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC
반응형