본문 바로가기
etc/블로그 테크닉

DLL (Dynamic Link Library) 다이나믹 링크 라이브러리

by 체게바 2024. 10. 28. 23:31
반응형

11
된장찌개, 부대찌개

 

DLL (Dynamic Link Library) 

 

라이브러리 라는 것이 있고, 그 라이브러리에는 '스태틱 링크 라이브러리 (SLL: Static Link Liberary)'와 '다이나믹 라이브러리(DLL)'가 있는데, 이것을 한국어로는 정적 라이브러리와 동적 라이브러리 라고 부른다. 등등 어쩌구 저쩌구 하는 설명을 하면 대부분의 사람들은 알아 들을 수가 없다. 왜냐하면 일단 라이브러리는 영어로 도서관 이라는 뜻만 알고 있을 뿐 그것이 컴퓨터 용어로 어떻게 사용되는지를 모르기 때문이고 또 컴파일의 개념이 없으면 링크라는 말을 알아 들을 수가 없기 때문이다.

 

다시 말해 이건 매우 전문적인 용어 설명이라는 뜻이다. 그러나 전혀 컴퓨터 전문가가 아닌 사람도 매일 컴퓨터를 사용해서 일을 하다 보면 가끔씩 'dll, DLL 디엘엘' 어쩌구 저쩌구 하는 말을 듣게 된다. 그러면 이렇게 자주 듣게되는 전문용어 중 하나인 DLL을 좀 쉽게 이해하도록 설명하는 법은 없을 까?? '요리'에 빗대어 설명을 해보자 

 

부대찌개와 된장찌개의 '요리재료' 와 컴퓨터 프로그램의 '함수'  

 

우리가 자주 먹는 음식 중에 '부대찌개와 된장찌개'가 있다. 이 음식을 만들기 위해서는 필요한 요리재료들이 있는데 이런 요리재료들을 컴퓨터에서는 '함수'라고 부르고 이런 재료들을 잘 모아 놓는 냉장고 같은 곳을 '라이브러리' 라고 부른다. 그리고 컴퓨터 프로그램 들이란 이런 함수 즉 재료들을 요리하듯이 이러저리 섞어서 우리가 원하는 맛을 내듯이 원하는 대로 작동하도록 만드는 것이다. 

 

두 요리의 공통재료로는 예를들어 '간장, 소금, 파, 두부, 김치' 정도가 있다고 해보자. 위에서 말했듯이 이런 공통재료들을 모아 놓는 곳을 '라이브러리'라고 한다. 그리고 된장찌게에만 필요한 고유재료는 '된장' 이라고 하고, 부대찌개에 필요한 고유재료는 '햄쏘세지' 라고 해보자 

 

여기서 어떤 요리사는 된장찌개 요리를 준비할 때, 고유재료인 '된장'과 공통재료인 '간장, 소금, 파, 두부, 김치'를 조금씩 덜어서 된장찌개 요리재료 칸에 '된장찌개 요리재료' 라고 보관하고, 또 부대찌개 재료를 준비할 때도 고유재료인 '햄쏘세지'와 공통재료인 '소금, 간장, 파, 두부, 김치'를 조금씩 덜어서 '부대찌개 재료' 칸에 모아 따로따로 준비해 둔다고 해보자. 이렇게 보관하는 방법을 컴퓨터에서는 스태틱 라이브러리 (정적 라이브러리) 방식 이라고 한다. 다시말해 내가 돌리는 프로그램 속에 각 필요한 함수들이 필요한 요리재료들 처럼 모두 다 들어가 있다는 말이다. 

 

그런데 또 어떤 다른 요리사는 된장찌개에서만 사용되는 고유재료인 '된장'을 한 곳에 보관하고, 부대찌개의 고유재료들인 '햄쏘세지'를 한곳에 보관하고, 그리고 '공통재료'들인 '소금, 간장, 파, 두부, 김치' 는 소분을 하지 않고 그냥 '공통재료'라는 칸에 두었다가 필요할 때마다 조금씩 꺼내가는 방식으로 준비할 수도 있다. 이렇게 보관하는 방식을 컴퓨터에서는 다이나믹 라이브러리 링크 (동적 라이브러리) 방식 이라고 부른다. 즉 내가 돌리는 프로그램 안에 내가 필요한 모든 함수 즉 요리재료들이 모두 다 들어 있지 않다는 뜻이며, 돌리다가 즉 요리하다가 어떤 재료가 필요하면 필요한 것들을 그때그때 꺼내 쓰듯이 프로그램도 필요한 함수를 그때그때 꺼내 쓰도록 프로그램을 만든다는 말이다. 

 

장.단점

 

프로그램을 직접 만들어 쓸 사람이 아니면 굳이 알아야 할 필요는 없다. 다만, 간단한 내용만 말한다면, DLL로 만든 프로그램은 가볍고 빠르지만 환경세팅을 잘 해야 하고, SLL로 만든 프로그램은 무겁고 느리지만 환경을 잘 타지 않고 아무 곳에서나 잘 돌아간다는 정도만 알면 될 것 같다. 

 

 

 

 

 

반응형