πŸ’Ύ DLL (Dynamic Link Library)

Jake_YoungΒ·2020λ…„ 8μ›” 4일
0

이 글은 support.microsoft.com의 λ²ˆμ—­μ„ 기본으둜
ν•„μžμ˜ μ˜μ—­κ³Ό 사견이 λ“€μ–΄κ°„ μžλ£Œμž„μ„ λ°νž™λ‹ˆλ‹€.

μš”μ•½

  • 운영체제 κΈ°λŠ₯의 λŒ€λΆ€λΆ„μ€ DLL을 기반으둜 μž‘λ™ν•œλ‹€.
  • DLL을 μ‚¬μš©ν•˜λ©΄ μ½”λ“œλ“€μ„ λͺ¨λ“ˆν™”ν•˜κ³  μž¬μ‚¬μš©ν•  수 μžˆλ‹€.
  • ν”„λ‘œκ·Έλž¨μ— ν•„μš”ν•œ λͺ¨λ“ˆλ“€μ€ 이 DLL에 ν¬ν•¨λ˜μ–΄ λ°°ν¬λ©λ‹ˆλ‹€.
  • DLL을 μ‚¬μš©ν•˜λ©΄ λ©”λͺ¨λ¦¬λ₯Ό 적게 μ μœ ν•˜λ©΄μ„œλ„ μš©λŸ‰μ€ μž‘μ€ ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€ 수 μžˆλ‹€.
  • κ·Έλž˜μ„œ μš΄μ˜μ²΄μ œκ°€ ν”„λ‘œκ·Έλž¨μ„ λΉ λ₯΄κ²Œ λ‘œλ”©ν•˜κ³  μž‘λ™ν•˜κ²Œ λ§Œλ“€ 수 μžˆλ‹€.
  • κ·ΈλŸ¬λ‚˜ DLL을 μ‚¬μš©ν•˜λ©΄ 쒅속성 λ¬Έμ œκ°€ λ°œμƒν•˜κΈ° λ•Œλ¬Έμ— ν”„λ‘œκ·Έλž¨μ΄ λ‹€μš΄λ  수 μžˆλ‹€.

DLLμ΄λž€?

  • DLL은 λ™μ‹œμ— μ—¬λŸ¬ ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©λ  수 μžˆλŠ” 데이터와 μ½”λ“œλ₯Ό κ°–κ³  μžˆλŠ” λΌμ΄λΈŒλŸ¬λ¦¬μ΄λ‹€.
  • 예λ₯Ό λ“€μ–΄, μœˆλ„μš°μ¦ˆμ—μ„œ Comdlg32 DLL은 λŒ€ν™” μƒμžμ™€ κ΄€λ ¨ν•œ κΈ°λŠ₯듀을 μˆ˜ν–‰ν•œλ‹€.
  • κ·ΈλŸ¬λ―€λ‘œ λŒ€ν™” μƒμžλ₯Ό μ—΄κ³  싢은 λͺ¨λ“  ν”„λ‘œκ·Έλž¨μ€ 이 라이브러리λ₯Ό μ‚¬μš©ν•œλ‹€.
  • DLL을 μ‚¬μš©ν•˜λ©΄ ν”„λ‘œκ·Έλž¨μ„ μ™„μ „νžˆ λΆ„λ¦¬λœ λΆ€λΆ„μœΌλ‘œ λͺ¨λ“ˆν™” ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • κ·Έλ ‡κΈ° λ•Œλ¬Έμ— λͺ¨λ“ˆμ„ λΆ„λ¦¬ν•œ 메인 ν”„λ‘œκ·Έλž¨μœΌλ‘œ 더 λΉ λ₯΄κ²Œ λ‘œλ”©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λͺ¨λ“ˆμ€ 메인 ν”„λ‘œκ·Έλž¨μ΄ ν•΄λ‹Ή κΈ°λŠ₯을 μš”μ²­ν•  λ•Œλ§Œ λ‘œλ”©λ©λ‹ˆλ‹€.

DLL의 μž₯점

  1. 더 적은 λ¦¬μ†ŒμŠ€ μ‚¬μš©

    • μ—¬λŸ¬ ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©λ˜λŠ” ν•¨μˆ˜ 등을 ν•œ κ³³μ—μ„œ μ²˜λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— λΆˆν•„μš”ν•˜κ²Œ 볡사할 ν•„μš” 없이 적은 λ¦¬μ†ŒμŠ€λ‘œ 같은 κΈ°λŠ₯을 μˆ˜ν–‰ν•΄μ€„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  2. λͺ¨λ“ˆμ‹ μ•„ν‚€ν…μ²˜ ν™œμš©

    • μ—¬λŸ¬ λ²„μ „μ˜ μ–Έμ–΄κ°€ ν•„μš”ν•œ κ²½μš°λ‚˜ λͺ¨λ“ˆμ‹ μ•„ν‚€ν…μ²˜κ°€ ν•„μš”ν•œ ν”„λ‘œκ·Έλž¨μ„ 효율적으둜 κ°œλ°œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. μ†μ‰¬μš΄ 배포와 μ„€μΉ˜

    • DLL λ‚΄λΆ€μ˜ κΈ°λŠ₯에 μ—…λ°μ΄νŠΈκ°€ ν•„μš”ν•  λ•Œ, DLL에 ν”„λ‘œκ·Έλž¨μ„ λ‹€μ‹œ μ—°κ²°ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.
    • 그리고 μ—¬λŸ¬ ν”„λ‘œκ·Έλž¨μ΄ λ™μΌν•œ DLL을 μ°Έμ‘°ν•˜κ³  μžˆμ„ λ•Œ, ν•œκΊΌλ²ˆμ— μ—…λ°μ΄νŠΈλ₯Ό μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DLL의 쒅속성

  • ν”„λ‘œκ·Έλž¨μ΄λ‚˜ DLL이 λ‹€λ₯Έ DLL을 μ‚¬μš©ν•˜λŠ” 경우 쒅속성이 λ°œμƒν•©λ‹ˆλ‹€.
  • κ·Έλž˜μ„œ μ•„λž˜μ™€ 같은 λ™μž‘μ„ μˆ˜ν–‰ν•˜κ²Œ 되면 ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
    1. μ’…μ†λœ DLL을 μ‚­μ œν•˜λŠ” 경우
    2. μ’…μ†λœ DLL을 μˆ˜μ •ν•˜λŠ” 경우 (μ—…λ°μ΄νŠΈ, λ‘€λ°±, μž¬μž‘μ„±)
  • κ·Έλž˜μ„œ μœˆλ„μš°μ¦ˆμ—μ„œλŠ” μ•„λž˜μ˜ 방식을 μΆ”μ²œν•˜κ³  μ œκ³΅ν•΄λ“œλ¦½λ‹ˆλ‹€.
    1. Windows File Protection
      • μ‹œμŠ€ν…œ DLL의 경우 ν•¨λΆ€λ‘œ 변경될 수 μ—†μŠ΅λ‹ˆλ‹€.
      • 그런 μž‘μ—…μ„ ν•˜λ €λ©΄ μœ νš¨ν•œ μ „μž μ„œλͺ…이 ν•„μš”ν•©λ‹ˆλ‹€.
    2. 개인용 DLLs
      • 개인용 DLL을 μž‘μ„±ν•˜λ©΄ λ‹Ήμ‹ μ˜ ν”„λ‘œκ·Έλž¨μ„ λ…λ¦½μ μœΌλ‘œ μš΄μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
      • 개인용 DLL을 μ‚¬μš©ν•˜λ €λ©΄ ν”„λ‘œκ·Έλž¨μ˜ 루트 폴더에 DLL을 μ €μž₯ν•˜μ‹­μ‹œμ˜€.
profile
μžλ°”μŠ€ν¬λ¦½νŠΈμ™€ 파이썬 그리고 컴퓨터와 λ„€νŠΈμ›Œν¬

0개의 λŒ“κΈ€