본문 바로가기

기록/란?

dll 이란?

반응형


dll이란 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는 라이브러리입니다.


ref : https://support.microsoft.com/ko-kr/help/815065/what-is-a-dll


쉽게 말해 모듈화되어 있는 라이브러리이다.


이론상 dll의 장점은 아래와 같다.

1. 더 적은 리소스 사용 

-> 여러 프로그램에서 같은 dll을 사용 할 경우 한번 메모리에 올리고 그걸 같이 사용하기 때문에 중복 로드가 적어진다.

2. 모듈식 아키텍처 활용

-> 레고 부품 가져다 쓰듯 필요한 dll을 가져다 쓸 수 있다.

3. 손쉬운 배포와 설치

-> dll 수정 이후 별도로 프로그램과 연결할 필요가 없다. 

(다만 이건 해당 dll과 프로그램이 디펜던시가 없다는 가정(= 아주 잘 짜여진 프로그램) 하에..)


dll 종속성

프로그램이 복잡해지고 사용하는 dll이 많아질수록 골치아파지는 부분이다.

위에서 말한대로 dll이 완전히 분리되어있으면 베스트겠지만 실제론 종속성이 존재한다.

이상태로 프로그램이 커지고 코드가 수정되면서 아래와 같은 상황이 발생할 수 있다.


  • 종속 DLL을 새 버전으로 업그레이드하는 경우
  • 종속 DLL을 수정하는 경우
  • 종속 DLL을 이전 버전으로 덮어쓰는 경우
  • 종속 DLL을 컴퓨터에서 제거하는 경우

이런경우 보통 dll conflict가 발생한다.

종속성을 찾아 해결해줘야 하지만 종속성이 깊고 상황에 따라 해결하기 애매한 케이스들이 많다.

가장 좋은것은 예방이다.




반응형