ํ๋ ์์ํฌ & ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ํํ ์ฐจ์ด์ ์ด ๋ฌด์์ผ๊น? ๋์ถฉ ์๊ฒ ๊ฐ์ง๋ง ์ ํํ ์ด๋ ํ ์ฐจ์ด์ ์ด ์๋์ง ์์๋ณด์ ํ๋ ์์ํฌ๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋ ๋ฐ์ ํ์ด๋ , ํ์ฅํด์ ์ฌ์ฉํ ์ ์๋๋ก ์ค๋น๋ ์ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์งํฉ์ด ์๋๋ค. ํ๋ ์์ํฌ๊ฐ ์ด๋ค ๊ฒ์ธ์ง ์ดํดํ๋ ค๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๊ฐ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์์์ผ ํ ๊ฒ์ด๋ค. ๋จผ์ ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ๋ ๊ณผ ์ฐจ์ด์ ์ ๋ํด ์์๋ณด์
Framwork(ํ๋ ์์ํฌ)
ํ๋ ์์ํฌ๋ ๋ผ๋๋ ๊ธฐ๋ฐ๊ตฌ์กฐ๋ฅผ ๋ปํ๋ค. ์ ์ด์ ์ญ์ ๊ฐ๋ ์ด ์ ์ฉ๋ ๋ํ์ ์ธ ๊ธฐ์ ์ด๋ค. ์ํํธ์จ์ด์์์ ํ๋ ์์ํฌ๋ โ์ํํธ์จ์ด์ ํน์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ํธ ํ๋ ฅํ๋ ํฌ๋์ค์ ์ธํฐํ์ด์ค์ ๊ฒฐํฉโ ์ด๋ผ ํ ์ ์๋ค. ์์ฑ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ฑ์ํค๋ ์์ ์ ํด์ผํ๋ค. ๊ฐ์ฒด ์งํฅ ๊ฐ๋ฐ์ ํ๊ฒ ๋๋ฉด์ ํตํฉ์ฑ, ์ผ๊ด์ฑ์ ๋ถ์กฑ์ด ๋ฐ์๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ค ํ๋๋ผ๊ณ ํ ์ ์๋ค.
์ฆ ๊ฐ๋จํ๊ฒ ํ๋ ์์ํฌ๋ ์์ฑ๋ ์ ํ์ด ์๋ ์์ฑ๋ ์ ํ์ ๋ง๋ค๊ธฐ ์ํด์ ๊ฐ๋ฐ์๋ฅผ ๋์์ฃผ๋ ๋๋ ๊ธฐ๋ฐ์ด ๋๋ ์ญํ ์ ํ๋ค. ์ด๋ฅผ ์ํํธ์จ์ด์ ์ผ๋ก ๋ค์ ์ ์ํ๋ฉด ์ํํธ์จ์ด์ ํน์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ํธ ํ๋ ฅํ๋ ํด๋์ค์ ์ธํฐํ์ด์ค ์งํฉ์ด๋ค.
ํ๋ ์์ํฌ ์์)
- Java ๊ฐ๋ฐ์๋ผ๋ฉด Spring
- Python ๊ฐ๋ฐ์๋ผ๋ฉด Django
- JavaScript ๊ฐ๋ฐ์๋ผ๋ฉด Node.js
- PHP ๊ฐ๋ฐ์๋ผ๋ฉด Laravel
ํ๋ ์์ํฌ์ ํน์ง
- ํน์ ๊ฐ๋ ๋ค์ ์ถ์ํ๋ฅผ ์ ๊ณตํ๋ ์ฌ๋ฌ๊ฐ์ง ์ฌ๋ฌ ํด๋์ค๋ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- ์ถ์์ ์ธ ๊ฐ๋ ๋ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ์ด ์์ ํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ค.
- ์ปดํฌ๋ํธ๋ค์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ๋์ ์์ค์์ ํจํด๋ค์ ์กฐ์ํ ์ ์๋ค.
ํ๋ ์์ํฌ์ ์ฅ์
- ๊ฐ์ด๋๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ํ๋ก๊ทธ๋จ์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์
- ๊ธฐ๋ณธ์ ์ธ ์ค๊ณ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํด ๊ฐ๋ฐ ์๋๋ฅผ ํฅ์์ํด
- ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ๋๊ณ ํ์ฅ์ฑ์ด ์ข์
ํ๋ ์์ํฌ์ ๋จ์
- ๊ฐ ํ๋ ์์ํฌ์ ๋ฐ๋ฅธ ๋ณ๋์ ํ์ต์ ํ์๋ก ํจ.
- ์์ ๋กญ๊ณ ์ ์ฐํ๊ฒ ๊ฐ๋ฐ์ด ๋ถ๊ฐ๋ฅํจ
- ํ๋ก์ ํธ์ ์ฉ๋์ด ์ฆ๊ฐํจ
๋ผ์ด๋ธ๋ฌ๋ฆฌ(Library)
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋จ์ ํ์ฉ๊ฐ๋ฅํ ๋๊ตฌ๋ค์ ์งํฉ์ ๋งํ๋ค. ์ฆ, ๊ฐ๋ฐ์๊ฐ ๋ง๋ ํด๋์ค์์ ํธ์ถํ์ฌ ์ฌ์ฉ, ํด๋์ค๋ค์ ๋์ด๋ก ํ์ํ ํด๋์ค๋ฅผ ๋ถ๋ฌ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ทจํ๊ณ ์๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์
- ๊ฐ์ฅ ์ ๋ช
ํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ jQuery์ด๋ค.
ใด(๊ฐํน ํ๋ ์์ํฌ๋ผ๊ณ ์๊ฐ๋๋ ๊ณณ์ด ์๋๋ฐ ๊ณต์ ์ฌ์ดํธ์์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ช ์๋์ด ์๋ค.) - ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(GUI)์์ ์ฌ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ๋ฒํผ, ํ ์ด๋ธ ๊ฐ์ ๊ตฌ์ฑ ์์๋ฅผ ํธ์ถํด์ ์ธ ์ ์๋๋ก ๋ถ๋ฆฌํด๋์๋ค๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
- Windows์์ ๊ฐํน ๋ณด์์ dll ํ์ฅ์๋ ๋์ ๋งํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (dynamic-link library, DLL) ์ ์ฝ์๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ํ ์ ์๋ค.
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(object-oriented programming, OPP)์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ๊ธฐ๋ฅ๋ง๋ค ํจ์ํํ๋ ๊ฒ์ผ๋ก ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ํ ์ ์๋ค.
ํ๋ ์์ํฌ๋ฅผ ์ง์ด๋ผ ๋น์ ํ์๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง ์์ ํฌํจ๋ ๊ฐ๊ตฌ์ ๋น์ ํ์๋ค. ํ๋ ์ ์ํฌ๋ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉํ๋ค๋ ๊ฒ๋ณด๋จ ํน์ ๊ณต๊ฐ์ ๋ค์ด๊ฐ์ ์ฌ์ฉํ๋ค๋ ๋๋์ด๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฒด๋ฅผ ๊ฐ์ ธ๊ฐ ์ฌ์ฉํ๊ณ ํธ์ถํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค๊ณ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฌ์ธ๊ฒ์ด๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฅ์
- ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ ์ฝ๋ค.
- ์ฝ๋์ ๋ด์ฉ์ ์จ๊ฒจ ๊ธฐ์ ์ ์ถ์ ๋ฐฉ์งํ ์ ์๋ค.
- ์ด๋ฏธ ๊ตฌํ๋์ด ์๋ ๊ธฐ๋ฅ๋ค์ ๊ฐ์ ธ๋ค ์ธ ์ ์์ด ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถํ ์ ์๋ค.
- ์ปดํ์ผ ์๊ฐ์ ๋จ์ถํ ์ ์๋ค. (๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฏธ๋ฆฌ ์ปดํ์ผ๋์ด ์์ด ๋งํน๋ง ํ๋ฉด ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค)
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ข ๋ฅ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ์ ๋ญํน ๋ฐฉ์๊ณ ใ
๋์ ๋ญํน ๋ฐฉ์์ ๋ฐ๋ผ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
(= ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ก ๋๋ ์ ์๋ค.
๊ฒฐ๊ตญ , ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ ๋ฐ ์ฅ๋จ์ ์ ๊ฐ ๋งํน ๋ฐฉ์์ ์ ์ ๋ฐ ์ฅ๋จ์ ๊ณผ ๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Static link library) ์ ์
์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ์ ๋งํน ๊ณผ์ ์์ ๋ง์ปค๊ฐ ํ๋ก๊ทธ๋จ์ ํ์๋ก ํ๋ ๋ถ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฐพ์ ์คํ ํ์ผ์ ๋ณต์ฌํ๋ ๋ฐฉ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค. ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฅ์๋ ์๋์ฐ ํ๊ฒฝ์์๋ _.lib, ๋ฆฌ๋ ์ค ํ๊ฒฝ์์๋ _.a ์ด๋ค.
์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฅ์
์คํ ํ์ผ์ด ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณต์ฌํด์ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ์คํํ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ ์๋ค. ์ฆ , ์คํ ํ์ผ๋ง ์์ผ๋ฉด ํ๋ก๊ทธ๋จ์ด ๋์ํ๋ ๋งํผ ์ด์์ฑ์ด ์ข๊ณ ์์ ์ ์ด๋ค.
์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋จ์
- ์คํ ํ์ผ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด์ฉ์ ๋ณต์ฌํด ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์์ ํ ๋ถ๋ถ์ด ์์ผ๋ฉด ํ์ผ ์ ์ฒด๋ฅผ ๋ค์ ์ปดํ์ผํ์ฌ ์ฌ๋ฐฐํฌํด์ผ ํ๋ค.
- ์คํ ํ์ผ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋งํผ ์คํ ํ์ผ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ค.
- ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ๋์์ ์คํ๋ ๊ฒฝ์ฐ ์ฝ๋๊ฐ ์ค๋ณต๋์ด ๋ฉ๋ชจ๋ฆฌ ์์์ ๋ญ๋นํ๋ค.
- ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ฒด๋ฅผ ๋งํนํ๋ฉด์ ์ฌ์ฉํ์ง ์๋ ํจ์๋ค๊น์ง ์ ๋ถ ๋ค ํ๋ก๊ทธ๋จ์ ํฌํจํ๋ค.
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด์
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ์ ์ฐจ์ด๋ ์ ์ด ํ๋ฆ์ ๋ํ ์ฃผ๋์ฑ์ด ๋๊ตฌ์๊ฒ / ์ด๋์ ์๋๊ฐ ์ด๋ค.
์ฆ, ์ดํ๋ฆฌ์ผ์ด์
์ Flow(ํ๋ฆ)
์ ๋๊ฐ ์ฅ๊ณ ์๋๋์ ๋ฌ๋ ค ์๋ค.
ํ๋ ์์ํฌ๋ ์ ์ฒด์ ์ธ ํ๋ฆ์ ์ค์ค๋ก๊ฐ ์ฅ๊ณ ์์ผ๋ฉฐ ์ฌ์ฉ์๋ ๊ทธ ์์์ ํ์ํ ์ฝ๋๋ฅผ ๋ฃ์ผ๋ฉด ๋๋ค.
๋ฐ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ ์ ์ฒด์ ์ธ ํ๋ฆ์ ๋ง๋ค๋ฉฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ๋ค ์ฐ๋ ๊ฒ์ด๋ผ๊ณ ํ ์ ์๋ค.
์ ๋ฆฌํ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉํ๊ณ ํธ์ถํ๋ ์ธก์ ์ ์ ์ผ๋ก ์ฃผ๋์ฑ์๊ฒ ์ฌ์ฉ๊ฐ๋ฅํ๊ณ
ํ๋ ์์ํฌ๋ ๊ทธ ํ์์ ์ด๋ฏธ ์ ์ด ํ๋ฆ์ ๋ํ ์ฃผ๋์ฑ์ด ๋ด์ฌ(๋ดํฌ)ํ๊ณ ์๋ค.
ํ๋ ์์ํฌ๋ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉํ๊ธฐ๋ณด๋ค๋ ๊ฑฐ๊ธฐ์ ๋ค์ด๊ฐ์ ์ฌ์ฉํ๋ค๋ ๋๋/๊ด์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ค.
๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(DLL, Dynamic Link Library, Shared Library)
๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋์ ๋งํน(Dynamic Linking) ๊ณผ์ ์์ ๋ง์ปค๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด์ฉ์ ๋ณต์ฌํ์ง ์๊ณ ํด๋น ๋ด์ฉ์ ์ฃผ์๋ง ๊ฐ์ง๊ณ ์๋ค๊ฐ ๋ฐํ์์ ์คํ ํ์ผ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์นํ ๋ ํด๋น ์ฃผ์๋ก ๊ฐ์ ํ์ํ ๋ด์ฉ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค.
๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฅ์๋ ์๋์ฐ ํ๊ฒฝ์์ _.dll, ๋ฆฌ๋ ์ค ํ๊ฒฝ์์ _.so ์ด๋ค.
๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฅ์
์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์คํ ํ์ผ์ด ํฌ๊ธฐ๊ฐ ์์์ง๊ณ ์ฌ๋ฌ๋ฏ๋ก ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๊ณ ๊ณต์ ํด์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
๋ํ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์์ ํ ๋ถ๋ถ์ด ์์ผ๋ฉด ์คํ ํ์ผ์ ์๋ก ์ปดํ์ผํ ํ์ ์์ด ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ๋ค์ ์ปดํ์ผํด์ ์ฌ๋ฐฐํฌ ํ ์ ์๋ค.
๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋จ์
๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ์ฅ์ ๋ง ์๋ ๊ฒ์ ์๋๋ค.
๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์คํ ํ์ผ์ ์คํํ ๋ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํ๋ค. ๋ง์ฝ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๋๋ก ๋งํฌ๋์ด ์์ง ์๊ฑฐ๋ ๋ฒ์ ์ด ๋ง์ง ์๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ์คํ์ด ์ ๋ ์ ์๋ค. ์ฆ , ์ธ๋ถ ์์กด๋๊ฐ ์๊ธฐ๋ฉฐ ์ด์์ฑ์ด ๋ฎ์ ๋จ์ ์ด ์๋ค.
๋ํ, ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋งค๋ฒ ํ๋ก๊ทธ๋จ ์์ญ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ์ฅ๋ ์ฃผ์๋ก ์ด๋ํ๋ ๊ณผ์ ์ด ํ์ํ์ฌ ์ฝ๊ฐ์ ์ฑ๋ฅ ๊ฐ์๊ฐ ์์ ์ ์๋ค.
DLL์ ๋ถ๋ฅ
๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํ๋ฒ ๋ ์ข ๋ฅ๋ฅผ ๋๋ ์ ์๋ค. ์๋์ฐ์์ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ *dll ํ์ผ์ด๋ผ ๋ถ๋ฅด๋๋ฐ ์คํ ํ์ผ์์ *dll ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์์์ ๋งํน๊ณผ ๋ช ์์ ๋งํน์ผ๋ก ๋๋ ์ ์๋ค.
-
์์์ ๋งํน(Implicit Linking) ์์์ ๋งํน์ ์คํ ํ์ผ ์์ฒด์ ์ด๋ค *dll์ ์ด๋ค ํจ์๋ฅผ ํธ์ถํ๊ฒ ๋ค๋ ์ ๋ณด๋ฅผ ํฌํจ์ํค๊ณ ํ๋ก๊ทธ๋จ ์คํ ์ ํด๋น ํจ์๋ค์ ์ด๊ธฐํํ ํ ์ด์ฉํ๋ ๋ฐฉ์์ด๋ค. ํ๋ก๊ทธ๋จ์ ์์ํ๋ฉด ํด๋น *dll์ ๋ก๋ํด ์ ์๋ ํจ์๋ฅผ ๋ง์น ์์ ์ ํจ์์ฒ๋ผ ํธ์ถํ ์ ์๋ค. ์คํ ํ์ผ์ ์ด๋ค ํจ์๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค๋ ์ ๋ณด๋ฅผ ํฌํจํ๊ธฐ ์ํด์ *libํ์ผ์ด ํ์ํ๋ค. ์ด๋ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ์์์ ๋งํน์ ์ํด ์๋ *lib ํ์ผ์ด ํ์ํ๋ค. ์ด๋ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ ์์์ ๋งํน์ ์ํด ํ์ํ ์ฌ๋ณผ์ด ๋ค์ด์๋ *.lib ํ์ผ๋ก ๋์ ๋งํน ๊ณผ์ ์ ๊ผญ ํ์ํ๋ค. ์ฝ๋๊ฐ ๊ฐ๊ฒฐํ์ฌ ์ฌ์ฉํ๊ธฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์๋ค.
-
๋ช ์์ ๋งํน(Explcit Linking) ๋ช ์์ ๋งํน์ ํ๋ก๊ทธ๋จ์ด ์คํ ์ค์ผ ๋ _.dll ํ์ผ์ด ์๋์ง ๊ฒ์ฌํ๊ณ ๋์ ์ผ๋ก ์ํ๋ ํจ์๋ง ํธ์ถํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ ํํ๊ฒ ํธ์ถํ ํจ์์ ํฌ์ธํฐ๋ฅผ ์ป์ด ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ด๋ผ ํ ์ ์๋ค. ๋งํน ๊ณผ์ ์์ ํจ์ ์ ๋ณด๊ฐ ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ _.lib ํ์ผ์ด ํ์ ์๋ค. ์ง์ ์ฝ๋๋ฅผ ํตํด ์ํ๋ ํจ์๋ง ๋ถ๋ฌ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ์ง ์๋ ํจ์๋ค๊น์ง ์ ๋ถ ๋ค ํ๋ก๊ทธ๋จ์ ํฌํจํ ํ์๊ฐ ์์ด ์์์ ์๋ ์ ์๋ค. ํ๋ก๊ทธ๋จ์ด ์คํ ์ค์ *.dll ํ์ผ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฝํ๋ฏ๋ก ์คํ ์ค ์ฐ๊ฒฐ์ด๋ผ๊ณ ํํํ๋ค.
โ DLL ๋ถ๋ฅ ์ ๋ฆฌ
- *.dll: ์๋์ฐ ํ๊ฒฝ์ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- */lib : ์๋์ฐ ํ๊ฒฝ์ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- *so : ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- *a : ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ