ํ”„๋ ˆ์ž„์›Œํฌ & ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ •ํ™•ํ•œ ์ฐจ์ด์ ์ด ๋ฌด์—‡์ผ๊นŒ? ๋Œ€์ถฉ ์•Œ๊ฒƒ ๊ฐ™์ง€๋งŒ ์ •ํ™•ํžˆ ์–ด๋– ํ•œ ์ฐจ์ด์ ์ด ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด์ž ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘” ๋ฐ˜์ œํ’ˆ์ด๋‚˜ , ํ™•์žฅํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„๋œ ์ถ”์ƒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ง‘ํ•ฉ์ด ์•„๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ์ดํ•ดํ•˜๋ ค๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์•Œ์•„์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ๋จผ์ € ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฐœ๋…๊ณผ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

Framwork(ํ”„๋ ˆ์ž„์›Œํฌ)


ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋ผˆ๋Œ€๋‚˜ ๊ธฐ๋ฐ˜๊ตฌ์กฐ๋ฅผ ๋œปํ•œ๋‹ค. ์ œ์–ด์˜ ์—ญ์ „ ๊ฐœ๋…์ด ์ ์šฉ๋œ ๋Œ€ํ‘œ์ ์ธ ๊ธฐ์ˆ ์ด๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด์—์„œ์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” โ€˜์†Œํ”„ํŠธ์›จ์–ด์˜ ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒํ˜ธ ํ˜‘๋ ฅํ•˜๋Š” ํฌ๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฒฐํ•ฉโ€™ ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์™„์„ฑ๋œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•„๋‹Œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์™„์„ฑ์‹œํ‚ค๋Š” ์ž‘์—…์„ ํ•ด์•ผํ•œ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ๊ฐœ๋ฐœ์„ ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ํ†ตํ•ฉ์„ฑ, ์ผ๊ด€์„ฑ์˜ ๋ถ€์กฑ์ด ๋ฐœ์ƒ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์™„์„ฑ๋œ ์ œํ’ˆ์ด ์•„๋‹Œ ์™„์„ฑ๋œ ์ œํ’ˆ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๊ฐœ๋ฐœ์ž๋ฅผ ๋„์™€์ฃผ๋Š” ๋˜๋Š” ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด์ ์œผ๋กœ ๋‹ค์‹œ ์ •์˜ํ•˜๋ฉด ์†Œํ”„ํŠธ์›จ์–ด์˜ ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ƒํ˜ธ ํ˜‘๋ ฅํ•˜๋Š” ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค ์ง‘ํ•ฉ์ด๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ ์˜ˆ์‹œ)

  • Java ๊ฐœ๋ฐœ์ž๋ผ๋ฉด Spring
  • Python ๊ฐœ๋ฐœ์ž๋ผ๋ฉด Django
  • JavaScript ๊ฐœ๋ฐœ์ž๋ผ๋ฉด Node.js
  • PHP ๊ฐœ๋ฐœ์ž๋ผ๋ฉด Laravel

ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํŠน์ง•

  • ํŠน์ • ๊ฐœ๋…๋“ค์˜ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋‚˜ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
  • ์ถ”์ƒ์ ์ธ ๊ฐœ๋…๋“ค์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ™์ด ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ๋‹ค.
  • ์ปดํฌ๋„ŒํŠธ๋“ค์€ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋†’์€ ์ˆ˜์ค€์—์„œ ํŒจํ„ด๋“ค์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์žฅ์ 

  • ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ํ”„๋กœ๊ทธ๋žจ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • ๊ธฐ๋ณธ์ ์ธ ์„ค๊ณ„์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ด ๊ฐœ๋ฐœ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ด
  • ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’๊ณ  ํ™•์žฅ์„ฑ์ด ์ข‹์Œ

ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋‹จ์ 

  • ๊ฐ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋”ฐ๋ฅธ ๋ณ„๋„์˜ ํ•™์Šต์„ ํ•„์š”๋กœ ํ•จ.
  • ์ž์œ ๋กญ๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ๊ฐœ๋ฐœ์ด ๋ถˆ๊ฐ€๋Šฅํ•จ
  • ํ”„๋กœ์ ํŠธ์˜ ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•จ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library)


๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹จ์ˆœ ํ™œ์šฉ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ๋“ค์˜ ์ง‘ํ•ฉ์„ ๋งํ•œ๋‹ค. ์ฆ‰, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  ํด๋ž˜์Šค์—์„œ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉ, ํด๋ž˜์Šค๋“ค์˜ ๋‚˜์—ด๋กœ ํ•„์š”ํ•œ ํด๋ž˜์Šค๋ฅผ ๋ถˆ๋Ÿฌ์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์ทจํ•˜๊ณ  ์žˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜ˆ์‹œ

  • ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” jQuery์ด๋‹ค.
    ใ„ด(๊ฐ„ํ˜น ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ์†Œ๊ฐœ๋˜๋Š” ๊ณณ์ด ์žˆ๋Š”๋ฐ ๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ช…์‹œ๋˜์–ด ์žˆ๋‹ค.)
  • ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(GUI)์—์„œ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋ฒ„ํŠผ, ํ…Œ์ด๋ธ” ๊ฐ™์€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๋ถ„๋ฆฌํ•ด๋‘์—ˆ๋‹ค๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค.
  • Windows์—์„œ ๊ฐ„ํ˜น ๋ณด์•˜์„ dll ํ™•์žฅ์ž๋Š” ๋™์  ๋งํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (dynamic-link library, DLL) ์˜ ์•ฝ์ž๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(object-oriented programming, OPP)์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ ๊ธฐ๋Šฅ๋งˆ๋‹ค ํ•จ์ˆ˜ํ™”ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ง‘์ด๋ผ ๋น„์œ ํ•˜์˜€๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง‘ ์•ˆ์— ํฌํ•จ๋œ ๊ฐ€๊ตฌ์— ๋น„์œ ํ•˜์˜€๋‹ค. ํ”„๋ ˆ์ž„ ์›Œํฌ๋Š” ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ๋ณด๋‹จ ํŠน์ • ๊ณต๊ฐ„์— ๋“ค์–ด๊ฐ€์„œ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๋Š๋‚Œ์ด๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž์ฒด๋ฅผ ๊ฐ€์ ธ๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ํ˜ธ์ถœํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ๊ฒƒ์ด๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์žฅ์ 

  • ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋‹ค.
  • ์ฝ”๋“œ์˜ ๋‚ด์šฉ์„ ์ˆจ๊ฒจ ๊ธฐ์ˆ  ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋ฏธ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ์–ด ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋˜์–ด ์žˆ์–ด ๋งํ‚น๋งŒ ํ•˜๋ฉด ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค)

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ข…๋ฅ˜

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ •์  ๋žญํ‚น ๋ฐฉ์‹๊ณ  ใ…๋™์  ๋žญํ‚น ๋ฐฉ์‹์— ๋”ฐ๋ผ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (= ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ๊ฒฐ๊ตญ , ๊ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ •์˜ ๋ฐ ์žฅ๋‹จ์ ์€ ๊ฐ ๋งํ‚น ๋ฐฉ์‹์˜ ์ •์˜ ๋ฐ ์žฅ๋‹จ์ ๊ณผ ๊ฐ™๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ •์  ๋งํ‚น ๊ณผ์ •์—์„œ ๋ง์ปค๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”๋กœ ํ•˜๋Š” ๋ถ€๋ถ„์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ฐพ์•„ ์‹คํ–‰ ํŒŒ์ผ์— ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ์‹์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™•์žฅ์ž๋Š” ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ๋Š” _.lib, ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ๋Š” _.a ์ด๋‹ค.

์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์žฅ์ 

์‹คํ–‰ ํŒŒ์ผ์ด ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์‹คํ–‰ํ•  ๋•Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š” ์—†๋‹ค. ์ฆ‰ , ์‹คํ–‰ ํŒŒ์ผ๋งŒ ์žˆ์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๋Š” ๋งŒํผ ์ด์‹์„ฑ์ด ์ข‹๊ณ  ์•ˆ์ •์ ์ด๋‹ค.

์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹จ์ 
  1. ์‹คํ–‰ ํŒŒ์ผ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•ด ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ํŒŒ์ผ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜์—ฌ ์žฌ๋ฐฐํฌํ•ด์•ผ ํ•œ๋‹ค.
  2. ์‹คํ–‰ ํŒŒ์ผ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋งŒํผ ์‹คํ–‰ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ปค์ง„๋‹ค.
  3. ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ์— ์‹คํ–‰๋  ๊ฒฝ์šฐ ์ฝ”๋“œ๊ฐ€ ์ค‘๋ณต๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์ž์›์„ ๋‚ญ๋น„ํ•œ๋‹ค.
  4. ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ „์ฒด๋ฅผ ๋งํ‚นํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋“ค๊นŒ์ง€ ์ „๋ถ€ ๋‹ค ํ”„๋กœ๊ทธ๋žจ์— ํฌํ•จํ•œ๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฐจ์ด์ 


๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฐจ์ด๋Š” ์ œ์–ด ํ๋ฆ„์— ๋Œ€ํ•œ ์ฃผ๋„์„ฑ์ด ๋ˆ„๊ตฌ์—๊ฒŒ / ์–ด๋””์— ์žˆ๋Š”๊ฐ€ ์ด๋‹ค. ์ฆ‰, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ Flow(ํ๋ฆ„)์„ ๋ˆ„๊ฐ€ ์ฅ๊ณ  ์žˆ๋Š๋ƒ์— ๋‹ฌ๋ ค ์žˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ „์ฒด์ ์ธ ํ๋ฆ„์„ ์Šค์Šค๋กœ๊ฐ€ ์ฅ๊ณ  ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž๋Š” ๊ทธ ์•ˆ์—์„œ ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. ๋ฐ˜๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ „์ฒด์ ์ธ ํ๋ฆ„์„ ๋งŒ๋“ค๋ฉฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๋ฆฌํ•˜๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ํ˜ธ์ถœํ•˜๋Š” ์ธก์— ์ „์ ์œผ๋กœ ์ฃผ๋„์„ฑ์žˆ๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ทธ ํ‹€์•ˆ์— ์ด๋ฏธ ์ œ์–ด ํ๋ฆ„์— ๋Œ€ํ•œ ์ฃผ๋„์„ฑ์ด ๋‚ด์žฌ(๋‚ดํฌ)ํ•˜๊ณ  ์žˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๊ฑฐ๊ธฐ์— ๋“ค์–ด๊ฐ€์„œ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๋Š๋‚Œ/๊ด€์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋™์  ๋งํ‚น(Dynamic Linking) ๊ณผ์ •์—์„œ ๋ง์ปค๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ  ํ•ด๋‹น ๋‚ด์šฉ์˜ ์ฃผ์†Œ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ๋Ÿฐํƒ€์ž„์— ์‹คํ–‰ ํŒŒ์ผ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์œ„์น˜ํ•  ๋•Œ ํ•ด๋‹น ์ฃผ์†Œ๋กœ ๊ฐ€์„œ ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™•์žฅ์ž๋Š” ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ _.dll, ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ _.so ์ด๋‹ค.

๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์žฅ์ 

์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์‹คํ–‰ ํŒŒ์ผ์ด ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง€๊ณ  ์—ฌ๋Ÿฌ๋ฏ€๋กœ ๋™์ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†“๊ณ  ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ์‹คํ–‰ ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ปดํŒŒ์ผํ•  ํ•„์š” ์—†์ด ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•ด์„œ ์žฌ๋ฐฐํฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹จ์ 

๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ์žฅ์ ๋งŒ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹คํ–‰ ํŒŒ์ผ์€ ์‹คํ–‰ํ•  ๋•Œ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋งŒ์•ฝ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ œ๋Œ€๋กœ ๋งํฌ๋˜์–ด ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜ ๋ฒ„์ „์ด ๋งž์ง€ ์•Š๋Š” ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์‹คํ–‰์ด ์•ˆ ๋  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ , ์™ธ๋ถ€ ์˜์กด๋„๊ฐ€ ์ƒ๊ธฐ๋ฉฐ ์ด์‹์„ฑ์ด ๋‚ฎ์€ ๋‹จ์ ์ด ์žˆ๋‹ค.

๋˜ํ•œ, ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋งค๋ฒˆ ํ”„๋กœ๊ทธ๋žจ ์˜์—ญ์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Œ๋กœ ์ด๋™ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜์—ฌ ์•ฝ๊ฐ„์˜ ์„ฑ๋Šฅ ๊ฐ์†Œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

DLL์˜ ๋ถ„๋ฅ˜

๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ํ•œ๋ฒˆ ๋” ์ข…๋ฅ˜๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์œˆ๋„์šฐ์—์„œ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ *dll ํŒŒ์ผ์ด๋ผ ๋ถ€๋ฅด๋Š”๋ฐ ์‹คํ–‰ ํŒŒ์ผ์—์„œ *dll ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์•”์‹œ์  ๋งํ‚น๊ณผ ๋ช…์‹œ์  ๋งํ‚น์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  1. ์•”์‹œ์  ๋งํ‚น(Implicit Linking) ์•”์‹œ์  ๋งํ‚น์€ ์‹คํ–‰ ํŒŒ์ผ ์ž์ฒด์— ์–ด๋–ค *dll์˜ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ฒ ๋‹ค๋Š” ์ •๋ณด๋ฅผ ํฌํ•จ์‹œํ‚ค๊ณ  ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ํ•ด๋‹น ํ•จ์ˆ˜๋“ค์„ ์ดˆ๊ธฐํ™”ํ•œ ํ›„ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•˜๋ฉด ํ•ด๋‹น *dll์„ ๋กœ๋“œํ•ด ์ •์˜๋œ ํ•จ์ˆ˜๋ฅผ ๋งˆ์น˜ ์ž์‹ ์˜ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹คํ–‰ ํŒŒ์ผ์— ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด์„  *libํŒŒ์ผ์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋•Œ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹Œ ์•”์‹œ์  ๋งํ‚น์„ ์œ„ํ•ด ์„œ๋Š” *lib ํŒŒ์ผ์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋•Œ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์•”์‹œ์  ๋งํ‚น์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์‹ฌ๋ณผ์ด ๋“ค์–ด์žˆ๋Š” *.lib ํŒŒ์ผ๋กœ ๋™์  ๋งํ‚น ๊ณผ์ •์— ๊ผญ ํ•„์š”ํ•˜๋‹ค. ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

  2. ๋ช…์‹œ์  ๋งํ‚น(Explcit Linking) ๋ช…์‹œ์  ๋งํ‚น์€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์ผ ๋•Œ _.dll ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๊ณ  ๋™์ ์œผ๋กœ ์›ํ•˜๋Š” ํ•จ์ˆ˜๋งŒ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ „ํ™•ํ•˜๊ฒŒ ํ˜ธ์ถœํ•  ํ•จ์ˆ˜์˜ ํฌ์ธํ„ฐ๋ฅผ ์–ป์–ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งํ‚น ๊ณผ์ •์—์„œ ํ•จ์ˆ˜ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— _.lib ํŒŒ์ผ์ด ํ•„์š” ์—†๋‹ค. ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ํ•จ์ˆ˜๋งŒ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋“ค๊นŒ์ง€ ์ „๋ถ€ ๋‹ค ํ”„๋กœ๊ทธ๋žจ์— ํฌํ•จํ•  ํ•„์š”๊ฐ€ ์—†์–ด ์ž์›์„ ์•„๋‚„ ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์— *.dll ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ฝํžˆ๋ฏ€๋กœ ์‹คํ–‰ ์ค‘ ์—ฐ๊ฒฐ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

โ– DLL ๋ถ„๋ฅ˜ ์ •๋ฆฌ

  • *.dll: ์œˆ๋„์šฐ ํ™˜๊ฒฝ์˜ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • */lib : ์œˆ๋„์šฐ ํ™˜๊ฒฝ์˜ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • *so : ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์˜ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • *a : ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์˜ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ