๐พ [CS] ๋๋ผ์ด๋ฒ(Driver)๋?
๋๋ผ์ด๋ฒ(Driver) ๋ ์ปดํจํฐ์์ ํ๋์จ์ด ์ฅ์น๋ ์ํํธ์จ์ด์ ์ด์์ฒด์ ๋๋ ๋ค๋ฅธ ์ํํธ์จ์ด ๊ฐ์ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ํํธ์จ์ด์ ๋๋ค.
๋๋ผ์ด๋ฒ๋ ํ๋์จ์ด๋ ์ํํธ์จ์ด์ ๊ตฌ์ฒด์ ์ธ ์๋ ๋ฐฉ์๊ณผ ๊ธฐ๋ฅ์ ์ด์์ฒด์ ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ดํดํ ์ ์๋๋ก ์ค๊ฐํ๋ ์ญํ ์ ํฉ๋๋ค.
1๏ธโฃ ๋๋ผ์ด๋ฒ์ ์ฃผ์ ๊ฐ๋ .
1. ํ๋์จ์ด ๋๋ผ์ด๋ฒ(Hardware Driver)
- ํ๋์จ์ด ๋๋ผ์ด๋ฒ๋ ์ปดํจํฐ์ ์ด์์ฒด์ ์ ํ๋์จ์ด ์ฅ์น ๊ฐ์ ์ํต์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ํ๋์จ์ด ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ๊ฐ ํ๋์จ์ด ์ฅ์น(ํ๋ฆฐํฐ, ๊ทธ๋ํฝ ์นด๋, ๋คํธ์ํฌ ์นด๋ ๋ฑ)์ ์ธ๋ถ์ ์ธ ๊ธฐ๋ฅ์ ์ง์ ์์ง ๋ชปํด๋, ํ๋์จ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ์ํ ๋ช ๋ น์ ์ ๋ฌํ๋ ์ญํ ์ ํฉ๋๋ค.
์์
-
ํ๋ฆฐํฐ ๋๋ผ์ด๋ฒ
- ํ๋ฆฐํฐ ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ์ ํ๋ฆฐํฐ ๊ฐ์ ์ค๊ฐ ์ญํ ์ ํ์ฌ, ์ด์์ฒด์ ๊ฐ ํ๋ฆฐํฐ์ ์ํตํ๊ณ ๋ฌธ์๋ฅผ ์ถ๋ ฅํ ์ ์๊ฒ ํฉ๋๋ค.
-
๊ทธ๋ํฝ ์นด๋ ๋๋ผ์ด๋ฒ
- ๊ทธ๋ํฝ ์นด๋ ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ๊ฐ ๊ทธ๋ํฝ ์นด๋๋ฅผ ์ ์ดํ์ฌ ๋ชจ๋ํฐ์ ์ด๋ฏธ์ง๋ฅผ ์ถ๋ ฅํ ์ ์๋๋ก ํฉ๋๋ค.
2. ์ํํธ์จ์ด ๋๋ผ์ด๋ฒ(Software Driver)
- ์ํํธ์จ์ด ๋๋ผ์ด๋ฒ๋ ํน์ ์ํํธ์จ์ด์ ์ด์์ฒด์ ๊ฐ์ ์ํธ์์ฉ์ ๋์ต๋๋ค.
- ์ํํธ์จ์ด ๋๋ผ์ด๋ฒ๋ ๋ณดํต ์ํํธ์จ์ด์ ์ด์์ฒด์ ๊ฐ์ ํน์ ์์ ์ ์ํํ๊ฑฐ๋, ์ํํธ์จ์ด๊ฐ ํ๋์จ์ด ์์์ ์ ๊ทผํ ์ ์๋๋ก ์ง์ํ๋ ์ญํ ์ ํฉ๋๋ค.
์์
-
JDBC ๋๋ผ์ด๋ฒ
- Java ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ ์ ์๋๋ก ์ง์ํ๋ ์ํํธ์จ์ด ๋๋ผ์ด๋ฒ์ ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณ๋ก JDBC ๋๋ผ์ด๋ฒ๊ฐ ์ ๊ณต๋๋ฉฐ, Java ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด ๋๋ผ์ด๋ฒ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ด๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ฌ ์ ์์ต๋๋ค.
3. ๊ฐ์ ๋๋ผ์ด๋ฒ(Virtual Driver)
- ๋ฌผ๋ฆฌ์ ์ธ ํ๋์จ์ด ์ฅ์น์๋ ๋ฌ๋ฆฌ, ๊ฐ์ ๋๋ผ์ด๋ฒ๋ ๊ฐ์ํ๋ ํ๋์จ์ด ๋๋ ์์คํ
๋ฆฌ์์ค์ ์ํธ์์ฉํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
- ์ด๋ ๊ฐ์ ๋จธ์ ์ด๋ ์๋ฎฌ๋ ์ดํฐ์์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์์
-
๊ฐ์ ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ
- ๊ฐ์ ๋จธ์ ๋ด์์ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ง์ํ๊ธฐ ์ํด ๊ฐ์ ๋๋ผ์ด๋ฒ๊ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- ์ด๋ ์ค์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์นด๋(NIC)๋ฅผ ์ฌ์ฉํ์ง ์๋๋ผ๋ ๊ฐ์ ํ๊ฒฝ์์ ๋คํธ์ํฌ ํต์ ์ด ๊ฐ๋ฅํ๋๋ก ํด์ค๋๋ค.
2๏ธโฃ ๋๋ผ์ด๋ฒ์ ์ญํ
1. ์ด์์ฒด์ ์ ํ๋์จ์ด ๊ฐ์ ์ธํฐํ์ด์ค ์ ๊ณต.
- ๋๋ผ์ด๋ฒ๋ ํ๋์จ์ด ์ฅ์น์ ์ ์์ค์ ๋ช
๋ น๊ณผ ์ด์์ฒด์ ์์ ์ฌ์ฉํ๋ ๊ณ ์์ค์ ๋ช
๋ น ๊ฐ์ ๋ณํ์ ์ ๊ณตํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ด์์ฒด์ ๋ ๋๋ผ์ด๋ฒ๋ฅผ ํตํด ํ๋์จ์ด์ ๋ช ๋ น์ ์ ๋ฌํ๊ณ , ํ๋์จ์ด๋ ๊ทธ์ ๋ํ ์๋ต์ ์ด์์ฒด์ ์ ๋ณด๋ ๋๋ค.
2. ์ถ์ํ.
- ์ด์์ฒด์ ๋ ํ๋์จ์ด์ ์ธ๋ถ ๊ตฌํ ๋ฐฉ์์ ์์ง ์๊ณ ๋ ๋๋ผ์ด๋ฒ๋ฅผ ํตํด ํ๋์จ์ด์ ์ํธ์์ฉํ ์ ์์ต๋๋ค.
- ๋๋ผ์ด๋ฒ๋ ํ๋์จ์ด์ ๊ตฌ์ฒด์ ์ธ ๋์์ ์จ๊ธฐ๊ณ , ์ด์์ฒด์ ์ ํ์คํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
3. ํ๋์จ์ด ์ ์ด.
- ๋๋ผ์ด๋ฒ๋ ํ๋์จ์ด์ ํน์ ๊ธฐ๋ฅ์ ์ ์ดํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ๊ทธ๋ํฝ ๋๋ผ์ด๋ฒ๋ ํ๋ฉด ํด์๋, ์์, ๋์คํ๋ ์ด ๋ชจ๋ ๋ฑ์ ์ ์ดํ ์ ์์ต๋๋ค.
4. ๋ฐ์ดํฐ ์ ๋ฌ.
- ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ์ ํ๋์จ์ด ๊ฐ์ ๋ฐ์ดํฐ ์ ์ก์ ๋ด๋นํฉ๋๋ค.
- ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ๋ ๋ฐ์ดํฐ๋ฅผ ๋คํธ์ํฌ๋ฅผ ํตํด ์ก์์ ํ๋ ์ญํ ์ ํ๊ณ , ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ๋ ํ์ผ ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ํ๋ ๋์คํฌ๋ก ์ฝ๊ณ ์ฐ๋ ์์ ์ ์ฒ๋ฆฌํฉ๋๋ค.
3๏ธโฃ ๋๋ผ์ด๋ฒ์ ์ข ๋ฅ.
1. ์ฅ์น ๋๋ผ์ด๋ฒ(Device Driver)
- ์ปดํจํฐ์ ํ๋์จ์ด ์ฅ์น(ํ๋ฆฐํฐ, ๋ง์ฐ์ค, ํค๋ณด๋, ๊ทธ๋ํฝ ์นด๋ ๋ฑ)๋ฅผ ์ ์ดํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋๋ผ์ด๋ฒ์
๋๋ค.
- ์์: ๊ทธ๋ํฝ ์นด๋ ๋๋ผ์ด๋ฒ, ์ฌ์ด๋ ์นด๋ ๋๋ผ์ด๋ฒ, ํ๋ฆฐํฐ ๋๋ผ์ด๋ฒ
2. ํ์ผ ์์คํ ๋๋ผ์ด๋ฒ(File System Driver)
- ํน์ ํ์ผ ์์คํ
(FAT, NTFS, ext4 ๋ฑ)์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์๋๋ก ์ง์ํ๋ ๋๋ผ์ด๋ฒ์
๋๋ค.
- ์์: NTFS ๋๋ผ์ด๋ฒ, ext4 ๋๋ผ์ด๋ฒ
3. ๋คํธ์ํฌ ๋๋ผ์ด๋ฒ(Network Driver)
- ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์นด๋(NIC)๋ฅผ ์ ์ดํ์ฌ ์ปดํจํฐ๊ฐ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ํ๋ ๋๋ผ์ด๋ฒ์
๋๋ค.
- ์์: ์ด๋๋ท ์นด๋ ๋๋ผ์ด๋ฒ, Wi-Fi ๋๋ผ์ด๋ฒ
4. ๊ฐ์ ๋๋ผ์ด๋ฒ(Virtual Driver)
- ๊ฐ์ ํ๋์จ์ด๋ ๊ฐ์ ์์คํ
์ ์ง์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋๋ผ์ด๋ฒ๋ก, ๋ฌผ๋ฆฌ์ ์ฅ์น๊ฐ ์๋ ํ๊ฒฝ์์๋ ๋์ํ ์ ์๋๋ก ํฉ๋๋ค.
- ์์: ๊ฐ์ ๋คํธ์ํฌ ์ด๋ํฐ ๋๋ผ์ด๋ฒ
5. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ผ์ด๋ฒ(Database Driver)
- ์ํํธ์จ์ด ๋๋ผ์ด๋ฒ์ ์ผ์ข ์ผ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ ์ ์๋๋ก ํ๋ ์ํํธ์จ์ด์ ๋๋ค.
- JDBC ๋๋ผ์ด๋ฒ๊ฐ ์ฌ๊ธฐ์ ํด๋น๋ฉ๋๋ค.
- ์์: MySQL, JDBC ๋๋ผ์ด๋ฒ, Oracle JDBC ๋๋ผ์ด๋ฒ
4๏ธโฃ ๋๋ผ์ด๋ฒ์ ๋์ ์๋ฆฌ.
1. ํ๋์จ์ด ์ฅ์น์ ํต์
- ๋๋ผ์ด๋ฒ๋ ํ๋์จ์ด ์ฅ์น์ ๋ํ ๋ช ๋ น์ด๋ฅผ ์ ๋ฌํ๊ณ , ์ฅ์น๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์์ ํฉ๋๋ค.
- ํ๋์จ์ด๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด, ๋๋ผ์ด๋ฒ๋ ๊ทธ ์์ฒญ์ ์ด์์ฒด์ ์ ์ ๋ฌํ๊ณ , ๊ทธ ๋ฐ๋๋ ์ํํฉ๋๋ค.
2. ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ
- ํ๋์จ์ด ์ฅ์น๊ฐ ํน์ ์์ ์ ์๋ฃํ์ ๋, ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ์ ์ธํฐ๋ฝํธ๋ฅผ ํตํด ์๋ฆฝ๋๋ค.
- ์ด์์ฒด์ ๋ ์ด ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์ ํ๋์จ์ด์ ์์ ์๋ฃ ์ํ๋ฅผ ํ์ธํ๊ณ , ํ์ํ ํ์ ์์ ์ ์ํํฉ๋๋ค.
3. I/O ์์ฒญ ์ฒ๋ฆฌ
- ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ์ ์
์ถ๋ ฅ(I/O) ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ํ์ผ์ ์ ์ฅํ๊ฑฐ๋ ๋คํธ์ํฌ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ค๊ณ ํ๋ฉด, ๋๋ผ์ด๋ฒ๋ ์ด ์์ฒญ์ ํ๋์จ์ด๋ก ์ ๋ฌํ์ฌ ํด๋น ์์ ์ ์ํํฉ๋๋ค.
5๏ธโฃ ๋๋ผ์ด๋ฒ์ ์์.
1. JDBC ๋๋ผ์ด๋ฒ.
- JDBC ๋๋ผ์ด๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ Java ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ํํธ์จ์ด ๋๋ผ์ด๋ฒ์ ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ ํ ๋ SQL ์ฟผ๋ฆฌ๋ฅผ ์ ์กํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
2. ๊ทธ๋ํฝ ์นด๋ ๋๋ผ์ด๋ฒ.
- ๊ทธ๋ํฝ ์นด๋ ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ๊ฐ ๊ทธ๋ํ ์นด๋๋ฅผ ์ ์ดํ๊ณ , ํ๋ฉด์ ์ด๋ฏธ์ง๋ฅผ ์ถ๋ ฅํ ์ ์๋๋ก ๋์ต๋๋ค.
- ๊ฒ์, ๊ทธ๋ํฝ ์ํํธ์จ์ด, ๋น๋์ค ํธ์ง ์ํํธ์จ์ด ๋ฑ์์ ๊ทธ๋ํฝ ์นด๋์ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค.
3. ํ๋ฆฐํฐ ๋๋ผ์ด๋ฒ.
- ํ๋ฆฐํฐ ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ๊ฐ ํ๋ฆฐํฐ๋ก ๋ฌธ์๋ฅผ ์ ์กํ์ฌ ์ธ์ํ ์ ์๋๋ก ํด์ค๋๋ค.
- ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ๊ฐ ํ๋ฆฐํฐ์ ํน์ ๊ธฐ๋ฅ์ ์ดํดํ ์ ์๋๋ก ์ค๊ฐ ์ญํ ์ ํฉ๋๋ค.
6๏ธโฃ ์์ฝ.
๋๋ผ์ด๋ฒ๋ ์ํํธ์จ์ด์ ํ๋์จ์ด ๋๋ ๋ค๋ฅธ ์ํํธ์จ์ด ๊ฐ์ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ค๊ฐ ์ํํธ์จ์ด์ ๋๋ค.
ํ๋์จ์ด ๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ๊ฐ ํ๋์จ์ด ์ฅ์น์ ํต์ ํ๋๋ก ๋๊ณ , ์ํํธ์จ์ด ๋๋ผ์ด๋ฒ๋ ์ํํธ์จ์ด๊ฐ ๋ค๋ฅธ ์์คํ ๋ฆฌ์์ค๋ ์๋น์ค์ ์ํธ์์ฉํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
๋๋ผ์ด๋ฒ๋ ์์คํ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ํ๊ณ , ์ด์์ฒด์ ์ ํ๋์จ์ด/์ํํธ์จ์ด ๊ฐ์ ์ถ์ํ๋ฅผ ์ ๊ณตํ์ฌ ํ์คํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.