반응형
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가 발생한다.
종속성을 찾아 해결해줘야 하지만 종속성이 깊고 상황에 따라 해결하기 애매한 케이스들이 많다.
가장 좋은것은 예방이다.
반응형