본문 바로가기
study_java/자바 공부하기

DLL 이란?

by developer_j 2020. 6. 2.
728x90
반응형

1. DLL이란?

 

DLL을 설명하기 전에 먼저 라이브러리(Library)라는 것이 있다. 라이브러리는 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는, 일종의 단편화된 프로그램이다. DLL은 다이나믹(Dynamic) 링크(Link) 라이브러리(Library)를 줄인 말이다. 라이브러리는 소프트웨어를 개발할 때 자주 쓰거나 기초적인 함수들을 중복개발하는 수고스러움을 피하기 위해, 표준화된 함수나 데이터 타입을 모아놓은 것이다. 이러한 라이브러리는 언제 메인 프로그램에 연결하느냐에 따라서 Static Link와 Dynamic Link로 나뉘며, DLL은 이 중 후자를 뜻한다.

스태틱 링크(Static Link = 정적 링크)는 컴파일 시점에 라이브러리가 링커에 의해 연결되어 실행 파일의 일부분이 된다. 그러나 다이나믹 링크(Dynamic Link = 동적 링크)는 실행 파일에서 해당 라이브러리의 기능을 사용 해야 할 때 라이브러리 파일을 참조하여(혹은 다운로드하여) 기능을 호출한다. DLL을 사용하면 효율적으로 코드를 모듈화하고 재사용할 수 있으며, 메모리 사용 효율성을 높이고 사용되는 디스크 공간을 줄일 수 있다. 그 결과, 운영 체제와 프로그램이 더 빠르게 로드 및 실행되며 컴퓨터에서 디스크 공간을 더 적게 차지하게 된다.

프로그램이 DLL을 사용할 때는 종속성이라는 문제로 인해 프로그램이 실행되지 않을 수 있다. 종속성은 프로그램에서 DLL을 사용하면 작성되는 것으로, 종속성이 손상되면 프로그램이 제대로 작동하지 않을 수 있다.

문제가 생기는 경우)

   1. 종속 DLL을 새 버전으로 업그레이드하는 경우

   2. 종속 DLL을 수정하는 경우

   3. 종속 DLL을 이전 버전으로 덮어쓰는 경우

   4. 종속 DLL을 컴퓨터에서 제거하는 경우

이러한 상황을 대개 DLL 충돌이라고 하며, 특히 이전 버전과의 호환성이 맞지 않으면 프로그램이 정상적으로 실행되지 않을 수 있다.


2. DLL의 이점

 

- 더 적은 리소스 사용

여러 프로그램이 같은 DLL을 사용하면 디스크와 실제 메모리에서 로드되는 중복 코드를 줄일 수 있다. 중복 코드의 감소는 다른 프로그램들의 성능을 향상시킬 수 있다.

- 모듈식 아키텍처 활용

DLL을 사용하면 모듈식 프로그램을 효율적으로 개발할 수 있다. 즉, 여러 언어 버전이 필요한 큰 프로그램이나 모듈식 아키텍처가 필요한 프로그램을 개발할 수 있다.

- 손쉬운 배포와 설치

DLL 내의 함수를 업데이트하거나 수정해야 하는 경우 DLL을 배포하고 설치할 때 프로그램을 DLL과 다시 연결하지 않아도 됩니다. 또한 여러 프로그램이 같은 DLL을 사용하는 경우에는 모든 프로그램에 업데이트나 수정 내용이 적용됩니다. 단, 호환성에 주의해야 위에서 설명한 DLL 충돌 현상을 피할 수 있다.


3. 전용 DLL

 

전용 DLL을 사용하면 공유 DLL에 적용된 변경 내용이 적용되지 않도록 프로그램을 격리할 수 있다.

 

 

 

내용 참조

- 나무위키 (DLL, 라이브러리)

- 마이크로소프트 사이트 https://support.microsoft.com/ko-kr/help/815065/what-is-a-dll

728x90
반응형