본문 바로가기
카테고리 없음

정적 라이브러리와 동적 라이브러리

by yunchanlee 2024. 10. 18.

정적 라이브러리 (static Library)

컴파일 시 프로그램에 직접 연결되어, 파일을 참조할 때 필요한 코드를 프로그램이 포함 시키므로 프로그램을 배포할 때 .lib 파일이 필요하지 않는다.

 

정적 링크를 하면 프로그램의 크기가 커질 수 있지만 실행 시점에서 추가적인 외부 의존성이 필요하지 않다는 장점을 가지고 있다.

 

사용 예

정적 라이브러리는 개발자가 자주 사용하는 함수나 알고리즘을 재사용하기 위해 사용된다.

직접 프로그램에 코드가 포함되기 때문에 파일을 실행할 때 별도의 외부 라이브러리 파일을 참조할 필요 없이 독립적으로 동작할 수 있다.

 

 

동적 라이브러리(Dynamic Link Library)

정적 라이브러리와 다르게 실행파일에 포함되지 않고, 프로그램 실행 시에 참조된다.

따라서 실행파일의 크기가 작다.

여러 프로그램이 해당 라이브러리를 공유하며 사용하므로 메모리 효율성이 좋다.

 

사용 예

여러 프로그램에서 해당 라이브러리를 사용해야 하는데 lib 라이브러리 라면 각 프로그램마다 독립적으로 프로그램에 포함되어 있어야하므로 메모리 사용량이 커질 수 밖에 없다 하지만 dll 라이브러리는 한번만 메모리에 로드되면 여러 프로그램에서 참조가 가능하므로 메모리의 사용량을 절약할 수 있다.

 

또한 라이브러리의 업데이트를 해야하는 상황일 때 정적 라이브러리는 프로그램을 재컴파일 하여야 하지만 동적 라이브러리는 해당 dll 파일 하나만 수정하면 되기 때문에 업데이트에 용이하다.

댓글