์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ ์ ์์ต๋๋ค.
์ถ์ฒ: http://kin.naver.com/knowhow/entry.php?eid=UvRpyW8yP2g+VvhY0HHMHSzQhvBuJyNF
์ปดํจํฐ ์ธ๊ณ์ ๋น ์ ธ๋ค๋ฉด ์ธ์ ๊ฐ๋ ์ปดํจํฐ๋ ์ด์์ฒด์ , ์๋ก์ด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ ์์ฌ์ ๊ฐ๊ฒ ๋๋ค. ํ์ง๋ง ์ด๋ฅธ๋ฐ ์ ์ฒด์ ์ด๊ณ ์ข ํฉ์ ์ธ '๊ธฐ๋ณธ๊ธฐ'๊ฐ ์ถฉ์คํ ์์ฌ ์์ง ์๋ค๋ฉด ๊ทธ ๊ฟ์ ๊ฟ์ผ๋ก ๊ทธ์น ์๋ฐ์ ์๋ค. ์ด ๊ธ์ ์ ์ฐํ์ด๋ผ๋ ํ๋๋ฅผ ๊ฐ๊ณ , ์๋ฌด๋ฆฌ ๊ฐ์กฐํด๋ ์ง๋์น์ง ์๋ ๊ฐ๋ฐ์๊ฐ ์์์ผ ํ '๊ธฐ๋ณธ ์ง์'์ ์ดํด๋ณด๋ ๋ฐ ๊ทธ ๋ชฉ์ ์ด ์๋ค.
"์ปดํจํฐ๋ฅผ ์ ๊ณตํ์ง ์์ ์ฌ๋์ธ๋ฐ, ์ปดํจํฐ๋ฅผ ์ํ ์ ์์๊น์?" ์์ ์ ์ด๋ค ์ฌ๋์ด ์ด๋ฐ ์ง๋ฌธ์ ํด์๋ค. ์ด ์ง๋ฌธ์ผ๋ก ์๊ธฐ๋ฅผ ์์ํด ๋ณด์(์ฌ์ค ํ์๋ ์ปดํจํฐ๋ฅผ ํ๋ฌธ์ผ๋ก ์ ๊ณตํ ์ฌ๋์ ์๋๋ค).
๋ชจ๋ ๋ถ์ผ์ ์ผ์ด ๋ง์ฐฌ๊ฐ์ง์ง๋ง, ์ปดํจํฐ ๊ด๋ จ ์์ง๋์ด๋ง ๋ถ์ผ๋งํผ ์ด๋ก ๊ณผ ์ค์ ์ ์ฐจ์ด๊ฐ ํญ์ ๋ฏผ๊ฐํ๊ฒ ๊ต์ฐจ๋๋ ๋ถ์ผ๊ฐ ๊ทธ๋ฆฌ ํํ์ง๋ ์๋ค. ์ฐ์ ์ฐ๋ฆฌ๋ ์ปดํจํฐ๋ฅผ '๊ณผํ'์ผ๋ก ๋ณผ ๊ฒ์ธ์ง, '๊ณตํ'์ผ๋ก ๋ณผ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค.
๊ณผํ์ด๋ ๋ฌด์์ธ๊ฐ. ๊ฐ๋จํ๊ฒ ๊ณผํ์ '๊ฐ์ค๊ณผ ๊ฒ์ฆ'์ด๋ผ๊ณ ์ ์ํ ์ ์๋ค. ๊ณผํ์ ๊ฐ์ค์ ์ธ์ฐ๊ณ , ์ด๋ฅผ ๊ฒ์ฆํด ์ด๋ก ์ ๋ง๋๋ ๊ฒ์ ๋งํ๋ค. ๊ทธ๋ฌ๋ ๊ณตํ์ ์ข ๋ค๋ฅด๋ค. ๊ณตํ์ ์ค์ ๋ก ์ ์ฉํ ๊ตฌํ๋ฌผ์ ๋ง๋ค๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋ง๋๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ๊ณตํ์ ๋ชฉ์ ์ ๋ฌด์ธ๊ฐ ๊ตฌ์ฒด์ ์ธ '๊ตฌํ' ํน์ '๊ณต์ '์ด ๋๋ค.
โ ๊ณผํ : ๊ฐ์ค๊ณผ ๊ฒ์ฆ ์ด๋ก
โ ๊ณตํ : ๋ฐฉ๋ฒ๊ณผ ํจ์จ ๊ตฌํ
์ฐ๋ฆฌ๋๋ผ ์ ์ฐํ์ ์๋ฌธ ๋ช
์นญ์ ๋๋ถ๋ถ 'Computer Science'๋ก ํ๊ธฐ๋๋ค. ํ์ง๋ง, ์์ ์ธ๊ธํ๋ฏ์ด ์ปดํจํฐ ๊ณผํ๊ณผ ์ปดํจํฐ ๊ณตํ์ ์กฐ๊ธ ๋ช
ํํ ๊ตฌ๋ถํ ํ์๊ฐ ์๋ค. ์ด ๊ธ์ ์ฝ๋ ๋
์์ ๋๋ถ๋ถ์ด ์ํํธ์จ์ด ๊ฐ๋ฐ ํน์ ํ๋ก๊ทธ๋๋ฐ์ ๊ด์ ์์ ์ปดํจํฐ๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์์ ๊ฒ์ด๋ค('๊ณตํ'์ ์
์ฅ์์ ์ปดํจํฐ๋ฅผ ๋ฐ๋ผ๋ณด๋ ๊ฒ์ด๋ค). ์ด๋ก ์ ๋ง๋๋ ๊ฒ ๋ชฉ์ ์ด ์๋๋ผ๋ ์ ์ ๋ช
ํํ ํ์.
ํ์๋ ์ด ๊ธ์ ํตํด ์ ์ฐํ ์ด๋ก ์ ๋ํ ๋งํ๊ณ ์ ํ๋ ๊ฒ์ด ์๋๋ค. ๊ทธ๋ณด๋ค ์ ์ฐํ์์๋ ๋ฌด์์ ๊ณต๋ถํ๋์ง ์ดํด๋ณด๊ณ , ์ ์ฐํ์ ์ฌ๋ฌ ๋ถ์ผ ์ค์์ ์ฐ๋ฆฌ๊ฐ ์ค์ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ ์ผ์ ๊ตฌ์ฒด์ ์ธ ๋์์ด ๋๋ ๋ถ๋ถ์๋ ์ด๋ค ๊ฒ์ด ์๋์ง '์์'์ ์์ ์ง์ด๋ณด๊ณ ์ ํ๋ค.
์ธ์ ๋ '๊ธฐ๋ณธ'์ด ์ค์ํ๋ค๋ ์ฌ์ค์ ๋ค์ ๋์ด์ผ ๋ณด์. ์ด๋ก ์์ ์ค์ง์ ์ธ ๋์์ ์ป์ ์ ์๋ ๋ถ๋ถ๋ค, ์ด๋ก ์ค์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์๋ฌ์ผ ํ ์์๋ค, ์๋ชป ์ดํด๋๊ณ ์๋ ๋ถ๋ถ๋ค(์ด๋ก ๊ณผ ์ค์ ์ ์ฐจ์ด)์ ์ดํด๋ณด์.
์ ์ฐํ์ ๊ธฐ์ด '๋น
5'
์ปดํจํฐ๋ฅผ ์ ํ๊ณ ์ด๋ฅผ ๊ณต๋ถํ๊ธฐ ์์ํ๋ฉด ๋๊ตฌ๋ ์ธ์ ๊ฐ๋ ์ปดํจํฐ๋ฅผ ์ง์ ๋ง๋ค๊ฑฐ๋, ์ด์์ฒด์ ๋ฅผ ๋ง๋ค์ด ๋ณธ๋ค๊ฑฐ๋ ์๋ก์ด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ง๋ค๊ฒ ๋ค๋ ์๊ฐ์ ํ ์ ์ด ์์ ๊ฒ์ด๋ค. ์ ์ฐํ์ ๋ถ์ผ๋ฅผ ๋ณด๋ฉด ์ค์ ๋ก ์ด๋ฐ ๋ถ์ผ๊ฐ ๋ค์ด ์๋ค. ์ ์ฐํ์ ์ฌ๋ฌ ๋ถ์ผ ๊ฐ์ด๋ฐ ๊ธฐ๋ณธ์ด ๋๋ ๋ค์ฏ ๋ถ์ผ๋ฅผ ๊ผฝ๋๋ค๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1. ์ปดํจํฐ ๊ตฌ์กฐ๋ก
2. ์ด์์ฒด์
3. ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ
4. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก , ์ปดํ์ผ๋ฌ
5. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก
์ด ๋ค์ฏ ๊ฐ์ ๋ถ์ผ๋ ๊ธฐ์ด๋ถ์ผ๋ก ๊ผฝํ๋ฉฐ, ์ค์ ๋ก ๊ฑฐ์ ๋ชจ๋ ์ ์ฐํ๊ณผ์์ ๊ฐ์๊ฐ ์ด๋ค์ง๊ณ ์๋ค.
์ด ๋ฐ์ ์ํํธ์จ์ด ๊ณตํ, ๋คํธ์ํฌ, ์ธ๊ณต์ง๋ฅ ๋ฑ์ ๋ถ์ผ๊ฐ ์์ผ๋ฉฐ, ํ๊ต์ ๋ฐ๋ผ ์กฐ๊ธ์ฉ ๋ค๋ฅธ ํน์ฑ์ ๊ฐ๊ณ ์ปค๋ฆฌํ๋ผ์ด ์ด์๋๋ค.
๋
์ ์ฌ๋ฌ๋ถ๋ ์ด๋ฏธ ์๊ฒ ์ง๋ง, ์ด ๋ถ์ผ๋ฅผ ๋ชจ๋ ๊ณต๋ถํด์ผ ํ๋ก๊ทธ๋๋ฐ์ ํ ์ ์๋ ๊ฒ์ ์๋๋ค. ๋ค์ ๋งํด 'ํ๋ก๊ทธ๋๋ฐ'ํ๋ ๊ฒ๊ณผ ์ด ๋ถ์ผ๋ฅผ ๊ณต๋ถํ๋ ๊ฒ์ ์ ํ ๋ณ๊ฐ์ ๋ฌธ์ ์ผ ์ ์๋ค. ํ๋ก๊ทธ๋๋ฐ์ ๋๊ตฌ๋ ํ ์ ์๋ค.
์ค์ ์ปดํจํฐ์ ๋ํ ์ดํด๊ฐ ์ ํ ์๋ ์ฌ๋๋ ๋๋ต 4โผ6๊ฐ์ ์ ๋์ ํ์ต์ ๊ฑฐ์น๋ฉด ์ค์ ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ ์ ๋์ ๋ฅ๋ ฅ์ด ๋ฐฐ์๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ์ ๋ชจ๋ ๊ฒ์ด ํด๊ฒฐ๋๋ ๊ฒ์ ์๋๋ค. 1๋
์ด๋ 2๋
์ด ์ง๋๋ฉด, 'ํ๋ก๊ทธ๋จ ์งค ์ ์๋ค'๋ ์ ๋์ ๋ด๊ณต(?)์ ๋ถ์กฑํจ์ ๋๋ผ๊ฒ ๋๋ ๊ฒ์ ์ด์ฉ๋ฉด ๋น์ฐํ ์ผ์ธ์ง๋ ๋ชจ๋ฅธ๋ค.
์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋ฐ๋ฅธ ๋ค์ํ ์ด์๋ฅผ ์ํํ๊ณ , ์ค์ ๊ธฐ์ ์ ์ฅ๋จ์ ์ ๋
ผ์ํ๊ธฐ ์ํด์๋ ์กฐ๊ธ์ ๋ค๋ฅธ ์ง์์ด ํ์ํ๋ค.
์์ปจ๋ ๊ฐ๋ฐ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ ํจ์จ์ ํฅ์ํ๊ธฐ ์ํ ์ฑ๋ฅ ํ๋, ์ด์, ํ๋ก๊ทธ๋จ ์ค์น์ ๋ฐฐํฌ, ํ ๊ฐ๋ฐ์ ์ด๋์ด ๊ฐ๋ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ฑ์ ํ๋ก๊ทธ๋๋ฐ ์ด์ธ์ ์ด์๋ฅผ ๋ง๋๋ฉด, 'ํ๋ก๊ทธ๋จ์ ์งค ์ ์๋ค'๋ง์ผ๋ก๋ ํด๊ฒฐ๋์ง ์๋ ๊ตฌ์์ด ๋ง๋ค๋ ์ฌ์ค์ ๊นจ๋ซ๊ฒ ๋๋ค. ์ฆ, ๊ธฐ๋ณธ๊ธฐ์ ์ค์์ฑ์ ์ ๊ฐํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ด ๊ธ์ ๋ชฉ์ ์ ์ ์ฐํ์ด๋ผ๋ ํ๋๋ฅผ ๊ฐ๊ณ , '๊ธฐ๋ณธ๊ธฐ'๋ผ๋ ๊ฒ์ ์ดํด๋ณด๊ธฐ ์ํจ์ด๋ค. ์ด์ ๋ถํฐ ๊ฐ ๋ถ์ผ๋ณ๋ก ์ดํด๋ณด์(์ด ๊ธ์ ์ ์ฐํ์ ์ ์ฒด๋ฅผ ์๊ธฐํ๋ ๊ฒ์ด ์๋๋ผ, ์ ์ฐํ๊ณผ ํ๋ถ๊ณผ์ ์์ ๋ฐฐ์ฐ๋ ๋ด์ฉ๊ณผ ๊ต์ฌ์ ํ์ ํ ์๊ธฐ๋ผ๋ ์ ์ ์ ์ ํ๋ค).
<!--(PAGEBREAK)-->
์ปดํจํฐ ๊ตฌ์กฐ๋ก
๊ฐ์ข๋ด์ฉ : ์ปดํจํฐ ๊ตฌ์กฐ๋ก ์ ๊ธ์ ๊ทธ๋๋ก ์ปดํจํฐ์ ๊ธฐ๋ณธ์ ์ธ ํ๋์จ์ด์ ์๋ ์๋ฆฌ์ ๊ตฌ์ฑ์ ๋ํ ๋ด์ฉ์ ๋ค๋ฃจ๋ ๋ถ์ผ. ๋ถ์ธ ๋์(Boolean Algebra)์ ๋
ผ๋ฆฌ ํํ์ ์ตํ๊ณ , ์ด๋ฅผ ํ๋์จ์ด๋ก ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ๊ณต๋ถํ๊ณ ์ง์ ํ๋ก(IC)์ ๋์์๋ฆฌ๋ฅผ ๋ฐฐ์ด๋ค. CPU, ๋ฉ๋ชจ๋ฆฌ, ์
์ถ๋ ฅ์ ๊ตฌ์ฑ์ด๋ ์ฃผ๋ณ ์ฅ์น์์ ํต์ ๋ฐฉ๋ฒ ๋ฑ๋ ํฌํจ๋๋ค.
์ํํธ์จ์ด๋ฅผ ํ๋ ์ฌ๋์ ์
์ฅ์์ ์ปดํจํฐ ๊ตฌ์กฐ๋ก ์ '์ด์
๋ธ๋ฆฌ์ด'๋ฅผ ์ตํ๊ณ , ๋์์๋ฆฌ๋ฅผ ์๋ ๋ฐ ์์๊ฐ ์๋ค. ์ปดํจํฐ ๊ตฌ์กฐ๋ก ์ ์ปดํจํฐ๋ฅผ ๋ง๋๋ ๋ฐ ํ์ํ ๋ด์ฉ์ ๊ณต๋ถํ๋ ๊ฒ์ด์ง๋ง, ์ปดํจํฐ ๊ตฌ์กฐ๋ก ์ ๊ณต๋ถํ๋ ๊ฒ๊ณผ ์ปดํจํฐ๋ฅผ ๋ง๋๋ ์ผ์๋ ์์ฃผ ํฐ ๊ฒฉ์ฐจ๊ฐ ์๋ค๋ ์ฌ์ค์ ์์์ผ ํ๋ค.
๋ง์ผ, ์ฌ๋ฌ๋ถ์ด ์ปดํจํฐ๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ๋ฉ๋์ง์ ๋ฐฐ์ฐ๊ฑฐ๋ ์์นฉ ๋ง์ดํฌ๋ก ์ปดํจํฐ๋ฅผ ๊ณต๋ถํ๋ ๊ฒ์ด ํจ์ฌ ๋น ๋ฅผ ๊ฒ์ด๋ค.
์ด์์ฒด์
๊ฐ์ข๋ด์ฉ : ์ปดํจํฐ์ ์ด์์ฒด์ ์ ๊ตฌ์กฐ, ๊ฐ์ ๊ธฐ์ต ์ฅ์น, ๋ฉํฐ ํ์คํน, ํ๋ก์ธ์ค ์ค์ผ์ฅด๋ง ๋ฑ์ ๊ธฐ๋ณธ ๊ฐ๋
๋ฐ ์ด๋ค๊ณผ ๊ด๋ จ๋ ์ด์๋ฅผ ๊ณต๋ถํ๋ค.
๋๋ถ๋ถ์ ๊ฐ์ข์์ ์ ๋์ค ์ด์์ฒด์ ์ ๊ตฌ์กฐ์ ์๋์๋ฆฌ๋ฅผ ์ค์ฌ๋ก๋ก ๋ง์ด ์ฌ์ฉํ๋ค. ์ ๋์ค๋ C๋ก ์์ค๊ฐ ์ฐ์ฌ ์์ด ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช
ํ๊ธฐ์ ์ข๊ธฐ ๋๋ฌธ์ด๋ค.
์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋จ์ด ์ด์๋๋ ํ๊ฒฝ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ์ด์์ฒด์ ๋ก ์ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ ์ฌ๋๋ค์๊ฒ ์ค์ํ ๋ด์ฉ์ ๋ง์ด ๋ด๊ณ ์๋ค. ๋ฌผ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, CPU ์ค์ผ์ฅด๋ง ์๊ณ ๋ฆฌ์ฆ, ์ฃผ๋ณ์ฅ์น ๊ด๋ฆฌ ๋ฑ์ ๋ํ ํ์ต์ด ์ค์ ์ฝ๋ฉ์ ์ง์ ์ฌ์ฉ๋์ง ์๋๋ผ๋, ์กฐ๊ธ ๊ท๋ชจ๊ฐ ์๋ ์ํํธ์จ์ด๋ฅผ ์ ์ํ๋ ๊ฒฝ์ฐ ์ด์์ฒด์ ๊ฐ ๊ฐ๊ณ ์๋ ์ฌ๋ฌ ๊ฐ์ง ์ ์ฑ
์ ๋ํ ๊ตฌํ์ ์ฌ๋ฌ๋ถ์ด ์ํํธ์จ์ด ์ํคํ
์ฒ๋ฅผ ์ค๊ณํ๋ ๋ฐ ์ ์ง ์์ ๋์์ ์ค๋ค. ํนํ '๋ฌด์จ ๋ฌด์จ ์๋ฒ'๋ผ๋ ์ด๋ฆ์ด ๋ถ๋ ์ํํธ์จ์ด๋ฅผ ๋ง๋ ๋ค๋ฉด, ์ด์์ฒด์ ์ ๋ฐ์ ๋ํ ์ดํด๋ ์์ฃผ ํ์์ ์ด๋ค.
์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ
๊ฐ์ข๋ด์ฉ : ์ปดํจํฐ ํ๋ก๊ทธ๋จ ์ค๊ณ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ, ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ๋ณต์ก๋๋ฅผ ๋ถ์ํ๋ ๋ฐฉ๋ฒ ๋ฑ์ ์ ๊ณตํ๋ฉฐ ๊ฐ์ข
๊ฒ์, ์ ๋ ฌ ํ๋ก๊ทธ๋๋ฐ์ ํตํด ์ค์ ๋ก ๊ตฌํํด ๋ณด๊ณ ๋ณต์ก๋๋ฅผ ๋ถ์ํ๋ค.
์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
์์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ง์ ์ค๊ณํ๊ณ ๊ตฌํํ ํ์์ฑ์ ์ ์ฐจ ์ค์ด๋ค๊ณ ์๋ค. ์๋ฃ๊ตฌ์กฐ์ ๋ง์ ๋ด์ฉ์ด ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ตฌ์ถ๋ผ ์ด๋ฅผ ์ ํ์ฉํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ฃ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ์ผ๋ฐํ์ ์ธ ํ์์ผ๋ก ์๋ฆฌ์ก์๊ธฐ ๋๋ฌธ์ด๋ค. ๋น์ ํํ๋ ์๋ฃ๋ ๋ณต์กํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฐ๋ ๊ฒ๋ณด๋ค XML๋ก ์ ์ฅํ๊ฑฐ๋ ์ ์กํ๋ ๊ฒ์ด ์๋นํ ๋ณดํธํ๋๋ค.
์๋ฅผ ๋ค์ด C++ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ง ์์๋ ๋๋๋ก CArray, CList, CMap ๊ฐ์ ์ธ ๊ฐ์ ํด๋์ค๋ ๊ฐ๊ฐ ๊ฐ๋ณ ๊ธธ์ด ๋ฐฐ์ด, ์๋ฐฉํฅ ๋ฆฌ์คํธ, ํด์๋ฅผ ๊ตฌํํ๊ณ ์๋ค. ์ด ์ ๋๋ฉด ์ฌ๋งํ ๋น์ฆ๋์ค ์ ํ๋ฆฌ์ผ์ด์
์ ์์ฑํ๊ธฐ์ ์ถฉ๋ถํ๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ์๋ฐ๋ ์ด๋ฐ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ฒกํฐ๋ ํด์ ํ
์ด๋ธ ๋ฑ์ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ๊ณตํ๊ณ ์๋ค. ๋ ๊ณ ๊ธ ๊ธฐ๋ฅ์ด ํ์ํ๋ฉด ์ง์ ์์ฑํ๋ ๊ฒ๋ณด๋ค๋ ํ์คํํ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ณตํ๋ C++์ STL์ ์ด์ฉํด๋ ๋๋ค. ํ์ง๋ง, ์๋ฃ๊ตฌ์กฐ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ์ดํด ์์ด ์ด๋ฐ ๋ด์ฉ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
์๋ฃ๊ตฌ์กฐ๋ ์ ์ด๋ ์๋ฐฉํฅ ๋ฆฌ์คํธ๋ฅผ ์์ ์ด ์ฌ์ฉํ๋ ์ธ์ด๋ก ์ง์ ๊ตฌํํ๋ ์์ค๊น์ง ํด๋ด์ผ ํ๋ค. ๋๋ถ๋ถ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ ์ ๋ ฌ/ํ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ณธ์ผ๋ก ๊ณต๋ถํ์ง๋ง, ์ค์ ๋ ํ์ผ ๊ธฐ๋ฐ์ ํ์๊ณผ ์ ๋ ฌ์ด ์คํ๋ ค ๋ ์ค์ํ ์ ์๋ค. ๋ฐ๋ผ์ ์ ๋ ฌ์ ๊ฒฝ์ฐ ํ์ผ ๊ธฐ๋ฐ์ ๋ณํฉ ์ ๋ ฌ ์ ๋๊น์ง ๋ง์คํฐํ๋ ๊ฒ์ด ์ข๋ค.
<!--(PAGEBREAK)-->
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ปดํ์ผ๋ฌ
๊ฐ์ข๋ด์ฉ : ๊ฐ์ข
์ธ์ด์ ํน์ฑ์ ์๋ก ๋น๊ตํ๋ฉฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ ๋ฐ ๋ฐ์ดํฐ ํ์
๋ฑ์ ๋ค๋ฃฌ๋ค. ๋
ผ๋ฆฌ ์ธ์ด, ํจ์ ์ธ์ด, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด ์งํฅ ์ธ์ด์ ํน์ฑ ๋ฐ ์์ฉ ๋ถ์ผ ๋ฑ์ด ์ฌ๊ธฐ์ ํด๋นํ๋ค. ์ปดํ์ผ๋ฌ๋ ์คํ ๋จธํฐ(Automata) ๊ตฌ์ฑ, ์ดํ ๋ถ์(lexical analysis) ๋ฑ์ ํ์ตํ๊ณ , ์ปดํ์ผ๋ฌ ์ ์๋๊ตฌ์ธ Lex๋ Yacc๋ฅผ ์ด์ฉํด ๊ฐ๋จํ ์ธ์ด๋ฅผ ๋ง๋ค์ด ๋ณธ๋ค.
์ปดํ์ผ๋ฌ๋ ๋ฌด์ฒ ๋ณต์กํ๊ณ ๊น๋ค๋ก์ด ๋ถ์ผ ์ค ํ๋๋ค. HTML, XML๊ณผ ๊ฐ์ ๋งํฌ์
์ธ์ด๊ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉด์ ์ปดํ์ผ๋ฌ์ ํ ๋ถ๋ถ์ธ ํ์์ ๋ํ ๊ด์ฌ์ด ๋์์ก์ผ๋ฉฐ, ์ด์ ๋ฐ๋ผ ๊ณต๊ฐ๋ ํ์๋ ๋ง์ด ๋ฑ์ฅํ๋ค. ์ฌ๋ฌ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์
์์ ํ์๊ฐ ํ์ํ๊ณ ์ด๋ฅผ ์ง์ ๊ตฌํํด์ผ ํ๋ค๋ฉด ์ปดํ์ผ๋ฌ ์ด๋ก ์ด ํ์ํ๊ฒ ์ง๋ง, ํํ์ง ์์ ์ผ์ด๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค
๊ฐ์ข๋ด์ฉ : ์ฃผ๋ก ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ์ ๋์ ๋ฑ์ ๋ํ ์ด์๋ฅผ ๊ณต๋ถํ๋ฉฐ, ์ ๊ทํ ๋ฐฉ๋ฒ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ, ํ๋ ๋ฑ์ ํ์ํ ์ฌ๋ฌ ๊ฐ์ง ์ด๋ก ์ ๊ณต๋ถํ๋ค.
๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์ ํ์์ ์ธ ์ฌํญ์ผ๋ก SQL, ERD ์์ฑ, ์ ๊ทํ, ์ค๊ณ, ๊ตฌ์ถ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ๋ฆฌ์ผ์ด์
์์ฑ ๋ฑ์ ๋๋ถ๋ถ์ ๊ฐ๋ฐ์์๊ฒ ์๊ตฌ๋๋ ๊ธฐ์ ์ด ๋๋ค. ํนํ SQL์ ๋ํ ์ดํด์ ์ฌ์ฉ์ด ๊ฐ์ฅ ์ค์ํ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ๋ํ ์ดํด๊ฐ ํ์์ ์ด๋ค.
์ค์ํ์ง ์์ ๊ฒ์ ํ๋๋ ์๋ค
์ ์ฐํ์ ๊ธฐ์ด๋ฅผ ์ด๋ฃจ๊ณ ์๋ ๋ค์ฏ ๋ถ์ผ ์ค ์ค์ ํ๋ก๊ทธ๋๋ฐ์ด๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๊ฐ์ฅ ํฌ๊ฒ ๋์์ด ๋๋ ๋ถ์ผ๋ฅผ ๊ผฝ์ผ๋ผ๋ฉด, ์ฃผ์ ์์ด '์ด์์ฒด์ ๋ก '์ ๊ผฝ์ ๊ฒ์ด๋ค. ๋ง์ผ, ์ฌ๋ฌ๋ถ์ ํ์์ ์๊ฐ์ ์ฌ์ ๊ฐ ์ข ์๊ณ , BOOK GROUP(ํน์ ํ ์ฑ
์ ํจ๊ป ๊ณต๋ถํ๋ ํ์์ ์ธ ํ์ต ์กฐ์ง)์ ์ด์ํ๋ค๋ฉด ์ด์์ฒด์ ๋ก ์ ๋ํ ํ์ต์ ๊ฐ์ฅ ์ถ์ฒํ๊ณ ์ถ๋ค.
ํนํ (์ฌ๋ฌ๋ถ์ด ์๋์ฐ๋ฅผ ์ด๋ค๊ณ ํด๋) ์ ๋์ค์ ๋ํ ํ์ต์ ์์ฃผ ํ์์ ์ธ ์ฝ์ค ์ค ํ๋๋ค(์ฌ๊ธฐ์ ๋งํ๋ ํ์ต์ ์ ๋์ค ๋ช
๋ น์ด๋ ์ฌ์ฉ๋ฒ์ ๋งํ๋ ๊ฒ์ด ์๋๋ค). ์๋์ฐ 2000์ ๋ด๋ถ์ ์ธ ๊ตฌ์ฑ์ด ์ด์ ๋ฒ์ ๊ณผ ๋น๊ตํด ์ ๋์ค๋ฅผ ๋ง์ด ๋ฎ์๋ค๋ ์ ๊ณผ ๋งฅ OS X์ด ์์ ํ ์ ๋์ค ๊ธฐ๋ฐ์ด๋ผ๋ ์ ์ ์์ฌํ๋ ๋ฐ๊ฐ ํฌ๋ค. ๋ณด์๊ณผ ๊ด๋ จํด ๋คํธ์ํน์ ๊ณต๋ถํ๋ ์ฌ๋์ด๋ผ๋ฉด ์ ๋์ค๋ ๋์ฑ ์ค์ํ๋ค. TCP/IP ๋ฑ ๋๋ถ๋ถ์ ์ธํฐ๋ท ๊ด๋ จ ํ๋กํ ์ฝ์ด๋ ๊ธฐ๋ฐ๊ธฐ์ ์ด ์ ๋์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฐ VM(Java Virtual Machine, ์ดํ JVM)์ ์ด์์ฒด์ ์ ๊ทธ ์ญ์ฌ๊ฐ ์ ํ ๋ค๋ฅด์ง๋ง, ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์
์ฅ์์ ๋ณด๋ฉด JVM๋ ํ๋์ ์ด์์ฒด์ ๋ค. ์์คํ
ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ด์์ฒด์ ์ ๋ํ ์ ๋ฐ์ ์ธ ์ง์์ ํ์๋ก ํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ์๋ฐ ํ๋ก๊ทธ๋๋จธ๋ค์ ์์ ์ด ์ฌ์ฉํ๊ณ ์๋ JVM์ ํน์ฑ์ ๋ํด ํ์ตํ ํ์๊ฐ ์๋ค.
์๋ฐ๋ฅผ ๊น์ด ์๊ฒ ๋ค๋ฃจ๋ ํ๋ก๊ทธ๋๋จธ๋ ๊ฑฐ์ ํ๊ฒฐ ๊ฐ์ด ์๋ฐ๊ฐ 100% ํ๋ซํผ ๋
๋ฆฝ์ ์ด์ง๋ ์๋ค๊ณ ๋งํ๋ค(์๋ง๋ ์ ๋์ ๋ฌธ์ ์ผ ๊ฒ์ด๋ค). ์๋ฐ ๊ธฐ์ ์ ๋๋ถ๋ถ ์ฌ์ด ์คํ์ ์ ๊ณตํ๊ณ , ์ด๋ฅผ ์ฌ๋ฌ ํ์ฌ๋ค์ด ๊ตฌํํ๊ณ ์๋ค. JVM๋ง ๋ด๋ ๊ทธ๋ ๋ค.
์ฌ, ๋ง์ดํฌ๋ก์ํํธ, IBM ๋ฑ ์ ์์ ์
์ฒด๋ค์ด ๋๋ฆ๋๋ก ๊ตฌํํ JVM์ ๋ด๋๊ณ ์์ผ๋ฉฐ ์์ ์ฑ, API ๊ตฌํ์์ ํน์ด์ , ํ์ฅ ๊ธฐ๋ฅ ์ ๊ณต๋ฉด์์ ์ฐจ์ด๋ฅผ ๋ณด์ด๊ณ ์๋ค. ๊ฐ๋์ ์ด๋ฐ ์ฐจ์ด๊ฐ ํน์ JVM์ ์ ํํ๋ ๊ธฐ์ค์ด ๋๊ธฐ๋ ํ๋ค. ๋ํ JVM ์์ฒด๊ฐ ์ด์์ฒด์ ์์์ ์ด์๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ด๊ธฐ ๋๋ฌธ์ JVM์ ๊ตฌํ ํน์ฑ๊ณผ ์ด์์ฒด์ ์ ํ๊ฒฝ์ ๋ฌด์ํ ์ ์๋ค.
<!--(PAGEBREAK)-->
๊ทธ ๋ค์์ผ๋ก ์ค์ํ ๋ถ์ผ๋ฅผ ๊ผฝ๋๋ค๋ฉด '๋ฐ์ดํฐ๋ฒ ์ด์ค', '์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ'์ด๋ค. ๊ฐ์ฒด์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Object-Oriented DBMS)๊ฐ ์ฃผ๋ชฉ์ ๋ฐ์ ๋ง์ ์ฐ๊ตฌ๊ฐ ์ํ๋๊ณ ์์ง๋ง, ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Relational DBMS)๋ฅผ ์์ ํ ๋์ฒดํ์ง๋ ๋ชปํ๊ณ ์๋ค(ํ์ฌ๋ RDB์ ODB์ ํน์ฑ์ ๊ฐ๋ฏธํ ORDB๊ฐ ์ฌ์ค์์ ํ์ค์ด๋ค).
์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก๊ทธ๋๋ฐ์ ๋ ์ด์ ํน์ํ ๋ถ์ผ๊ฐ ์๋๋ค. ๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ธํฐ๋ท์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
<ํ 1>์ ์ด ๋ค์ฏ ๋ถ์ผ์ ๊ต์ฌ๋ก, ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ฑ
์ ๋์ดํ ๊ฒ์ด๋ค(๋ถ์ผ๋ณ๋ก ๋ค๋ฅธ ์ข์ ์ฑ
์ด ๋ง์ด ์์ผ๋ ๊ฐ์ธ์ ์ฒดํ์ ์
๊ฐํด ํ ๊ฐ์ฉ ์ ์ ํ ๊ฒ์ด๋ค). ์ด ์ฑ
๋ค์ ๋ชจ๋ ๋ฒ์ญ์๋ ์๋ค.
<ํ 1> ๋ถ์ผ๋ณ ๋ํ์ ์ธ ๊ต์ฌ
๊ณผ๋ชฉ
์ ์
์ปดํจํฐ ๊ตฌ์กฐ๋ก
Computer System Architecture 2/e, M. Morris Mano, Prentice-Hall, 1982
์ด์์ฒด์ ๋ก
Operating System Concepts 4/e, Avi Silberschatz, Peter Galvin, Addision Wesley Longman, Inc., 1998.
์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ
Fundamentals of DATA STRUCTURES in C++, Horowitz & Sahni, Computer Sci. Press, 1995.
์ปดํ์ผ๋ฌ
Compilers: Principles, Techniques, and Tools, Alfred Aho, Ravi Sethi,Jeffrey Ullman, Addison-Wesley, 1986.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก
An introduction to Database Systems 6/e, C.J.Date, Addison-Wesley, 1995.
๊ทธ ๋ฐ์ ๋ถ์ผ๋ค
์์ ๋งํ ๋ถ์ผ ์ธ์ ์ํํธ์จ์ด ๊ณตํ, ๋คํธ์ํฌ, ์ธ๊ณต์ง๋ฅ ๊ฐ์ ๋ถ์ผ๋ ์ด์ ๋ชป์ง ์๊ฒ ๊ธฐ๋ฐ์ด ๋๋ ๋ถ์ผ์ด๋ค.
์ํํธ์จ์ด ๊ณตํ์ ๋ถ์ ์ค๊ณ ๊ตฌํ์ ํฐ ์ถ์ผ๋ก ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ๋ฐ์ ์ฌ๋ฌ ๋จ๊ณ์ ๊ฐ ๋จ๊ณ์์ ๋ฐ์ํ๋ ์ด์๋ฅผ ์ฃผ๋ก ๋ค๋ฃฌ๋ค. ์์ฆ์ ๊ฐ์ฒด์งํฅ ๋ฐฉ๋ฒ๋ก ๊ณผ ๋ถ์/์ค๊ณ์ ๋ํ ๋ด์ฉ์ด ๋ง์ด ๋ณด๊ฐ๋๊ณ ์๋ค. ๋คํธ์ํฌ๋ ์ฃผ๋ก ๋คํธ์ํน์ ๊ธฐ๋ณธ ์ด๋ก ์ด ๋๋ OSI 7 ๊ณ์ธต์ ๋ํ ๋ด์ฉ๊ณผ ํ๋กํ ์ฝ ๊ด๋ จ ์ด์๊ฐ ์ฃผ๋ฅ๋ฅผ ์ด๋ฃฌ๋ค. ์ธ๊ณต์ง๋ฅ์์ ๋ฌธ์ ํด๊ฒฐ, ์์ฐ์ด ์ฒ๋ฆฌ, ์ง์ ์ฒ๋ฆฌ, ์ถ๋ก ๋จธ์ , ๋ก๋ณดํฑ์ค, ์์ด์ ํธ ๋ฑ์ ์ฐ๊ตฌ๊ฐ ์งํ๋๊ณ ์๋ค.
์ด ์ธ ๊ฐ์ง์ ๋ถ์ผ์ ๋ํ ์ง์์ ๊ฐ์ ์ ์ผ๋ก ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋ง์ '๊บผ๋ฆฌ'๋ฅผ ๋์ ธ์ค๋ค. ์ค๋ฌด์์ ์ผํ๋ ๊ฐ๋ฐ์๋ค์ ์ด๋ค ๋ถ์ผ์ ๋ํด์ ์ง๋์น๊ฒ ์๋ก ์ ์ธ ์ด๋ก ์๋ณด๋ค๋ ํ ๋จ๊ณ ์ฝ๊ณ ๊ตฌ์ฒด์ ์ธ ์๋ด์๋ฅผ ์ฝ๋ ๊ฒ์ด ํจ์ฌ ์ข๋ค.
ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ
ํ๋ก์ธ์ค์ ๋ํ ์ดํด๋ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ์ด๋ผ๊ณ ํ ์ ์๋ค. ํ๋ก์ธ์ค๋ ๊ฐ๋จํ๊ฒ '์ํ์ค์ธ ํ๋ก๊ทธ๋จ'์ด๋ผ๊ณ ์ ์ํ ์ ์๋ค(์ฐธ๊ณ ๋ก ํ๋ก๊ทธ๋จ์ ์ํ ๊ฐ๋ฅํ ๋์คํฌ์์ ์ด๋ฏธ์ง๋ผ๊ณ ์ ์ํ ์ ์๋ค). ๋ค์ ๋งํด, ํ๋ก์ธ์ค๋ ๋์คํฌ์ ์ ์ฅ๋ผ ์๋ ์คํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ผ ์ด์์ฒด์ ์ ์ ์ด๋ฅผ ๋ฐ๋ ์ํ๋ฅผ ๋งํ๋ค.
ํ๋ก๊ทธ๋จ์ ์์ฑํด ์ปดํ์ผํ๊ณ ๋งํฌํ๋ฉด ์คํ ๊ฐ๋ฅํ ํ์ผ์ด ์์ฑ๋๋ค(์๋์ฐ๋ผ๋ฉด *.exe๋ผ๋ ํ์ผ์ด, ์ ๋์ค๋ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก a.out์ด๋ผ๋ ํ์ผ์ด ์์ฑ๋๋ค). ์์ ํตํด ์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋จ์ ์ํ์ํค๋ฉด, ์ปค๋์ ์ด ํ๋ก๊ทธ๋จ์ ์ ์ด์ ์ ํฉํ ์๋ฃ๊ตฌ์กฐ๋ก ๋ง๋ค์ด ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด๋ธ ํ, ์ปค๋์ ํ๋ก์ธ์ค ํ
์ด๋ธ์ ๋ฑ๋กํ๊ณ , ๋ฉ๋ชจ๋ฆฌ, ํ์ผ, ์
์ถ๋ ฅ ์ฅ์น ๊ฐ์ ์์์ ํ ๋นํ๋๋ฐ, ์ด๋๋ถํฐ ํ๋ก๊ทธ๋จ์ ์ปค๋์ ํ ํ๋ก์ธ์ค๋ก์ ์คํ ์ํ๊ฐ ๋๋ค.
<!--(PAGEBREAK)-->
ํ๋ก์ธ์ค๋ Win32์ ๊ฒฝ์ฐ์ CreateProcess(), ์ ๋์ค์ ๊ฒฝ์ฐ์๋ fork() ์์คํ
์ฝ์ ์ฌ์ฉํด ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ณ , ํ๋ก์ธ์ค๊ฐ์๋ ๋ค์ํ IPC(Inter-Process Communication) ๋ฐฉ๋ฒ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ฑฐ๋ ํ๋ก์ธ์ค๊ฐ์ ๋๊ธฐํ๋ฅผ ์ํํ๋ค.
<๊ทธ๋ฆผ 1>์ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ๋ชจ์ต์ ๋ํ๋ธ๋ค. ์ด ๊ตฌ์กฐ๋ ์ ๋์ค์ ์๋์ฐ๊ฐ ํฌ๊ฒ ๋ค๋ฅด์ง ์๋ค (JVM์์ ๋์๊ฐ๋ ์๋ฐ ํ๋ก๊ทธ๋จ๋ ๋น์ทํ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋๋ค). ๊ทธ๋ฆผ์์ ์์ชฝ์ด ๋ฎ์ ์ฃผ์๋ฒ์ง๊ฐ ๋๋ค. ๊ทธ๋ฆผ์์ ๋ณด์ด๋ ๋ค ๊ฐ์ ๋ฒ์(ํ
์คํธ, ๋ฐ์ดํฐ, ํ, ์คํ)๋ฅผ ๊ฐ๊ฐ ์ธ๊ทธ๋จผํธ๋ผ๊ณ ํ๋ค.
๊ฐ ์ธ๊ทธ๋จผํธ์ ๋ํด ์ข๋ ์์ธํ๊ฒ ์์๋ณด์(์ฌ๊ธฐ์๋ ์ ๋์ค์ C๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ ํ์ง๋ง, ์๋์ฐ์์๋ ๊ณตํต์ ์ธ ํน์ฑ์ ๊ฐ๋๋ค).
โ ํ
์คํธ : ํ๋ก๊ทธ๋จ์ ์คํ ์ฝ๋์ธ ๊ธฐ๊ณ์ด ์ฝ๋์ ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ ๋ฑ์ ๊ฐ์ง๋ค(CPU๊ฐ ์ฝ์ด๋ค์ฌ ์ํํ๋ค๊ณ ํด์ ํ
์คํธ๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ์ฝ๋ ์์ญ์ด๋ผ๊ณ ๋ ํ๋ค).
โ ๋ฐ์ดํฐ : C์ธ์ด์์ ์ ์ญ ๋ณ์, ์ ์ ๋ณ์ ๋ฑ์ผ๋ก ์ ์ธ๋ ๋ณ์ ์์ญ(์ฝ๊ธฐ/์ฐ๊ธฐ ๊ฐ๋ฅ)
โ ํ : ํ๋ก๊ทธ๋จ ์ํ ์ค malloc(), free() ๋ฑ์ ์์คํ
์ฝ๋ก ํ ๋น๋๊ณ , ํด์ง๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
โ ์คํ : C์ธ์ด์ ํจ์ ํธ์ถ์ ์ง์ญ ๋ณ์์ ์ธ์, ํจ์์ ์ํ์ด ๋๋ฌ์ ๋ ๋ฆฌํดํ ์ฃผ์(return address)๋ฅผ ํธ์ํ๋ค(ํจ์๊ฐ ๋๋๋ฉด ์ด ๊ฐ์ ํํ๊ณ ๋ฆฌํดํ๊ฒ ๋๋ค).
์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋จ์ ํ
์คํธ ๋ถ๋ถ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก๋ง ์ฌ์ฉํ๊ณ , ํ๋ก์ธ์ค๊ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์นจ๋ฒํ์ง ๋ชปํ๋๋ก ํ๋ค. ๋ฐ๋ผ์, ํ๋ก๊ทธ๋จ์ ํ
์คํธ๋ก ๋์ด ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์นจ๋ฒํด ๊ธฐ๋กํ๋ฉด ๋ฒ์ค ์๋ฌ๋ ์ธ๊ทธ๋จผํธ ๊ฒฐํจ์ด ์ผ์ด๋์ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋๋ค. ์ฌ๋ฌ๋ถ์ ์๋์ฐ์์ '์๋ชป๋ ์ฐ์ฐ์ ์ํํด ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค'๋ ๋ฉ์์ง๋ฅผ ๋ณธ์ ์ด ์์ ๊ฒ์ด๋ค. ์ด ์๋ฌ(์๋ชป๋ ์ฐ์ฐ)์ 95% ์ด์์ด ๋ฐ๋ก ์์ ์ด๋ฐ ์ฐ์ ์์ ๋ฐ์ํ๋ค.
C/C++์ ๊ฐ์ด ํฌ์ธํฐ(์ฃผ์๋ฅผ ๊ฐ๋ ๋ณ์)๋ฅผ ์ฌ์ฉํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง์ ์ก์ธ์คํ๋ ์ธ์ด๋ก ๊ฐ๋ฐํ ๋๋ ํํ ์ด์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๋ฐ๋ผ์ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ ๋ ๊ฐ์ฅ ์ค์ํ ์ ์ด ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ค. ํ๋ก๊ทธ๋จ ์ค๋ฅ์ 80% ์ด์์ ์ฐจ์งํ๋ ์ด์ ๋ฅผ ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
โ ์ด๊ธฐํ
โ ํด์ง
์๋ฐ๋ ๊ฐ๋น์ง ์ปฌ๋ ์
์ ํตํด ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ํด์งํ์ง๋ง, ํ์์ ๋ฐ๋ผ ๋ช
์ํด ์ฃผ๋ ๊ฒ์ด ์ข๋ค. C/C++์์๋ ์ฐ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ํด ๋ฐ๋์ ๋ช
์์ ์ผ๋ก delete๋ฅผ ์จ์ค์ผ ํ๋ค.
C/C++๋ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ํฌ์ธํฐ๋ฅผ ์์ด๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๋๋ฐ, ์ด๋ฅผ ๋ฉ๋ชจ๋ฆฌ ๋์๋ผ๊ณ ํ๋ค.
๋ฉ๋ชจ๋ฆฌ ๋์๋ ํ๋ก๊ทธ๋๋จธ๋ฅผ ๊ดด๋กญํ๋ ๊ฐ์ฅ ํฐ ๊ณจ์นซ๊ฑฐ๋ฆฌ ์ค ํ๋๋ค. ๊ผผ๊ผผํ ํ์ธํ๋ ์ต๊ด์ ๋ค์ด๋ ๊ฒ์ด ์ข๋ค.
<!--(PAGEBREAK)-->
๋ฉํฐ๋ก ์์ํ๋ ๋จ์ด์ ์ฌ์ฉ
๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ, ๋ฉํฐ ํ๋ก์ธ์ฑ, ๋ฉํฐ ํ์คํน, ๋ฉํฐ ์ฐ๋ ๋, ๋ฉํฐ ์ ์ ๋ ๋น์ท๋น์ทํ ์ฉ์ด์ด๊ธฐ ๋๋ฌธ์ ํผ๋ํด ์ฌ์ฉํ์ง๋ง ์๋ฏธ๊ฐ ๋ชจ๋ ๋ค๋ฅด๋ค.
โ ๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ : ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ผ ์ํ๋๋ ๊ฒ. ํ๋์ ํ๋ก๊ทธ๋จ์ด ์ํ๋๋ค๊ฐ ์
์ถ๋ ฅ์ ํ๋ฉด CPU๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ผ๋ก ์ ์ด๊ถ์ ๋๊ธด๋ค. ์ฆ, ํ๋ก๊ทธ๋จ์ ์
์ถ๋ ฅ์ ๊ธฐ์ค์ผ๋ก ํ๋ก๊ทธ๋จ ์ํ์ ์ค์์นญ์ด ์ผ์ด๋๋ค(์์ฆ์ ์ข์ฒ๋ผ ์ฐ์ด์ง ์๋ ๋ง์ด๋ค).
โ ๋ฉํฐ ํ๋ก์ธ์ฑ : ๋ค์์ ํ๋ก์ธ์๊ฐ ์์
์ ์ฒ๋ฆฌํ๋ ๊ฒ. ์ด์์ฒด์ ๊ฐ ๋ฉํฐ ํ๋ก์ธ์ฑ์ ์ง์ํ๋ค๋ ๊ฒ์ ๋ค์์ CPU๋ฅผ ์ง์ํ ์ ์๋ค๋ ๋ป์ด๋ค. ์ฌ๋ฌ CPU๊ฐ ์ด์์ฒด์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํด ํ๋ก๊ทธ๋จ์ ์ํํ๋ ๋ฐฉ์์ SMP(๋์นญํ ๋ฉํฐ ํ๋ก์ธ์ฑ)๋ผ๊ณ ํ๋ค(์๋์ฐ NT๊ฐ ์ด๋ฐ ๋ฐฉ์์ด๋ค).
โ ๋ฉํฐ ํ์คํน(์๋ถํ ์์คํ
) : ํ์คํฌ(Task, ์ด์์ฒด์ ๊ฐ ์ํํ๋ ๊ธฐ๋ณธ ๋จ์)๊ฐ ์ฌ๋ฟ์ธ ๊ฒ. ์ด์์ฒด์ ๊ฐ ๊ฐ์ ๋ก CPU ์๊ฐ์ ํ๋ก์ธ์ค์ ํ ๋นํ๋ค.
โ ๋ฉํฐ ์ ์ : ๋ฉํฐ ์ ์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฉํฐ ํ์คํน์ด ๋๋ ์์คํ
์ ๋ค์ค ์ฌ์ฉ์ ํ์ผ ์์คํ
๋ฑ ๋ค์ค ์ฌ์ฉ์๋ฅผ ์ง์ํ๊ธฐ ์ํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒ์ด๋ค.
โ ๋ฉํฐ ์ฐ๋ ๋ : ํ๋์ ํ๋ก์ธ์ค ๋ด์ ์ฌ๋ฌ ๊ฐ์ ์ํ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๊ณ , ์ด๋ฅผ ๋์์ ์ํํ๋ ๊ฒ. ํ๋์ ํ๋ก์ธ์ค๊ฐ ๋์์ ๋ ๊ฐ์ง ์ด์์ ์์
์ ์ํํ๋๋ฐ ํ์ฉ๋๋ค(์ฝ๊ฒ ๋งํด ํ๋ก์ธ์ค ๋ด์์ ๋ฉํฐ ํ์คํน์ ํ๋ ๊ฒ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค).
์ฌ๊ธฐ์ ๋ฉํฐ ์ฐ๋ ๋์ ๋ํด ์ข๋ ๊ตฌ์ฒด์ ์ผ๋ก ์์๋ณด์. ์ฐ๋ ๋๋ '์ํ ๊ฒฝ๋ก'๋ผ๊ณ ์ ์ํ ์ ์๋ค.
CPU๊ฐ ํ
์คํธ(์ฝ๋)๋ฅผ ์ฝ์ด ์ํํ ๋ ์ํ๋๋ ์ ์ฐจ๋ฅผ ํ๋์ ์ํ ๊ฒฝ๋ก๋ผ๊ณ ํ๋ค. ๋ฉํฐ ์ฐ๋ ๋๋ ๊ฒฐ๊ตญ ์ด๋ฐ ์ํ ๊ฒฝ๋ก๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ค๋ ๋ป์ด๋ค. ๋ฉํฐ ์ฐ๋ ๋๋ ๋ฉํฐ ํ์คํน๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ๋ฌ ์ฐ๋ ๋๋ฅผ ๋ฒ๊ฐ์ ์ํํ๋ค. ํ
์คํธ, ๋ฐ์ดํฐ, ํ, ์คํ์ ๊ฐ ์ธ๊ทธ๋จผํธ์ ๋ํ ์ฃผ์๋ฅผ CPU ๋ ์ง์คํฐ์ ๋ด๊ณ ์๋๋ฐ, ์ด ๋ ์ง์คํฐ์ ๋ด์ฉ์ ๋ฐ๊ฟ(์ปจํ
์คํธ ์ค์์นญ) ๋ค๋ฅธ ์ฐ๋ ๋๋ฅผ ์ํํ๋๋ก ํ๋ค. ์ฐ๋ ๋ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๊ฐ๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฝ๋ ์์ญ์ ๊ณต์ ํ๋ฏ๋ก, ์ปจํ
์คํธ ์ค์์นญํ ๋ ๋ ์ง์คํฐ์ ๋ด์ฉ์ ์กฐ๊ธ๋ง ๋ฐ๊ฟ๋ ๋ฉํฐ ํ์คํน์ ๋นํด ์ปจํ
์คํธ ์ค์์นญ ํ๋ ์๋๊ฐ ๋น ๋ฅด๋ค.
๋ฉํฐ ํ์คํน์ด๋ ๋ฉํฐ ์ฐ๋ ๋๋ ๋ ๊ฐ ์ด์์ ์์
์ด ๋์์ ์ํ๋๋ฏ๋ก, ๋์์ ์ํ๋๋ ์์
์ ๋ํด ๋๊ธฐํ๊ฐ ํ์ฐ์ ์ผ๋ก ํ์ํ๋ค.
์๋ฐ๋ ์ธ์ด ์ฐจ์์์ ๋๊ธฐํ๋ฅผ ์ง์ํ๋ค. synchronized ํค์๋๋ฅผ ์ด์ฉํด ์์ฝ๊ฒ ๋๊ธฐํ๋ฅผ ๊ตฌํํ ์ ์์ง๋ง, ๊ผญ ํ์ํ ๋๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. synchronized๋ฅผ ์ฌ์ฉํ ๊ฒ์ด ์ฌ์ฉํ์ง ์์ ์ฝ๋์ ๋นํด ์ฝ 3โผ4๋ฐฐ์ ๋ ๋๋ ค์ง๊ธฐ ๋๋ฌธ์ด๋ค. ๋๋ถ๋ถ์ ์ ๋์ค์ ์๋์ฐ๋ ์ด์์ฒด์ ์ฐจ์์์ Event, Critical Section, Mutex, Semaphore ๋ฑ์ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ค.
๊ฐ์ฒด์งํฅ ๋ฐฉ๋ฒ๋ก ๊ณผ UML
์์ฆ ์ํํธ์จ์ด ์ ๋ฐ์ '๊ฐ์ฒด์งํฅ'์ด๋ ๋ง์ด ๋ถ์ง ์์ ๋ถ์ผ๊ฐ ์๋ค. ๊ฐ์ฒด์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฟ๋ง ์๋๋ผ ์ํํธ์จ์ด ๊ณตํ์๋ ๊ฐ์ฒด์งํฅ ๋ถ์/์ค๊ณ, ๋ฐฉ๋ฒ๋ก ์ด ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ค. ์ด์ UML(Unified Modeling Language)์ ์ ์ฐฉ ๋จ๊ณ์ ๋ค์ด์ฐ๋ค. ์ด๋ ๊ธ์ ๋ณด๋ ์ง, ํ๊ธฐ๋ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ UML์ ์ฌ์ฉํ๊ณ ์๋ค.
<!--(PAGEBREAK)-->
ํ์ง๋ง ๋ง์ ์ฌ๋๋ค์ด UML์ ์คํดํ๊ณ ์๋๋ฐ, ๊ทธ ์ค ๊ฐ์ฅ ๋ํ์ ์ธ ๋ ๊ฐ์ง๋ง ์ดํด๋ณด๊ฒ ๋ค.
1. UML์ ๊ฐ์ฒด์งํฅ ๋ฐฉ๋ฒ๋ก ์ด๋ค.
2. UML์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๋ฐ ์๊ธฐ๋ ๋ง์ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐ ๋์์ด ๋๋ค.
UML์ ๋ฐฉ๋ฒ๋ก (methodology)์ด ์๋๋ค. UML์ ํ๊ธฐ๋ฒ(notation)์ด๋ค. ๋ง์ ์ฌ๋๋ค์ด UML์ ์ผ์ข
์ ๋ฐฉ๋ฒ๋ก ์ฒ๋ผ ์๊ฐํ๊ณ ์๋๋ฐ, UML์ ๊ฐ์ฒด์งํฅ ๋ถ์/์ค๊ณ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ๋ ํ์ค์ ์ธ ํ๊ธฐ๋ฒ์ ์ ๊ณตํ ๋ฟ์ด์ง UML ์์ฒด๊ฐ ๋ฌด์์ธ๊ฐ๋ฅผ ํด์ฃผ๋ ๊ฒ์ ์๋๋ค. ๋ฐฉ๋ฒ๋ก ์ด๋ผ๊ณ ์๊ธฐํ๋ ค๋ฉด ํ๊ธฐ๋ฒ๊ณผ ํจ๊ป ๊ณต์ ์ ๊ฐ๊ณ ์์ด์ผ ํ๋ค.
๋ฐฉ๋ฒ๋ก = ํ๊ธฐ๋ฒ + ๊ณต์
ํ์ง๋ง UML์ ๊ณต์ ์ ํฌํจํ๊ณ ์์ง ์๋ค. ๋ฐ๋ผ์ RUP(Rational Unified Process)๋ฅผ ์ฐ๊ฑฐ๋ ์์ฒด์ ๊ณ ์ ํ ๊ณต์ ์ ์จ๋ ์ข๋ค๋ ์๊ธฐ๊ฐ ๋๋ค.
๋ ํ ๊ฐ์ง ์ฌ์ค์ UML์ ์ฐ๋๋ผ๋ ์ฌ์ ํ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๋ค์ ๊ทธ๋๋ก ๋จ์ ์๋ค๋ ์ ์ด๋ค. ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๋ ์ด๋ค ๋ฐฉ๋ฒ๋ก ์ ์ฐ๊ฑด ๋ฐฉ๋ฒ๋ก ๊ณผ๋ ๋ณ๊ฐ๋ก ํ์ด์ผ ํ ๊ณผ์ ๋ก ๋จ๊ฒ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ UML์ ์ฌ์ฉํ๋๊ฐ. ๊ทธ ๋ต์ '๋จ๋ค์ด ๋ชจ๋ ์ฐ๋๊น'๋ค. ์ฐ์ค๊ฐ ์๋ฆฌ ๊ฐ์ง๋ง ์ฌ์ค์ด์ ๊ณง ํ์ค์ด๋ค. ์ข๋ ๊ณ ์ํ๊ฒ ๋งํด ํ์ค์ด๊ธฐ ๋๋ฌธ์ด๋ค. UML์ ๊ฐ๋ฐ์๊ฐ ํน์ ๊ฐ๋ฐ์์ ๊ณ ๊ฐ๊ฐ์ ์์ฌ์ํต์ ์์ด ํ์ค์ ์ธ ํํ๋ฅผ ์ ๊ณตํ๋ค๋ ๋ฐ ๊ฐ์ฅ ํฐ ์์๊ฐ ์๋ค. ์ฌ์ค ์์คํ
์ ๋ถ์/์ค๊ณํ๋ ๊ฒ์ ํ๊ธฐ๋ฒ์ด๋ ๊ณต์ ๋ณด๋ค '๊ฒฝํ'์ด ํจ์ฌ ์ค์ํ๋ค. ํ์๋ '๊ฒฝํ'์ ์์๋ ๊ฒ์ ์๋ฌด ๊ฒ๋ ์๋ค๊ณ ๋ณธ๋ค.
<๊ทธ๋ฆผ 2> UML์ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ
๋ง์ ์ฌ๋์ด ์ฌ์ฌ์ฉ์ ๋ถ๋ฅด์ง๊ณ ๊ฐ์ฒด์งํฅ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ์ฌ์ฌ์ฉ์์ ์ฐพ๊ณ ์์ง๋ง, ์ค์ ์ฌ๋ฌ๋ถ์ ํ๋ก์ ํธ์์ ์ผ๋ง๋ ๋ง์ ์ฝ๋๊ฐ ์ฌ์ฌ์ฉ๋๊ณ ์๋์ง ๋์ด์ผ ๋ณด๋ผ.
์ฌ์ฌ์ฉ์ด ๊ฐ์ฅ ์ ์ ์ฉ๋๋ ๋ถ์ผ๊ฐ ๋ฐ๋ก ์ปดํฌ๋ํธ ๊ธฐ๋ฐ์ ๊ฐ๋ฐ(CBD; Component Based Development)์ด๋ค. ๊ทธ๋ ์ง๋ง ์ค์ ํ๋ก์ ํธ์์ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ณ ์กฐ๋ฆฝํ๋ ์ญํ ๊ณผ ๋ฐฐ๋ถ์ด ๊ทธ๋ฆฌ ์ฝ๊ฒ ์ด๋ค์ง์ง๋ ์๋๋ค. ๊ฒฐ๊ตญ ๊ฐ์ฒด์งํฅ๋ก ์ด๋ ์ฌ์ฌ์ฉ, CBD ๋ฑ์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๋ฐ ์ข๋ ๋์์ด ๋๋๋ก ํ๋ ๋
๋ ค์ ๋์์ด์ง ๊ทธ ์์ฒด๊ฐ ๋ชฉ์ ์ด ๋ ์๋ ์๋ค. ์ํํธ์จ์ด ๋ถ์ผ์์๋ ์๋ฌด๋ฆฌ ์ข์ ๊ฐ๋
์ ์๋ฌด๋ฆฌ ์ข์ ์ ํ์ด๋ผ๋ ์ค์ ํ์ฉ๋์ง ์์ผ๋ฉด ์๋ฌด ์์ฉ์ด ์๋ค.
์ปดํจํฐ์ ์ํ
์ปดํจํฐ์ ๊ตฌ์กฐ ์์ฒด๊ฐ ์ํ์ด๋ผ๋ ๊ฒ์ ์๋ ์ฌ๋์ ์๊ฐ๋ณด๋ค ๊ทธ๋ฆฌ ๋ง์ง ์์ ๊ฒ ๊ฐ๋ค.
์ฌ์ค ์ปดํจํฐ์ ์ํคํ
์ฒ๋ ๋ถ์ธ ๋์์ด๊ณ , ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ํ์ ์งํฉ๋ก ์ ๊ทธ๋๋ก ์ฎ๊ฒจ ๋์ ๊ฒ์ด๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ณ์ธตํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋คํธ์ํฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์น๊ณ 70๋
๋๋ถํฐ ์ง๊ธ๊น์ง ๋๋ฆฌ ์ฐ์ด๋ ๊น๋ญ์ ์ํ์ ์ด๋ก ์ ๋ฐํ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ๋ค๋ ๋ง๋ ์๋ค.
๋ฌผ๋ก ์ํ์ ๋ํ ์ดํด์ ์ง์์ด ์๋ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ๋ฐ ๋ง์ ๋์์ ๋ฐ๋ ๊ฒ์ ์ฌ์ค์ด์ง๋ง ์ ๋ ํ์์ ์ธ ๊ฒ์ ์๋๋ค. ์ด์ฉ๋ฉด ์คํ๊ต 3ํ๋
์ ๋์ ์ํ์ด๋ฉด ์ถฉ๋ถํ๋ค๊ณ ๋ณผ ์๋ ์๋ค.
๊ณ ๋ฑํ๊ต ์ด์์ ์ํ ์ค๋ ฅ์ด ํ์ํ ๋ถ์ผ๋ ์ปดํจํฐ ๊ทธ๋ํฝ์ค๋ค(์ปดํจํฐ ๊ทธ๋ํฝ์ค๋ฅผ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ ๊ทผํ๋ ๊ฒฝ์ฐ). ๋ง์ผ ๋ณด๋ค ์ฌ๋ ๊น์ ์ฐ๊ตฌ๊ฐ ํ์ํ๋ค๋ฉด, ์ด์ฐ ์ํ(Discrete Mathematics)์ด๋ผ๋ ์ํ๋ถ์ผ๋ฅผ ๊ณต๋ถํ ๊ฒ์ ๊ถํ๋ค. ์ด์ฐ ์ํ์ ์ ์ฐํ์ ๊ธฐ์ด ์ด๋ก ์ ์ํ์ ์ธ ์
์ฅ์์ ๋ค๋ฃฌ๋ค. ์ํ์ด๋ผ๋ ํ๋ฌธ์์ ๊ฐ์ฅ ์ค์ํ๋ค๋ ๋ฌดํ(Infinity)์ ์ฐ์(Continuity)์ ๋บ ์ํ์ด๋ผ๊ณ ๋ณด๋ฉด ํ๋ฆฌ์ง ์๋๋ค.
<!--(PAGEBREAK)-->
๋ฏธ๋๋ฅผ ์ข์ฐํ๋ ๊ฒ
์ธํฐ๋ท์ ํ์ฐ์ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฒฝ๊ณ๋ฅผ ํ๋ฌผ์๊ณ , ์ํํธ์จ์ด ์ฐ์
์ ์ฒด๋ฅผ ๋ค์ง์ด ๋์๋ค. ๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ์น ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋์ผ๋ฉฐ, ์ธํฐ๋ท์ ๋นผ๋๊ณ ์ ์ํํธ์จ์ด๋ฅผ ๋งํ๊ธฐ๊ฐ ํ๋ค์ด์ก๋ค.
๊ทธ ๋ค์์ ๋ฌด์์ธ๊ฐ. ๊ทธ๊ฒ์ ๋ฐ๋ก '๋ชจ๋ฐ์ผ'์ผ ๊ฒ์ด๋ผ๋ ์ ์ ๋ง์ ์ฌ๋์ด ๊ณต๊ฐ์ ํ์ํ๊ณ ์๋ค.
๋ชจ๋ฐ์ผ ์์ฅ์ ํ์ฑํ์ ๋ฐ๋ผ ํน์ ๋ชฉ์ ์ ์ด์์ฒด์ ๋ ํ๋์จ์ด๊ฐ ๊ฐ๊ด๋ฐ์ ๊ฒ์ด๊ณ ๋์ฑ ๋ ๋ง์ ๊ธฐ์ ์ด ๋ฐํ๋ ๊ฒ์ด๋ค. ํ์ฌ๋ ๊ธฐ์ ์ ์ฝ์ด์ง์ด ํ์ํ ์ ๋๋ก ์์์ ธ ๋์ค๊ณ ์๋ค. ๋ฐ๋ผ์ ์ ์ฐจ ์ฝ๋ฉ์ ๊ธฐ์ ๊ณผ ๊ธฐ์ ์ ๋ฌถ์ด๋ด๋ ๋๊ตฌ๋ก ์ฌ์ฉ๋๊ณ ์๋ค.
๋ง์ ํ๋ซํผ๊ณผ ์ธ์ด๊ฐ ํฅ๋ง์ฑ์ ๋ฅผ ๊ฑฐ๋ญํด ๊ฐ๋ฉด์ ๋ฐ์ ํ๊ณ ์์ง๋ง, ๊ธฐ๋ณธ๊ณผ ๊ธฐ๋ฐ๊ธฐ์ ์ ํฌ๊ฒ ๋ณํ์ง ์์๋ค. ํ๋์จ์ด ๊ตฌ์กฐ ์์ฒด๊ฐ 'ํฐ ๋
ธ์ด๋ง ๊ตฌ์กฐ(stored program)'๋ฅผ ๋ฒ์ด๋์ง ์๊ณ ์๊ณ , ์ํํธ์จ์ด์ ๋ชจ๋ ๊ธฐ์ ์ด ์ด์ ๊ธฐ์ ์ ๋ฐํ์ ๋๊ณ ์์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
UML์ ์๋ก ๋ค์ด๋ณด์. UML์ ์ฌ์ค ์ ํ ์๋ก์ด ๊ฒ์ด ์๋๋ค. ์ด์ ์ ์ฌ๋ฌ ๊ธฐ์ ๊ณผ ๊ฐ๋
์ ์ข
ํฉํ๊ณ ํ์คํํ์ ๋ฟ์ด๋ค. C#๋ C++, ์ค๋ชฐํ ํฌ, ์๋ฐ์ ๊ฐ์ ์กฐ์ ์ธ์ด์ COM/DCOM์ ๊ธฐ๋ฐํด ๋ง๋ค์ด์ก๋ค.
ํ์๋ ๊ฐ์ธ์ ์ผ๋ก ํฅํ ๋์ค์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ์ฃผ์๋ ์๋ฐ์ C#์ด ๋ ๊ฒ์ผ๋ก ์ ์น๊ณ ์๋ค. C#์ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ฒด๊ฐ COM ๊ฐ์ฒด๋ก ๊ตฌ์ฑ๋ผ ์๊ณ , ์๋ฐ๋ EJB๋ฅผ ํตํด CBD๋ฅผ ์ง์ํ๊ณ ์๋ค. JVM๊ณผ .NET ํ๋ซํผ์ ๋ณด๋ฉด ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๊ฐ ํ๋ซํผ์ ํก์๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด๋ฐ ์๊ธฐ๊ฐ ์ฌ๋ญ ๋ค๋ฅด๊ฒ ๋ค๋ฆด์ง ๋ชฐ๋ผ๋, ์กฐ๊ธ๋ง ๊น๊ฒ ์ดํด๋ณด๋ฉด ์ค์ ๋น์ทํ ๊ฐ๋
์ ๊ธฐ๋ฐ๊ธฐ์ ์ ๋ฐฐ๊ฒฝ์ผ๋ก ํ๊ณ ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
์น๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์๋น์ค์๋ XML๊ณผ SOAP๋ ๋์ฑ ๋ ๋ง์ด ์ฐ์ด๊ฒ ๋ ๊ฒ์ด๋ค(XML๊ณผ SOAP๋ ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ๋ฅ์ ๋ฌถ์ด๋ด๊ณ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ด ๋ ๊ฒ์ด๋ค). ์ด์ ๊ฐ๋ฐ์๋ค์๊ฒ๋ ๋คํธ์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ ์ง์์ ์์ ์ด ์ ํธํ๋ ์ธ์ด๋ก ์๋ฆฌํด ์ฎ์ด๋ด๊ณ ์ฐ๊ฒฐํ ์ ์๋ ์์ง์ด ์๊ตฌ๋๊ณ ์๋ค. @
์ฐธ๊ณ ๋ฌธํ
Operating System Concepts 3/e, A. Silberschatz, J. Peterson, P. Galvin, Addison-Wesley, 1992
Digital Logic and Computer Design, M. Morris Mano, Prentice-Hall, 1979
Computer System Architecture 2/e, M. Morris Mano, Prentice-Hall, 1982
Computer Organization and Architecture: Principles of Structure and Function, William Stallings, Macmillan Publishing Company, 1987
Discrete Mathematics with Computer Science Applications, Skvarcius, Robinson, The Benjamin/Cummings Publishing Company, 1986
Fundamentals of Data Structures in C++, Ellis Horowitz, Sartaj Sahni and Dinesh Mehta, Computer Science Press, 1995
Introduction to Algorithms: A Creative Approach, Udi Manber, Addison-Wesley Publishing Company, 1989
Object Lifecycles, Sally Shlaer, Stephen J. Mellor, Prentice-Hall, New Jersey, 1992
Object-Oriented Modeling and Design, J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorensen, Prentice-Hall, 1991