Programming/C#

DLL 개념

박쿠리 2024. 8. 19. 21:30

DLL (Dynamic Link Library) : 동적 링크 라이브러리, 프로그램에서 공통으로 사용되는 코드, 데이터, 그리고 리소스를 모듈화하여 여러 응용 프로그램이 공유할 수 있도록 만드는 파일 형식이다.

 

DLL 을 사용하는 이유

 

  • 코드 재사용:
    • 여러 프로그램에서 동일한 코드를 사용할 수 있게 해준다. 이렇게 하면 코드 중복을 줄이고, 유지보수성을 향상시킬 수 있다.
  • 메모리 절약:
    • DLL을 사용하는 프로그램은 메모리에서 공통으로 사용되는 모듈을 한 번만 로드한다. 이렇게 하면 메모리 사용량이 줄어들어 시스템 리소스가 절약됩니다.
  • 모듈화 및 관리 용이:
    • 프로그램 기능을 여러 DLL로 나누어 관리하면, 특정 기능에 문제가 발생하거나 업데이트가 필요할 때 해당 DLL만 수정하거나 교체할 수 있다.
  • 프로그램 크기 감소:
    • DLL을 사용하면 응용 프로그램이 필요로 하는 기능들을 별도의 파일로 분리하여, 실행 파일 자체의 크기를 줄일 수 있다.
  • 다양한 언어 지원:
    • C++, C#, Python 등 다양한 프로그래밍 언어에서 동일한 DLL을 사용할 수 있기 때문에, 서로 다른 언어로 개발된 프로그램 간에 기능을 공유할 수 있다.

 

DLL 을 사용하는 시기

 

  • 공통 기능 구현:
    • 여러 응용 프로그램이 동일한 기능을 필요로 할 때, 예를 들어 그래픽 렌더링, 파일 입출력, 네트워크 통신 등을 처리하는 공통 모듈을 DLL로 만들어 사용할 수 있다.
  • 플러그인 구조:
    • 응용 프로그램이 플러그인 형태로 기능을 확장할 수 있도록 할 때 DLL이 유용다. 예를 들어, 그래픽 편집 프로그램에서 플러그인 형태로 필터를 추가할 수 있도록 할 때 DLL을 사용한다.
  • 배포 및 업데이트 용이성:
    • 프로그램의 특정 부분만 업데이트하거나 기능을 추가할 때, 전체 프로그램을 다시 배포하는 대신 특정 DLL 파일만 교체하여 업데이트를 쉽게 할 수 있다.
  • 운영 체제 및 서드파티 라이브러리 호출:
    • 윈도우 운영 체제에서 시스템 함수 호출, 또는 다른 서드파티 라이브러리를 사용할 때 DLL을 통해 해당 기능을 호출할 수 있다.

 

DLL 예시

 

Microsoft 의 Office 프로그램이 있다. word, excel, powerpoint 같은 프로그램들이 공통으로 사용하는 기능이 있는데, 예를 들어 파일 열기/저장, 프린트 기능 등이 있다.

 

이런 공통 기능들을 각각의 응용 프로그램에 별도로 구현하면 코드 중복이 발생하고, 프로그램 크기가 커질 뿐 아니라, 기능 업데이트 시 각 프로그램마다 수정을 해야 하는 문제가 발생한다.

 

예를 들어 MSO.DLL 파일은 Ms office 의 공통 기능을 모듈화했다.

 

1. UI 요소 관리:

  • Office 리본 메뉴, 도구 모음, 상태 표시줄 등과 같은 사용자 인터페이스 요소를 관리한다. Office 프로그램 간의 일관된 UI를 제공하는 데 기여한다.

2. 파일 입출력 기능:

  • 문서, 스프레드시트, 프레젠테이션 등의 파일을 열고, 저장하고, 출력하는 기능을 지원한다. 다양한 파일 형식을 처리할 수 있도록 하는 코드가 포함되어 있다.

3. 그래픽 렌더링:

  • 차트, 도형, 이미지 등을 렌더링하고 편집하는 데 필요한 그래픽 기능을 제공한다. 예를 들어, Word와 Excel에서 동일한 방식으로 차트를 그리거나 편집할 수 있게 해준다.

4. 공통 대화 상자:

  • 파일 열기, 저장, 인쇄 등의 공통 대화 상자를 생성하고 관리하는 기능이 포함되어 있다. Office의 여러 프로그램에서 동일한 대화 상자를 사용할 수 있다.

5. 데이터 접근 및 조작:

  • 데이터베이스와의 연결, 쿼리 실행, 데이터 가져오기/내보내기 기능을 포함한다. Excel에서 데이터베이스 연결을 설정하거나 Word에서 데이터 소스를 사용하는 기능을 지원한다.

6. 오류 처리 및 로그 기능:

  • 응용 프로그램에서 발생하는 오류를 처리하고, 로그를 기록하여 문제 해결을 돕는 기능을 제공한다.

7. 보안 기능:

  • 문서 보호, 암호화, 디지털 서명과 같은 보안 기능을 관리한다. 사용자가 문서를 보호하고, 인증된 문서만 열 수 있도록 돕는다.

8. 스마트 태그 및 AutoCorrect:

  • 문서에서 텍스트를 자동으로 수정하거나 서식을 적용하는 기능을 제공한다. 예를 들어, "teh"를 "the"로 자동으로 수정하거나, 전화번호를 인식하여 하이퍼링크로 변환하는 기능이 포함된다.

9. 애드인 지원:

  • 서드파티 개발자가 Office 프로그램을 확장할 수 있도록 지원하는 애드인(플러그인) 기능을 제공한다. MSO.DLL은 애드인이 Office 프로그램과 상호작용할 수 있는 인터페이스를 제공한다.

 

 

반응형

'Programming > C#' 카테고리의 다른 글

DLL 추가 / 열기 및 수정 / 추출  (0) 2024.09.01
C# - npgsql & IIS 포트  (0) 2024.08.30
C# - GPDB 커넥션 에러  (0) 2024.08.26
C# 에서 서버 간 JSON 데이터 주고받기  (0) 2024.08.19
C# 파일 구성  (0) 2024.08.19