2.2.4.2 Plug-Ins ํ๋ฌ๊ทธ์ธ์ ๋ธ๋ผ์ฐ์ ์ ํ์ฅ ๊ธฐ๋ฅ์ผ๋ก์ ์๋ํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ผ๋ก, ์น ํ์ด์ง ๋ด์์ ๋ฉํฐ๋ฏธ๋์ด ์ฝํ ์ธ ๋ฅผ ํ์ํ๋ ๋ฑ์ ํน์ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค. Shockwave, RealPlayer, QuickTime๊ณผ ๊ฐ์ ๋ฉํฐ๋ฏธ๋์ด ๊ด๋ จ ํ๋ฌ๊ทธ์ธ์ด ๊ทธ ์์ ๋๋ค. ๋ํ NetZip๊ณผ Neptune๊ณผ ๊ฐ์ ์ ํธ๋ฆฌํฐ ํ๋ฌ๊ทธ์ธ ํ๋ก๊ทธ๋จ๋ ์์ต๋๋ค. NetZip์ ๋ฐ์ดํฐ ์์ถ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, Neptune์ Netscape์์ ActiveX๋ฅผ ์ง์ํ์ฌ Microsoft์ Internet Explorer์ ์ ์ฌํ๊ฒ ์๋ํ๋๋ก ํฉ๋๋ค.
์๋ Microsoft๋ Internet Explorer๋ฅผ Netscape์ ํธํ๋๋๋ก ๋ง๋ค๊ธฐ ์ํด ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์์ต๋๋ค. JavaScript, HTML, ํ๋ฌ๊ทธ์ธ๊น์ง Internet Explorer๋ Netscape์ ์ ์ฌํ๊ฒ ์๋ํ์ต๋๋ค. ์ฌ์ค ์ด๊ธฐ ๋ฒ์ ์ Internet Explorer๋ Netscape ํ๋ฌ๊ทธ์ธ ๋๋ ํ ๋ฆฌ๋ ์ฝ์ ์ ์์์ต๋๋ค. ๋ถํํ๋ Internet Explorer๊ฐ ์์ฅ ์ ์ ์จ์ ํ๋ํ๋ฉด์ Netscape์์ ํธํ์ฑ์ ๊ฐ์ํ์ต๋๋ค.
๊ทธ๋ฆผ 2.7์ Internet Explorer ๋ธ๋ผ์ฐ์ ์์ ํ๋ฌ๊ทธ์ธ์ ๋ณด๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ด ์์์๋ ๋จผ์ ๋ธ๋ผ์ฐ์ ์ ๋ฉ๋ด ๋ฐ์์ ๋๊ตฌ๋ฅผ ์ ํํ ๋ค์ “ํ๋ก๊ทธ๋จ”์ด๋ผ๋ ํญ์ ํด๋ฆญํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ “์ถ๊ฐ ๊ธฐ๋ฅ ๊ด๋ฆฌ” ๋ฒํผ์ ์ ํํ๋ฉด “์ถ๊ฐ ๊ธฐ๋ฅ ๊ด๋ฆฌ”๋ผ๋ ๋ํ ์์๊ฐ ํ์๋ฉ๋๋ค. ์ถ๊ฐ ๊ธฐ๋ฅ(add-ons)์ด๋ผ๋ ์ฉ์ด๋ ์ด์ Internet Explorer๋ฅผ ํฌํจํ ๋ง์ ๋ธ๋ผ์ฐ์ ์์ ๋ธ๋ผ์ฐ์ ์ ๊ด๋ จ๋ ํ๋ฌ๊ทธ์ธ์ ํตํด ์ ์ดํ ์ ์๋ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ์ง์นญํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ค์ ๋ก ๊ทธ๋ฆผ 2.7์ ์ฃผ์ ๊น๊ฒ ์ดํด๋ณด๋ฉด Sun Microsystems ํญ๋ชฉ ์๋์ Java ํ๋ฌ๊ทธ์ธ์ด ์ ๋ ฅ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
2.2.4.3 Java Java๋ ์ปดํ์ผ๊ณผ ํด์์ด ๋ชจ๋ ๊ฐ๋ฅํ ํน์ดํ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. Java ํ๋ก๊ทธ๋จ์ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋จผ์ Java ๋ฐ์ดํธ์ฝ๋๋ผ๊ณ ํ๋ ์ค๊ฐ ์ธ์ด๋ก ๋ฒ์ญ๋ฉ๋๋ค. ์ด๋ ํ๋ซํผ์ ๋ ๋ฆฝ์ ์ธ ์ฝ๋๋ก, ์ดํ Java ํ๋ซํผ์ ์ธํฐํ๋ฆฌํฐ์ ์ํด ํด์๋ฉ๋๋ค. ์ธํฐํ๋ฆฌํฐ๋ ์ฝ๋๋ฅผ ์์ ๊ตฌ์ฑ ์์๋ก ๋๋์ด ๊ฐ Java ๋ฐ์ดํธ์ฝ๋ ๋ช ๋ น์ด ์ปดํจํฐ์์ ์คํ๋๋๋ก ํฉ๋๋ค. Java ํ๋ก๊ทธ๋จ์ ์ปดํ์ผ์ ํ ๋ฒ๋ง ๋ฐ์ํ์ง๋ง, ํด์์ ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋๋ง๋ค ์ด๋ฃจ์ด์ง๋๋ค.
2.2.4.3.1 Java Bytecodes Java ๋ฐ์ดํธ์ฝ๋๋ Java ๊ฐ์ ๋จธ์ (Java VM)์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ฅ์น์ ๊ธฐ๊ณ ์ฝ๋ ๋ช ๋ น์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ์น ๋ธ๋ผ์ฐ์ ์ ํฌํจ๋ ๋ชจ๋ Java ์ธํฐํ๋ฆฌํฐ(์ ํ๋ฆฟ์ ์คํํ ์ ์๋ ๋ธ๋ผ์ฐ์ ํฌํจ)์ ๊ฐ๋ฐ ๋๊ตฌ๋ Java VM์ ๊ตฌํ์ผ๋ก ๊ฐ์ฃผ๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ Java ๋ฐ์ดํธ์ฝ๋๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ด๋ค Java VM์์๋ ์๋ํ ์ ์๋ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ ์ ์๊ฒ ํ๋ฉฐ, ํ๋ซํผ์ Java ์ธํฐํ๋ฆฌํฐ๋ง ํฌํจ๋์ด ์๋ค๋ฉด ํ๋ซํผ ๋ ๋ฆฝ์ฑ์ ์ ์งํ ์ ์์ต๋๋ค. Java VM์ ๋ํด ์ดํดํ ํ ์ด์ Java๊ฐ ์ ๊ณตํ๋ ๋ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๊ทธ ๊ธฐ๋ฅ์ Java API์ ๋๋ค.
2.2.4.3.2 The Java API Java ์์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค(Java API)๋ ํธ์ถ๋ ๋ ๋ฏธ๋ฆฌ ์ ์๋ ๊ธฐ๋ฅ์ ์ํํ๋ ๋ฏธ๋ฆฌ ์ ์๋ ์ํํธ์จ์ด ๊ตฌ์ฑ ์์ ๋ชจ์์ ๋๋ค. Java API๋ ๊ด๋ จ ํด๋์ค์ ์ธํฐํ์ด์ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ทธ๋ฃนํ๋๋ฉฐ, ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํจํค์ง๋ผ๊ณ ํฉ๋๋ค.
2.2.4.3.3 Java Programs ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ Java ํ๋ก๊ทธ๋จ ์ ํ์ ์ ํ๋ฆฟ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ๋ ๊ฐ์ง ์ค์์ ๋ ์๋ค์ด ๋ ์ต์ํ ๊ฒ์ ์๋ง๋ Java ์ ํ๋ฆฟ์ผ ๊ฒ์ ๋๋ค. Java ์ ํ๋ฆฟ์ Java ์ง์ ๋ธ๋ผ์ฐ์ ๋ด์์ ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ๋ํ๋ ๋๋ค. ์ฆ, ์ ํ๋ฆฟ์ HTML ์น ํ์ด์ง์ ํฌํจ๋ ์ ์๋ Java๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธํฉ๋๋ค. Java ์ง์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ Java ์ ํ๋ฆฟ์ด ํฌํจ๋ ํ์ด์ง๋ฅผ ๋ณด๋ฉด, ์ ํ๋ฆฟ์ ์ฝ๋๋ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋์ด ๋ธ๋ผ์ฐ์ ์ Java ๊ฐ์ ๋จธ์ ์ ์ํด ์คํ๋ฉ๋๋ค. ์ด์ ๋นํด ์ ํ๋ฆฌ์ผ์ด์ ์ Java ์ง์ ์ปดํจํฐ ํ๋ซํผ์์ ์ง์ ์คํ๋๋ ๋ ๋ฆฝ ์คํํ ํ๋ก๊ทธ๋จ์ ๋ํ๋ ๋๋ค.
Java ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์งง๊ฒ ๋ ผ์ํ ๋งํ ๋ค์ํ ์ข ๋ฅ๊ฐ ์์ต๋๋ค. ์ฒซ์งธ, ์๋ฒ๋ผ๊ณ ๋ถ๋ฆฌ๋ ํน๋ณํ ์ ํ์ Java ์ ํ๋ฆฌ์ผ์ด์ ์ ๋คํธ์ํฌ์ ํด๋ผ์ด์ธํธ๋ฅผ ์ง์ํฉ๋๋ค. Java ์๋ฒ์ ์๋ก๋ ์น ์๋ฒ, ํ๋ฆฐํธ ์๋ฒ, ํ๋ก์ ์๋ฒ ๋ฐ Java ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์กํ๋ ๊ธฐํ ์ ํ์ ์๋ฒ๊ฐ ์์ต๋๋ค. ๋ ๋ค๋ฅธ ์ ํ์ Java ํ๋ก๊ทธ๋จ์ ์๋ธ๋ฆฟ(servlet)์ผ๋ก, ์๋ฒ์์ ์คํ๋๋ ์ ํ๋ฆฟ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ์๋ธ๋ฆฟ์ CGI ์คํฌ๋ฆฝํธ๋ฅผ ๋์ ํ์ฌ ๋ํํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์ธ๊ธํ ๊ฐ์น๊ฐ ์๋ ๋ ๋ค๋ฅธ ์ ํ์ Java ํ๋ก๊ทธ๋จ์ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ํฌ๋ก์ค ํ๋ซํผ ๊ฐ์ฒด ๊ธฐ๋ฐ ์คํฌ๋ฆฝํ ์ธ์ด์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํฌํจํ ๋ค๋ฅธ ์ ํ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฒ ๋ํ๊ธฐ ์ํด ์ค๊ณ๋ ์๊ณ ๊ฐ๊ฒฐํ ์ธ์ด์ ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ด๋ถ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๊ฒฝ์ ๊ฐ์ฒด๋ค๊ณผ ์ฐ๊ฒฐ๋ ์ ์์ผ๋ฉฐ, ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ทธ ํ๊ฒฝ์ ๋ํ ํ๋ก๊ทธ๋จ ์ ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฐฐ์ด(Array), ๋ ์ง(Date), ์ํ(Math)์ ๊ฐ์ ํต์ฌ ๊ฐ์ฒด ์งํฉ๋ฟ๋ง ์๋๋ผ ์ธ์ด ์์๋ผ๊ณ ๋ถ๋ฆฌ๋ ํต์ฌ ์ฐ์ฐ์, ์ ์ด ๊ตฌ์กฐ, ๋ช ๋ น๋ฌธ ์งํฉ์ ํฌํจํฉ๋๋ค. ์ด๋ฌํ ํต์ฌ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํด๋ผ์ด์ธํธ ์ธก ๋ฐ ์๋ฒ ์ธก ์์ ์ ์ํด ํ์ฅ๋ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ ์ธก์์๋ ํต์ฌ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ด๋ฅผ ์ด๋ ์ ๋ ์ ๊ณตํ๋ ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๊ฐ ํผ์ ์์๋ฅผ ๋ฃ๊ฑฐ๋ ์น ํ์ด์ง๋ฅผ ํ์ํ ์ ์๋๋ก ํ์ฅ๋ฉ๋๋ค. ๋ฐ๋ฉด ์๋ฒ ์ธก ์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋ฒ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ์์๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ํต์ฌ ์คํฌ๋ฆฝํ ์ธ์ด๋ฅผ ํ์ฅํฉ๋๋ค. ์๋ฒ ์ธก ์๋ฐ์คํฌ๋ฆฝํธ ํ์ฅ์ ํ ์๋ ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ ์ ์์ต๋๋ค.
JavaScript ํ๋ก๊ทธ๋จ์ ์น ํ์ด์ง์ ํตํฉํ๋ ๊ฒ์ HTML <SCRIPT>
ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฃจ์ด์ง๋๋ค. ๋ค์ HTML ์ฝ๋๋ JavaScript ํ๋ก๊ทธ๋จ์ HTML ์น ํ์ด์ง์ ํตํฉํ๋ ์๋ฅผ ๋ณด์ฌ์ค๋๋ค:
<HTML>
<HEAD>
<TITLE>JavaScript Example</TITLE>
<SCRIPT LANGUAGE="JavaScript">
MsgBox "Welcome to popcorn.com."
</SCRIPT>
</HEAD>
</HTML>
2.2.4.4 VBScript Microsoft์ Visual Basic Scripting(VBScript)์ Java ์ ํ๋ฆฟ๋ณด๋ค ๋ ๊ฐ๋ ฅํ๊ณ ์ ์ฌ์ ์ผ๋ก ๋ ์ํํ HTML ํ์ฅ ๊ธฐ๋ฅ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. VBScript๋ Windows Script๋ฅผ ์ฌ์ฉํ์ฌ ํธ์คํธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํต์ ํฉ๋๋ค. Windows Script๋ฅผ ์ฌ์ฉํ ๋, Microsoft์ Internet Explorer ๋ฐ ๊ธฐํ ํธ์คํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ ์คํฌ๋ฆฝํ ๊ตฌ์ฑ ์์์ ๋ํด ๋ณ๋์ ์ฝ๋ฉ์ด ํ์ํ์ง ์์ผ๋ฉฐ, ์ปดํจํฐ๊ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ปดํ์ผํ๊ณ , ์ง์ ์ ์ ์ป๊ณ ํธ์ถํ๋ฉฐ, ์ฌ์ง์ด ์คํฌ๋ฆฝํ ์ ์ํ ํ์ค ์ธ์ด ๋ฐํ์์ ์์ฑํ ์ ์๊ฒ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ-์๋ฒ ํ๊ฒฝ์์ VBScript๋ฅผ ์ง์ํ๋ ๋ธ๋ผ์ฐ์ ๋ ์น ํ์ด์ง์ ํฌํจ๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐ์๋ค์ด๋ฉฐ, ๋ธ๋ผ์ฐ์ ๋ ํด๋น ์คํฌ๋ฆฝํธ๋ฅผ ํด์ํ๊ณ ์ฒ๋ฆฌํฉ๋๋ค.
JavaScript๋ฅผ ์น ํ์ด์ง์ ํฌํจ์ํค๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, VBScript์ ํตํฉ๋ HTML <SCRIPT>
ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฃจ์ด์ง๋๋ค. ๋ค์ HTML ์ฝ๋๋ VBScript๋ฅผ HTML ์น ํ์ด์ง์ ํตํฉํ๋ ์๋ฅผ ๋ณด์ฌ์ค๋๋ค:
<HTML>
<HEAD>
<TITLE>VBScript Example</TITLE>
<SCRIPT LANGUAGE="VBScript">
MsgBox "Welcome to popcorn.com."
</SCRIPT>
</HEAD>
</HTML>
SCRIPT LANGUAGE
ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์น ๋ธ๋ผ์ฐ์ ๋ ํด๋น ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ํด์ํ ์ง ์๊ฒ ๋ฉ๋๋ค. Netscape ๋ธ๋ผ์ฐ์ ์ Microsoft Internet Explorer์ ์ผ๋ถ ๋ฒ์ ์ JavaScript๋ฅผ ์ง์ํ์ง๋ง, VBScript๋ ํ์์ ๋ธ๋ผ์ฐ์ ๋ง ์ง์ํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์น ํ์ด์ง์ ํฌํจ๋ ํน์ ์คํฌ๋ฆฝํ
์ธ์ด๋ฅผ ์ง์ํ์ง ์์ผ๋ฉด, ์ผ๋ฐ์ ์ผ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์น ํ์ด์ง์ ์ผ๋ถ๋ก ํ์ํ๊ฑฐ๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ณด์ด์ง ์๊ฒ ์จ๊น๋๋ค. ํ์์ ๊ฒฝ์ฐ๋ ์คํฌ๋ฆฝํธ๊ฐ ์ฃผ์ ํ๊ทธ(<!-- and -->
)๋ก ๊ฐ์ธ์ ธ ์์ ๋ ๋ฐ์ํ๋ฉฐ, ๋ธ๋ผ์ฐ์ ์์ ํด๋น ์คํฌ๋ฆฝํธ๋ ๋ฌด์๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ด์ ์คํฌ๋ฆฝํธ ์์ ๋ก ๋์๊ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ์ธ๋ฉด, VBScript๋ฅผ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ์์ ๋ฌด์๋ฉ๋๋ค:
<HTML>
<HEAD>
<TITLE>VBScript Example</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
MsgBox "Welcome to popcorn.com!"
-->
</SCRIPT>
</HEAD>
</HTML>
2.2.4.5 ActiveX ActiveX๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ์ผ๋ จ์ ๊ท์น์ ๋ํ๋ ๋๋ค. Microsoft์์ ๊ฐ๋ฐํ ActiveX๋ Object Linking and Embedding(OLE)๊ณผ Component Object Model(COM)์ด๋ผ๋ ๋ ๊ฐ์ง Microsoft ๊ธฐ์ ์ ๋ฟ๋ฆฌ๋ฅผ ๋๊ณ ์์ต๋๋ค.
ํ๋ก๊ทธ๋๋จธ๋ C, C++, Java, Visual Basic ๋ฑ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ActiveX ์ปจํธ๋กค์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ActiveX ์ปจํธ๋กค์ Java ์ ํ๋ฆฟ๊ณผ ์ ์ฌํ ๊ฒ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์คํฌ ์์ ์ ์ํํ ์ ์๋ Java ์ ํ๋ฆฟ๊ณผ ๋ฌ๋ฆฌ, ActiveX ์ปจํธ๋กค์ Windows ์ด์ ์ฒด์ ์ ์์ ํ ์ ๊ทผ ๊ถํ์ ๊ฐ์ง๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ ๋๋ถ์ ActiveX ์ปจํธ๋กค์ Java ์ ํ๋ฆฟ๋ณด๋ค ๋ ๊ฐ๋ ฅํ์ง๋ง, ๊ทธ๋งํผ ๋ณด์ ์ํ๋ ๋ฐ๋ฆ ๋๋ค. ์ด๋ฌํ ์ํ์ ํต์ ํ๊ธฐ ์ํด, Microsoft๋ ๋ธ๋ผ์ฐ์ ๊ฐ ActiveX ์ปจํธ๋กค์ ๋ค์ด๋ก๋ํ๊ธฐ ์ ์ ์ด๋ฅผ ์๋ณํ๊ณ ์ธ์ฆํ ์ ์๋ ๋ฑ๋ก ์์คํ ์ ๊ฐ๋ฐํ์ต๋๋ค.
2.3 Server Operations
ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ์ด ๊ทธ๋ฆผ 2.1์ ๋ํ๋ ๊ฒ์ฒ๋ผ, ์๋ฒ ๊ณ์ธต์ ํ๋ ์ด์์ ์ปดํจํฐ๋ก ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ์์ ํญ์ ์น ์๋ฒ๊ฐ ์กด์ฌํ ๊ฒ์ผ๋ก ์์๋์ง๋ง, ์น ์๋ฒ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ํต์ ํ ๊ฐ๋ฅ์ฑ๋ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ์์ฒด์ ์กด์ฌํ๊ฑฐ๋ ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ๋ ๋ฆฝ ๋์คํฌ์ ์ค๋ณต ๋ฐฐ์ด(RAID)๊ณผ ๊ฐ์ ๋ณ๋์ ์ฅ์น์ ์์นํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ ํ ์ ์์ต๋๋ค. ์ด ์น์ ์์๋ ์น ์๋ฒ ์๋ ๋ฐฉ์๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฐ๊ฒฐ ๋ฐฉ์์ ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
2.3.1 Evolution
ํ๋์ ์น ์๋ฒ๋ ๋ฏธ๊ตญ ๊ตญ๋ฆฝ ์ด๊ณ ์ ์ปดํจํ ์์ฉ ์ผํฐ(NCSA)์์ ๊ฐ๋ฐ๋ ์น ์๋ฒ์ ํ์์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ์ด๊ณณ์์ Netscape๋ก ๋ฐ์ ํ ๋ธ๋ผ์ฐ์ ์ธ Mosaic์ด ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ์ ๋ฝ ์ ์ ๋ฌผ๋ฆฌ ์ฐ๊ตฌ์(CERN)์์๋ ์น ์๋ฒ๊ฐ ๊ฐ๋ฐ๋์์ต๋๋ค. 1990๋ ๋ ํ๋ฐ NCSA์ CERN์์ ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ๋ฐ ์น ์๋ฒ ์ํํธ์จ์ด ์์ ์ด ์งํ๋จ์ ๋ฐ๋ผ, ์ธํฐ๋ท ์์ ์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ธ์ํ ํ์ฅ๋์๊ณ , ์ด์ ๋ฐ๋ผ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ค์ ์ด ๊ธ์ฑ์ฅํ๋ ์์ฅ์ ์ํด ์ ํ์ ์ ๊ณตํ๊ธฐ ์์ํ์ต๋๋ค.
์ค๋๋ ์ ํํ ์ ์๋ ์น ์๋ฒ ํ๋ก๊ทธ๋จ์ ์๋ ์ ํ์ ์ด์ง๋ง, ๊ฐ๊ฐ์ ์ด์ ๋ฐฉ์์ ์ ์ฌํฉ๋๋ค. ์ฆ, ์น ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ๋ชจ๋ ํต์ ์ HTTP๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์น ์๋ฒ๋ ์ด์ ์ฒด์ ์ ํน์ ํฌํธ๋ฅผ ํตํด ํต์ ์ ์๋ฝํ ์ค๋น๊ฐ ๋์์์ ์๋ฆฌ๋ฉด์ ์๋์ ์์ํฉ๋๋ค. HTTP์ ๊ฒฝ์ฐ 80๋ฒ ํฌํธ๊ฐ ์ฌ์ฉ๋๋ฉฐ, ์ด๋ TCP๋ฅผ ํตํด ์ ์ก๋๊ณ , ๋ณด์ HTTP(HTTPS)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ 443๋ฒ ํฌํธ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
Program | Operating Environment |
---|---|
Internet Information Server | Microsoft์์ Windows 2000/2003 Server์ ๋ฒ๋ค๋ก ์ ๊ณตํ๋ ์ ํ |
Apache | ์คํ ์์ค ๋ฌด๋ฃ HTTP ์๋ฒ๋ก UNIX, Linux ๋ฐ Windows์์ ์๋ |
SunONE (Java System์ผ๋ก ์ด๋ฆ ๋ณ๊ฒฝ) | ์๋ Netscape์ Sun Microsystems๊ฐ ๊ณต๋ ๊ฐ๋ฐํ ์ ํ์ผ๋ก, Windows ๋ฐ UNIX์์ ์๋ |
WebSTAR | 4D, Inc.์์ ์ ๊ณตํ๋ ์๋ฒ ์ ํ๊ตฐ์ผ๋ก, Macintosh ํ๋ซํผ์์ ์๋ |
Red Hat Content Accelerator | Linux ํ๊ฒฝ์์ ์ ์ ์น ํ์ด์ง๋ง ์ง์ํ๋ ์ปค๋ ๊ธฐ๋ฐ ์น ์๋ฒ |
ํ 2.8 ์ผ๋ฐ์ ์ธ ์น ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋จ
2.3.2 Common Web Server Programs ์ฌ๋ฌ ์ด์ ์ฒด์ ์์ ์๋ํ๋ ๋ค์ํ ์น ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋จ์ด ์์ต๋๋ค. ์ผ๋ถ ์น ์๋ฒ ํ๋ก๊ทธ๋จ์ Intel Pentium ๋ฐ AMD ํ๋ซํผ์์ ์ฌ๋ฌ ๋ฒ์ ์ Windows์์ ์๋ํ๋๋ก ์ค๊ณ๋ ์ผ๋ฐ ์๋ฒ ์ํํธ์จ์ด์ ๋ฒ๋ค๋ก ์ ๊ณต๋ฉ๋๋ค. ๋ค๋ฅธ ์น ์๋ฒ ํ๋ก๊ทธ๋จ์ UNIX ๋ฐ Linux ์ด์ ์ฒด์ ์์ ์๋ํฉ๋๋ค. ํ 2.8์ ์ธ๊ธฐ ์๋ ์น ์๋ฒ ํ๋ก๊ทธ๋จ๊ณผ ํด๋น ํ๋ก๊ทธ๋จ์ ์ด์ ํ๊ฒฝ์ ๋ํ ๊ฐ๋จํ ์ค๋ช ์ ๋์ดํฉ๋๋ค.
2.3.2.1 Server Characteristics ์ผ๋ฐ์ ์ผ๋ก ์น ์๋ฒ๋ ๋ ๊ฐ์ง ๋ณ๋์ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค. ํ๋๋ ์ด์ ์ฒด์ ์ ์ํด ์์ฑ๋๋ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ก, ๋์คํฌ ๋๋ผ์ด๋ธ์ ์์ ๋ถ๋ถ์์ ์์๋๋ฉฐ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ํ๋ ๋๋ค. ๋ ๋ฒ์งธ ๋๋ ํฐ๋ฆฌ๋ ๋์คํฌ ๋๋ผ์ด๋ธ์ ์น ๋ฌธ์๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฅ๋๋ ์์น์์ ์์๋ฉ๋๋ค. ์ด ์น ๋๋ ํฐ๋ฆฌ๋ ๋ฃจํธ๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด๋ฅผ ๋ฌธ์ ๋ฃจํธ ๋๋ ํ ๋๋ ํฐ๋ฆฌ์ ๋ก์ปฌ ๊ฒฝ๋ก๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
๊ทธ๋ฆผ 2.8์ ์ผ์ชฝ ๋ถ๋ถ์ Microsoft Internet Information Server์ ๊ธฐ๋ณธ ์น ์ฌ์ดํธ ์์ฑ ๋ํ ์์๋ฅผ ๋ณด์ฌ์ฃผ๋ฉฐ, ํ ๋๋ ํฐ๋ฆฌ ํญ์ด ์ ํ๋ ์ํ์ ๋๋ค. ๋ก์ปฌ ๊ฒฝ๋ก๊ฐ C:\inetpub\wwwroot๋ก ํ์๋๋ฉฐ, ์ด๋ ํด๋ผ์ด์ธํธ ์ฟผ๋ฆฌ์ ์๋ตํ์ฌ ์๋ฒ ์ฝํ ์ธ ๊ฐ ์ ๊ณต๋๋ ๊ธฐ๋ณธ ํ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ํ๋ ๋๋ค. “์ฐพ์๋ณด๊ธฐ” ๋ฒํผ์ ํด๋ฆญํ๋ฉด, ๊ทธ๋ฆผ 2.8์ ์ค๋ฅธ์ชฝ์ ํ์๋ ํด๋ ์ฐพ๊ธฐ ์ฐฝ์ด ์ด๋ฆฝ๋๋ค.
์ด์ ์ปดํจํฐ URL ๋๋ ์ฌ์ดํธ ์ด๋ฆ์ด www.popcorn.com ์ด๊ณ wwwroot ๋๋ ํฐ๋ฆฌ์ “welcome”์ด๋ผ๋ ๋ฌธ์๋ฅผ ์ ์ฅํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด C:\inetpub\wwwroot\welcome์ welcome ๋ฌธ์์ ๋๋ ํฐ๋ฆฌ ์ฃผ์๋ฅผ ๋ํ๋ ๋๋ค. ๋ฐ๋ผ์ http://www.popcorn.com ์ด๋ผ๋ URL ์์ฒญ์ ๊ฒฝ๋ก C:\inetpub\wwwroot\welcome.html์์ Welcome ์น ํ์ด์ง๋ฅผ ๋ฐํํ๊ฒ ๋ฉ๋๋ค. ์์ ์ค๋ช ์ ํตํด, ์น ์๋ฒ๊ฐ URL ์์ฒญ์ ์ปดํจํฐ์ ์น ํ ํ์ด์ง ๋๋ ๋ฌธ์ ๋ฃจํธ์ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ก ๋งคํํ๋ ๋ฐฉ์์ ์ ์ ์์ต๋๋ค.
๋ก์ปฌ ๊ฒฝ๋ก ๋๋ ๋ฌธ์ ๋ฃจํธ๋ฅผ ์ง์ ํ ์ ์์ ๋ฟ๋ง ์๋๋ผ, ์๋ฒ ์ด์์๋ ์น ์๋ฒ๋ฅผ ๊ตฌ์ฑํ์ฌ ๋ค๋ฅธ ์ปดํจํฐ์ ๊ณต์ ํด๋์์ ์ฝํ ์ธ ๋ฅผ ์์ฑํ๊ฑฐ๋ URL๋ก ๋ฆฌ๋๋ ์ ์ ์ค์ ํ ์ ์์ต๋๋ค. ํ์์ ๊ฒฝ์ฐ, ํ ๋๋ ํฐ๋ฆฌ์์ ๋ค๋ฅธ ์์น(๊ฐ์ ์ปดํจํฐ์ด๊ฑฐ๋ ์์ฒ ๋ง์ผ ๋จ์ด์ง ๋ค๋ฅธ ์ปดํจํฐ)์ ์๋ ๊ณณ์ผ๋ก ์์ฒญ์ ๋ฆฌ๋๋ ์ ํ ์ ์์ต๋๋ค.
ํ๋์ ์น ์๋ฒ๋ ์ธ๊ธํ ๋งํ ๋ช ๊ฐ์ง ํน์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ ์ค ํ๋๋ ๋์ผํ ์ปดํจํฐ์์ ์ฌ๋ฌ ์ฌ์ดํธ๋ฅผ ์ง์ํ ์ ์๋ ๊ธฐ๋ฅ์ด๋ฉฐ, ๋ค๋ฅธ ํ๋๋ ๋ค๋ฅธ ์๋ฒ์ ๋ฌธ์ ๋ฃจํธ ๋๋ ์ธํฐ๋ท ๋๋ ํฐ๋ฆฌ์์ ๋ฌธ์๋ฅผ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ฒซ ๋ฒ์งธ ํน์ฑ์ ๊ฐ์ ํธ์คํ (virtual hosting)์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ, ๋ค๋ฅธ ์๋ฒ์์ ๋ฌธ์๋ฅผ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์น ์๋ฒ๋ฅผ ํ๋ก์ ์๋ฒ(proxy server)๋ก ๋ง๋ญ๋๋ค. ์น ํ์ด์ง ์ง์ ์ธ์๋, ํ๋์ ์น ์๋ฒ๋ FTP, Gopher ์ ์ก ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ก์ธ์ค๋ฅผ ์ง์ํฉ๋๋ค. ์น ์๋ฒ๋ ๋ํ CGI ์คํฌ๋ฆฝํธ์ ์๋ธ๋ฆฟ(servlets)์ ์คํํ๋๋ฐ, ์๋ธ๋ฆฟ์ ์ปดํ์ผ๋ Java ํด๋์ค์ ๋๋ค. CGI ์คํฌ๋ฆฝํธ์ ์๋ธ๋ฆฟ์ ํด๋ผ์ด์ธํธ-์๋ฒ ์์ ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ผ๋ฏ๋ก, ์ด ๋์ ์ฃผ๋ชฉํด ๋ณด๊ฒ ์ต๋๋ค.
2.3.2.1.1 CGI Scripts Common Gateway Interface(CGI)๋ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋ฒ ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ํ์คํํ ๊ฒ์ ๋๋ค. CGI์ ํ์์ฑ์ ์ดํดํ๋ ค๋ฉด, ๊ธฐ๋ณธ HTML๋ก ์์ฑ๋ ๋ฌธ์๋ ์ ์ ์ด์ด์ ๋ณ๊ฒฝ๋์ง ์๋๋ค๋ ์ ์ ์ธ์ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฃผ๋ฌธ์ ํ๊ฑฐ๋ ์ฃผ์ ๊ฐ๊ฒฉ์ด๋ ํน์ ์ง์ญ์ ๋ ์จ์ ๊ฐ์ ํญ๋ชฉ์ ์์ฒญํ ๋๋ ๋์ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ ๋๊ตฌ๊ฐ ํ์ํฉ๋๋ค. CGI ํ๋ก๊ทธ๋จ์ ์ค์๊ฐ์ผ๋ก ์คํ๋์ด ๋์ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ ์ ์๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Common Gateway Interface๋ผ๋ ์ฉ์ด๋ ์น์ ์ด๊ธฐ ๊ฐ๋ฐ ์๊ธฐ๋ก ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋ฉฐ, ๋น์ ๊ธฐ์ ๋ค์ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์น ์๋ฒ์ ์ฐ๊ฒฐํ๋ ค๊ณ ํ์ต๋๋ค. ์ด ์ฐ๊ฒฐ ๊ณผ์ ์์๋ ์น ์๋ฒ์์ ์คํ๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก๊ทธ๋จ์ผ๋ก ๊ด๋ จ ์ ๋ณด๋ฅผ ์ ์กํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์์ ํ์ฌ ํด๋ผ์ด์ธํธ์ ๋ฐํํ๋ ํ๋ก๊ทธ๋จ์ด ํ์ํ์ต๋๋ค. ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ์ฐ๊ฒฐ ๊ณผ์ ์ด ๊ฒ์ดํธ์จ์ด์ฒ๋ผ ์๋ํ๊ธฐ ๋๋ฌธ์, ์ด ํ์ค์ Common Gateway Interface๋ผ๊ณ ๋ถ๋ฅด๊ฒ ๋์์ต๋๋ค.
CGI ํ๋ก๊ทธ๋จ์ ํน์ ์ปดํจํฐ์์ ์คํ๋ ์ ์๋ ๋ชจ๋ ์ธ์ด๋ก ์์ฑ๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ C, C++, Fortran, PERL, Visual Basic ๋ฑ์ CGI ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์ ์๋ ์ธ์ด์ ๋๋ค. UNIX ํ๊ฒฝ์์๋ CGI ํ๋ก๊ทธ๋จ์ด /cgi-bin ๋๋ ํฐ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค. Microsoft Internet Information Server ํ๊ฒฝ์์๋ CGI ํ๋ก๊ทธ๋จ์ด C:\inetpub\wwwroot\scripts์ ์์นํฉ๋๋ค. ์ด ์์น๋ PERL๊ณผ ๊ฐ์ ์คํฌ๋ฆฝํ ์ธ์ด๋ก ๊ฐ๋ฐ๋ CGI ํ๋ก๊ทธ๋จ์ ์ ์ฅํ๋ ๊ณณ์ ๋๋ค.
CGI ์คํฌ๋ฆฝํธ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฉ๋ ์ค ํ๋๋ ํผ ์ ์ถ์ ๋๋ค. ์๋ฒ์์ ์คํ๋๋ CGI ์คํฌ๋ฆฝํธ๊ฐ ํด๋ผ์ด์ธํธ์์ ์ ์ก๋ ํผ์ ํญ๋ชฉ์ ์ฒ๋ฆฌํฉ๋๋ค. CGI ์คํฌ๋ฆฝํธ๋ HTML ๋ด์์ URL์ ์ง์ ์ง์ ํ๊ฑฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ ๋ค๋ฅธ ์คํฌ๋ฆฝํ ์ธ์ด ๋ด์์ ํธ์ถํ ์ ์์ต๋๋ค.
2.3.2.1.2 Servlets ์๋ธ๋ฆฟ์ ์ปดํ์ผ๋ Java ํด๋์ค๋ฅผ ๋ํ๋ ๋๋ค. CGI์ ์ ์ฌํ๊ฒ, ์๋ธ๋ฆฟ์ ์๋ฒ์์ ์คํ๋๋ฉฐ HTML์ ํตํด ํธ์ถ๋ฉ๋๋ค. ์น ์๋ฒ๊ฐ ์๋ธ๋ฆฟ ์์ฒญ์ ๋ฐ์ผ๋ฉด, ํด๋น ์์ฒญ์ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ปจํ ์ด๋๋ ์๋ธ๋ฆฟ์ ๋ก๋ํ ํ, ์๋ธ๋ฆฟ์ด ์๋ฃ๋๋ฉด ์ปจํ ์ด๋๊ฐ ๋ค์ ์ด๊ธฐํ๋์ด ์๋ฒ๋ก ์ ์ด๊ฐ ๋ฐํ๋ฉ๋๋ค.
CGI์ ์ ์ฌํ์ง๋ง, ์๋ธ๋ฆฟ์ ์๋ฒ ํ๋ก์ธ์ค๋ก ์คํ๋๋ฉฐ Java API์ ์ง์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅผ ์ ์์ต๋๋ค. ์๋ธ๋ฆฟ์ Java๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์ ํ๋ซํผ์ ๋ ๋ฆฝ์ ์ ๋๋ค.
์๋ธ๋ฆฟ์ ๋ํ ๋ ผ์๋ฅผ ๋ง์น๊ธฐ ์ ์, ์๋ธ๋ฆฟ๊ณผ ๊ด๋ จ๋ Java Server Pages(JSP)์ ๋ํด ๊ฐ๋จํ ์ธ๊ธํ๊ฒ ์ต๋๋ค. JSP๋ ์๋ธ๋ฆฟ๊ณผ ์ ์ฌํ๊ฒ HTML ๋ฌธ์์ ๋์ ์ฝํ ์ธ ์ ์ฒ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. JSP๋ ๋ณดํต ์๋ฒ ์ธก ์คํฌ๋ฆฝํ ์ธ์ด๋ก ์ฌ์ฉ๋๋ฉฐ, JSP ์ปจํ ์ด๋์ ์ํด ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ๋ฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ก ๋์ด๊ฐ๊ธฐ ์ ์, Microsoft ์๋ฒ ํ์ค์ธ ISAPI์ ๋ํด ๋ช ๊ฐ์ง ์ค๋ช ์ ๋ง๋ถ์ด๊ฒ ์ต๋๋ค.
2.3.2.1.3 ISAPI Internet Server API(ISAPI)๋ Microsoft ์๋ฒ์ ํนํ๋ ํ์ค์ผ๋ก, DLL์ ์๋ฒ์ ์ฃผ์ ๊ณต๊ฐ์ ๋ก๋ํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ํด์ํฉ๋๋ค. CGI์ ์ ์ฌํ์ง๋ง, ISAPI๋ ์๋ฒ๊ฐ CGI ์คํฌ๋ฆฝํธ์ฒ๋ผ ์ ์คํ ํ์ผ์ ์์ฑํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฆ ๋๋ค. ๋์ DLL์ด ๋ก๋๋์ด ์คํฌ๋ฆฝํธ๋ฅผ ํด์ํ๋ ์ญํ ์ ํฉ๋๋ค.
2.3.3 Application Servers
๊ทธ๋ฆผ 2.1๋ก ๋ค์ ๋์๊ฐ๋ฉด, ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๊ฐ ๊ธฐ์กด์ ์น ์๋ฒ์ ํจ๊ป 2๊ณ์ธต ์ฅ์น๋ฅผ ๋ํ๋ธ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ค์ ๋ก ์น ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ ๋์ผํ ์ปดํจํฐ์ ์กด์ฌํ ์๋ ์๊ณ ๋ณ๋์ ์ปดํจํฐ์ ์์ ์๋ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฑ์๋ฒ(appserver)๋ผ๊ณ ๋ ํ๋ฉฐ, ํด๋ผ์ด์ธํธ์ ์กฐ์ง์ ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์์ ํน์ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ์ปดํจํฐ์ ์ด๋ฅด๊ธฐ๊น์ง ๊ทธ ๋ฒ์๊ฐ ๋ค์ํฉ๋๋ค. ์ด ์น์ ์์๋ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ๋ชจ๋ธ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ 3๊ณ์ธต ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ด์ ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ์ธ๊ธฐ ์ํํธ์จ์ด ์ ํ์ ๋ํด ์ง์ค์ ์ผ๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค.
2.3.3.1 Access ๋ง์ ํด๋ผ์ด์ธํธ์๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ๋ํ ์ ๊ทผ์ ํฌ๋ช ํ๊ฒ ์ด๋ฃจ์ด์ง๋๋ค. ํด๋ผ์ด์ธํธ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ ์น ์๋ฒ์ ์ ์ํฉ๋๋ค. ์น ์๋ฒ๋ ์ฝ๋ฉ์ ๋ฐ๋ผ ์์ฒญ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ก ์ ๋ฌํ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ ์ค ์ผ๋ถ๋ก๋ CGI, Microsoft์ Active Server Pages(ASP), ๊ทธ๋ฆฌ๊ณ Java Server Pages(JSP)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
Active Server Page(ASP)๋ ์ฌ์ฉ์์๊ฒ ์ ์ก๋๊ธฐ ์ ์ ์น ์๋ฒ์์ ์ฒ๋ฆฌ๋๋ ํ๋ ์ด์์ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ๋ HTML ํ์ด์ง์ ๋๋ค. ASP ํ์ผ์ HTML ํ์ผ์ VBScript ๋๋ JavaScript ๋ฌธ์ฅ์ ํฌํจํ๊ฑฐ๋ ActiveX Data Objects ํ๋ก๊ทธ๋จ ๋ฌธ์ฅ์ ํ์ผ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์์ฑ๋ฉ๋๋ค. ์ด์ ๋นํด, Java Server Page๋ ์น ํ์ด์ง์์ ์๋ธ๋ฆฟ์ ์ฌ์ฉํ์ฌ ์๋ฒ์์ Java ํ๋ก๊ทธ๋จ์ ์คํ์ ์ ์ดํฉ๋๋ค.
2.3.3.2 Java Application Servers Java ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ Java 2 ํ๋ซํผ, ์ํฐํ๋ผ์ด์ฆ ์๋์ (J2EE)์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. J2EE๋ ์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ ๊ณ์ธต, ์ค๊ฐ ๊ณ์ธต, ๊ทธ๋ฆฌ๊ณ ์ํฐํ๋ผ์ด์ฆ ์ ๋ณด ์์คํ (EIS) ๊ณ์ธต์ ํฌํจํ๋ ๋ค๊ณ์ธต ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉฐ, EIS ๊ณ์ธต์๋ ์ ํ๋ฆฌ์ผ์ด์ , ํ์ผ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ์ฅ๋ฉ๋๋ค. ์ค๊ฐ ๊ณ์ธต์๋ ์น ์๋ฒ์ EJB(Enterprise Java Bean) ์๋ฒ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
J2EE๋ฅผ ์ฌ์ฉํ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ์ ์์ด์ผ ํฉ๋๋ค. J2EE๋ฅผ ์ฌ์ฉํ ๋๋ JDBC(Java Database Connectivity), API(Application Program Interfaces), SQLJ(๊ตฌ์กฐํ๋ ์ง์ ์ธ์ด - Java), ๋๋ JDO(Java Data Objects)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ์ ์์ต๋๋ค. JDBC๋ Java ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ๋ฆฝ์ ์ธ ์ฐ๊ฒฐ์ฑ์ ์ ๊ณตํ๋ ์ฐ์ ํ์ค API๋ฅผ ๋ํ๋ ๋๋ค. SQLJ๋ Java์ ํจ๊ป SQL์ ์ฌ์ฉํ๋ ์ฌ์์ ๋ํ๋ด๋ฉฐ, JDO๋ ํ๋ฒํ Java ๊ฐ์ฒด(Plain Old Java Objects, POJOs)๋ฅผ ์ํฐํ๋ผ์ด์ฆ ์ํคํ ์ฒ์ ์ด๋ ๊ณ์ธต์์๋ ์ง ์ง์๋๊ฒ ๋ง๋๋ ํ์ค Java ๋ชจ๋ธ์ ๋ํ๋ ๋๋ค. ๊ทธ๋ฆผ 2.9๋ J2EE ํ๋ซํผ์ด ์ฌ์ฉ๋ ๋ ์ธ ๊ณ์ธต์ด ์๋ก ์ด๋ป๊ฒ ๊ด๋ จ๋์ด ์๋์ง ๋ณด์ฌ์ค๋๋ค. ๊ทธ๋ฆผ 2.9๋ฅผ ์ดํด๋ณด๋ฉด, EJB(Enterprise Java Beans)๊ฐ Java 2 ํ๋ซํผ์ ์ํ ์๋ฒ ์ธก ์ปดํฌ๋ํธ ์ํคํ ์ฒ๋ฅผ ๋ํ๋์ ์ ์ ์์ต๋๋ค. EJB๋ Java ๊ธฐ๋ฐ์ ๋ถ์ฐํ, ๋ณด์์ฑ, ์ด์์ฑ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
EJB์๋ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค: ์ํฐํฐ ๋น(Entity Beans)๊ณผ ์ธ์ ๋น(Session Beans)์ ๋๋ค. ์ํฐํฐ ๋น์ ํน์ํ ์์ฑ์ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ๋ํ๋ด๋ฉฐ, ์ธ์ ๋น๊ณผ ๊ฐ์ ์ผ๋ฐ ๊ฐ์ฒด๋ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋ฉด ์ฌ๋ผ์ง์ง๋ง, ์ํฐํฐ ๋น์ ๋ช ์์ ์ผ๋ก ์ญ์ ๋ ๋๊น์ง ์ ์ง๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋คํธ์ํฌ์ ์ด๋ค ํ๋ก๊ทธ๋จ์ด๋ ์ด๋ฅผ ์ฐพ์ ์ ์๋ค๋ฉด ์ํฐํฐ ๋น์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๊ตฌ ์ ์ฅ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ ์ํฐํฐ ๋น(entity beans)์ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ์ ์ฅ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ํฐํฐ ๋น์ ์๋ฒ์์ ์คํ๋ ์ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ด ์ํฐํฐ ๋น์ ํธ์ถํ๋ฉด ์ ์ด๊ฐ ์๋ฒ๋ก ๋์ด๊ฐ๋ฉฐ, ํ๋ก๊ทธ๋จ ์ค๋ ๋๋ ์คํ์ ๋ฉ์ถฅ๋๋ค. ์์ ์ด ์๋ฃ๋๋ฉด ์ ์ด๊ฐ ํธ์ถํ ํ๋ก๊ทธ๋จ์ผ๋ก ๋์๊ฐ๊ณ , ํ๋ก๊ทธ๋จ์ ์คํ์ ์ฌ๊ฐํฉ๋๋ค.
2.3.3.3 General Server Tools ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ๋ํ ๋ ผ์๋ฅผ ๋ง์น๋ฉฐ, ColdFusion๊ณผ ODBC๋ผ๋ ๋ ๊ฐ์ง ์ผ๋ฐ ์๋ฒ ๋๊ตฌ์ Microsoft์ .NET Framework๋ผ๋ ํนํ๋ ๋๊ตฌ ๋ชจ์์ ๊ฐ๋จํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ColdFusion์ ์๋ Macromedia์์ ๊ฐ๋ฐ๋์๊ณ ํ์ฌ๋ Adobe Systems์์ ํ๋งคํ๋ ์ธ๊ธฐ ์๋ ๊ฐ๋ฐ ๋๊ตฌ์ ๋๋ค. ColdFusion์ ์ด๊ธฐ ์ฌ์ฉ ๋ชฉ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ HTML ์น ํ์ด์ง์ ํตํฉํ๋ ๊ฒ์ด์์ต๋๋ค. ColdFusion ์น ํ์ด์ง๋ ColdFusion Markup Language(CFML)๋ก ์์ฑ๋ ํ๊ทธ๋ฅผ ํฌํจํ๋ฉฐ, ์ด๋ฅผ ํตํด C++์ ๊ฐ์ ๋ณต์กํ ์ธ์ด๋ฅผ ์ฌ์ฉํ ํ์ ์์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํตํฉ์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ColdFusion์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ์ฑ๋ณ๊ณผ ๋์ด๋ฅผ ๋ฌป๋ ์น ํ์ด์ง๋ฅผ ๋ง๋ค ์ ์์ผ๋ฉฐ, ์ด๋ฌํ ์ ๋ณด๋ ์น ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ์ฌ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์ ํ์ํ ๋ณดํ๋ฃ๋ฅผ HTML ์ฝ๋๋ก ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๋ ๋ฒ์งธ ๋๊ตฌ์ธ ODBC (Open Database Connectivity) ๋ SQL Access Group์์ ๊ฐ๋ฐํ ํ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ DBMS ์ฌ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ผ์ด๋ฒ๋ผ๋ ์ค๊ฐ ๊ณ์ธต์ ์ฝ์ ํ์ฌ, ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ DBMS์ ๊ด๊ณ์์ด ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ ์ ์๊ฒ ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ผ์ด๋ฒ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ์ฟผ๋ฆฌ๋ฅผ DBMS๊ฐ ์ดํดํ ์ ์๋ ๋ช ๋ น์ด๋ก ๋ณํํ๋ฉฐ, ์ด๋ฅผ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ DBMS๋ ODBC๋ฅผ ์ค์ํด์ผ ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ-์๋ฒ ์์ ์์ ์ฌ์ฉ๋๋ ๋๊ตฌ์ ๋ํ ๋ ผ์๋ฅผ ๋ง์น๊ธฐ ์ ์, Microsoft์ .NET Framework๋ผ๋ ํนํ๋ ๋๊ตฌ ๋ชจ์์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
2.3.3.4 Microsoft's .NET Framework Microsoft์ .NET Framework๋ ์์ฌ์ .NET ํ๋ซํผ์ ์ํ ์ํํธ์จ์ด ์ธํ๋ผ๋ฅผ ๋ํ๋ด๋ฉฐ, ์น ์๋น์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ์ด์ํ ์ ์๋ ๊ณตํต ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. .NET์ ์๋ฒ ์ค์ฌ ์ปดํจํ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ์ธํฐ๋ท ๋ฐ ์น ์ ๋ต์ผ๋ก๋ ๊ฐ์ฃผ๋ ์ ์์ต๋๋ค.
.NET์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ ํต์ ์ ์ํ HTTP, ์ธํฐ๋ท ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ํ์ค ํ์์ธ XML(eXtensible Markup Language), ์น ์๋น์ค๋ฅผ ์์ฒญํ๊ธฐ ์ํ ํ์ค์ธ SOAP(Simple Object Access Protocol), ์น ์๋น์ค๋ฅผ ๊ฒ์ํ๊ณ ๋ฐ๊ฒฌํ๊ธฐ ์ํ ํ์ค์ธ UDDI(Universal Description, Discovery, and Integration) ๋ฑ์ ์ผ๋ จ์ ์ธํฐ๋ท ํ์ค์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค.
.
NET Framework๋ Microsoft์ Windows ์ด์ ์ฒด์ ์์ ์ค์นํ ์ ์์ผ๋ฉฐ, ์น ์๋น์ค๋ฅผ ํตํ ์ํํธ์จ์ด ์ ๊ณต ๋ฉ์ปค๋์ฆ์ผ๋ก ์๋ํฉ๋๋ค. .NET์ ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ์ ๋ํ ๋ง์ ์ฝ๋ํ๋ ์๋ฃจ์ ์ ํฌํจํ ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์, ํ๋ ์์ํฌ๋ฅผ ์ํด ํน๋ณํ ์์ฑ๋ ํ๋ก๊ทธ๋จ ์คํ์ ๊ด๋ฆฌํ๋ ๊ฐ์ ๋จธ์ ์ญํ ์ ํ๋ ์ํํธ์จ์ด ๋ชจ๋์ ํฌํจํฉ๋๋ค. .NET Framework์๋ ADO.NET(ํ๋ก๊ทธ๋๋จธ๊ฐ Java Persistence API์ ์ ์ฌํ๊ฒ ๋ฐ์ดํฐ ๋ฐ ๋ฐ์ดํฐ ์๋น์ค๋ฅผ ์ก์ธ์คํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ํํธ์จ์ด ์ปดํฌ๋ํธ ์งํฉ) ๋ฐ ASP.NET(HTTP, HTML, XML ๋ฐ SOAP๋ฅผ ํตํด ์น ์๋น์ค๊ฐ ์ ํ๋ฆฌ์ผ์ด์ , ์๋น์ค ๋ฐ ์ฅ์น์ ์ฐ๊ฒฐํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฅ)์ ๋น๋กฏํ ๊ณตํต ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋ฉ๋๋ค. ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ํ๋ก๊ทธ๋๋จธ๋ ๊ด๋ฒ์ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ์์ ์ ์ฝ๋์ ๊ฒฐํฉํ์ฌ ๋ง์ถคํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ ์๋ ์์ต๋๋ค.
.NET Framework์ ํต์ฌ ๊ธฐ๋ฅ ์ค ํ๋๋ Common Language Runtime(CLR) ์ ๋๋ค. CLR์ .NET Framework์ ๊ฐ์ ๋จธ์ ๊ตฌ์ฑ ์์๋ก, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ๋ณด์, ์์ธ ์ฒ๋ฆฌ๋ฅผ ํฌํจํ ํน์ ๋งค๊ฐ๋ณ์ ๋ด์์ ํ๋ก๊ทธ๋จ ์์ ์ด ์ํ๋๋๋ก ๋ณด์ฅํ๋ฉฐ, ๋ชจ๋ .NET ํ๋ก๊ทธ๋จ์ CLR์ ๊ฐ๋ ํ์ ์คํ๋ฉ๋๋ค.
.NET Framework๋ ์ธ์ด์ ๊ตฌ์ ๋ฐ์ง ์์ผ๋ฉฐ, ์ด๋ก ์ ์ผ๋ก ํ๋ซํผ ๋ ๋ฆฝ์ ์ ๋๋ค. ํ์ฌ C++, C#, Visual Basic, Microsoft์ JavaScript ๋ฒ์ ์ธ JScript, COBOL ๋ฐ ๋ง์ ํ์ฌ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค.
.NET Framework 3.0 ๋ฒ์ ์ Windows Server 2008๊ณผ Windows Vista์ ํฌํจ๋์ด ์์ผ๋ฉฐ, 3.5 ๋ฒ์ ์ 2009๋ ์ Windows 7์์ ์ถ์๋์์ต๋๋ค. .NET Framework ์ ํ๊ตฐ์๋ ๋ชจ๋ฐ์ผ ๋๋ ์๋ฒ ๋๋ ์ฅ์น์ฉ ๋ฒ์ ๋ ํฌํจ๋ฉ๋๋ค. .NET Compact Framework๋ผ๋ ์ด๋ฆ์ ๋ฒ์ ์ Windows CE ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ค๋งํธํฐ๊ณผ ๊ฐ์ Windows Mobile ์ฅ์น์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. 2000๋ ๋ฐํ ์ดํ, .NET์ ๋ค์ํ Microsoft ์ ํ์ ํตํฉ๋์์ต๋๋ค. ์ด๋ฌํ ์ ํ์๋ Visual Studio .NET, Visual Basic .NET ๋ฐ ๋ค์ํ Windows ๋ฒ์ ์ด ํฌํจ๋๋ฉฐ, ์ธํฐ๋ท ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ณ ์ด์ํ๋ ๋ฐ ํ์ํ ๋น๋ฉ ๋ธ๋ก์ ์ ๊ณตํฉ๋๋ค.
์ด์ ํด๋ผ์ด์ธํธ-์๋ฒ ์์ ์์ ์ฌ์ฉ๋๋ ๋๊ตฌ์ ๋ํด ์ดํดํ์ผ๋, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ณ์ธต ๊ฐ์ ๊ฑฐ๋ฆฌ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ํคํ ์ฒ์ ํจ์จ์ฑ์ ๋ํด ์ดํด๋ณด๋ฉฐ ์ด ์ฅ์ ๋ง๋ฌด๋ฆฌํ๊ฒ ์ต๋๋ค.
2.4 Distance Relationship
3๊ณ์ธต ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ์์ ์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ ๊ณ์ธต์ ์ผ๋ฐ์ ์ผ๋ก ์๋ก ๋ถ๋ฆฌ๋์ด ์์ผ๋ฉฐ, ์ธ ๋ฒ์งธ ๊ณ์ธต์ ๋ณดํต ๋ ๋ฒ์งธ ๊ณ์ธต๊ณผ ํจ๊ป ์์นํฉ๋๋ค. ๋ฐ๋ผ์ ๊ณ์ธต ๊ฐ์ ๊ฑฐ๋ฆฌ ๊ด๊ณ๋ฅผ ๋ถ์ํ ๋, 3๊ณ์ธต ๋ชจ๋ธ์ 2๊ณ์ธต ๋ชจ๋ธ๋ก ๊ฐ์ฃผํ ์ ์์ต๋๋ค. ์ฆ, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ๊ฑฐ๋ฆฌ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ์ ๋ฏธ์น๋ ์ํฅ์ ๋ถ์ํ ์ ์์ต๋๋ค. ์ด ๊ณผ์ ์์ ๋ ๊ฐ์ง ์ธ๊ธฐ ์๋ TCP/IP ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ ๋๊ตฌ๋ค์ ํ๋ ์ด์ ์ฒด์ ์ ํฌํจ๋ Ping ๋ฐ Traceroute ํ๋ก๊ทธ๋จ์ ๋๋ค.
2.4.1 Using Ping
Ping ์ ํธ๋ฆฌํฐ ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์๋ ๋ชฉ์ ์ง๋ก 4๊ฐ์ ๋ฐ์ดํฐ ํจํท์ ์ ์กํฉ๋๋ค. ์ด ๋ชฉ์ ์ง๋ ํธ์คํธ ์ฃผ์๋ ์ ์ 10์ง์ ์ฃผ์๋ก ์ง์ ํ ์ ์์ต๋๋ค. ํจํท์ ์์ ํ ๋์์ ์๋ ๋ณด๋ธ ๊ณณ์ผ๋ก ํจํท์ ๋ฐ์ฌํฉ๋๋ค. ํจํท์ ์ ์กํ ์ฌ๋์ ๊ฐ ํจํท์ ์ธ์ ์ ์กํ๋์ง ์๊ณ ์์ผ๋ฏ๋ก ์๋ณต ์ง์ฐ ์๊ฐ์ ๊ณ์ฐํ ์ ์์ต๋๋ค. Ping์ ์ธํฐ๋ท ์ ์ด ๋ฉ์์ง ํ๋กํ ์ฝ(ICMP)์ ์ฌ์ฉํ์ฌ ์๋ํฉ๋๋ค. ICMP ์ ํ 8(์์ฝ) ๋ฉ์์ง๊ฐ ์ง์ ๋ ๋ชฉ์ ์ง๋ก ์ ์ก๋๋ฉฐ, ํด๋น ๋ชฉ์ ์ง๋ ICMP ์ ํ 0(์์ฝ ์๋ต) ๋ฉ์์ง๋ก ์๋ตํฉ๋๋ค.
ํด๋ผ์ด์ธํธ-์๋ฒ ์์ ์ ๋ฏธ์น๋ ๊ฑฐ๋ฆฌ์ ์ํฅ์ ์ค๋ช ํ๊ธฐ ์ํด, ์ด ๊ธ์ ์ ์๊ฐ ์กฐ์ง์์ฃผ ๋ฉ์ด์ปจ์ ์๋ ์์ ์ ์ปดํจํฐ์ ๋ฏธ๊ตญ์ ์์นํ ์๋ฒ ํ๋, ๊ทธ๋ฆฌ๊ณ ์ด์ค๋ผ์์ ์์นํ ์๋ฒ ํ๋ ๊ฐ์ ์๋ณต ์ง์ฐ ์๊ฐ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฆผ 2.10์ Yahoo ์๋ฒ์ ๋ํ ํ์ ๋ณด์ฌ์ค๋๋ค. ์ฐธ์กฐ๋ ๊ทธ๋ฆผ์ ํญ๋ชฉ์ ์ดํด๋ณด๋ฉด, IP ์ฃผ์ 216.109.112.135์์ 4๊ฐ์ ์๋ต์ด ๋์ด๋์ด ์์ผ๋ฉฐ, ์ด๋ Yahoo ์๋ฒ์ IP ์ฃผ์๋ฅผ ๋ํ๋ ๋๋ค. ์๋ณต ์ง์ฐ ์๊ฐ์ “time =“๋ก ํ์๋๋ฉฐ, ๊ฐ๊ฐ 20, 20, 11, 20 ๋ฐ๋ฆฌ์ด๋ก ๋์ ์์ต๋๋ค. ๋ง์ง๋ง ์๋ต ๋ผ์ธ ์๋์๋ ๋ชฉ์ ์ง์ ๋ํ ํ์ ํต๊ณ ์์ฝ์ด ์์ฑ๋ฉ๋๋ค. Yahoo์ ๋ํ ํ ์์์์, ํ๊ท ์๋ณต ์ง์ฐ ์๊ฐ์ด 17 ๋ฐ๋ฆฌ์ด๋ก ํ์๋์์ต๋๋ค.
๋ ๋ฒ์งธ ์๋ก, ์ ์๋ ์ด์ค๋ผ์์ ์์นํ ๋ฐ์ดํฐ ํต์ ์ธ๋ฏธ๋ ๊ธฐ๊ด์ธ logtel.com ์๋ฒ์ ํ์ ์๋ํ์ต๋๋ค. ๊ทธ๋ฆผ 2.11์ ํด๋น ์์น์ ๋ํ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์์ํ ์ ์๋ฏ์ด, ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ๊ฑฐ๋ฆฌ ์ฆ๊ฐ๋ก ์ธํด ์๋ณต ์ง์ฐ ์๊ฐ์ด ์๋นํ ๋์ด๋ฌ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ถ๋ช ํ์ง ์์ ์ ์๋ ์ ์ ์ง์ฐ ์๊ฐ์ด ์ฝ 10๋ฐฐ ์ ๋ ์ฆ๊ฐํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, Yahoo์ ๋ํ ํ์ ํ๊ท ์ด 17๋ฐ๋ฆฌ์ด์ธ ๋ฐ๋ฉด, Logtel ์๋ฒ์ ๋ํ ํ์ ํ๊ท 171๋ฐ๋ฆฌ์ด๋ก ์ฆ๊ฐํ ์ด์ ์ ๋๋ค.
2.4.2 Using Traceroute
Traceroute๋ ์ด๋ฆ ๊ทธ๋๋ก ์ถ๋ฐ์ง์์ ๋ชฉ์ ์ง๊น์ง์ ๊ฒฝ๋ก๋ฅผ ์ถ์ ํ๋ ํ๋ก๊ทธ๋จ์ ๋๋ค. Microsoft Windows์์๋ ํ๋ก๊ทธ๋จ ์ด๋ฆ์ด Tracert๋ก ์ถ์ฝ๋์์ต๋๋ค. (Mac Traceroute)
Tracert๋ IP ํค๋์ TTL(Time-to-Live) ํ๋๋ฅผ ๋ณํ์ํค๋ ์ผ๋ จ์ ICMP Echo ๋ฉ์์ง๋ฅผ ํธ์ถํฉ๋๋ค. ์ฒซ ๋ฒ์งธ IP ๋ฐ์ดํฐ๊ทธ๋จ์ TTL ํ๋ ๊ฐ์ด 1๋ก ์ค์ ๋์ด ์ ์ก๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๊ทธ๋จ์ด ๋ชฉ์ ์ง๋ก ๊ฐ๋ ๊ฒฝ๋ก์์ ์ฒซ ๋ฒ์งธ ๋ผ์ฐํฐ์ ๋์ฐฉํ๋ฉด, ๋ผ์ฐํฐ๋ TTL ํ๋ ๊ฐ์ 1 ๊ฐ์์์ผ ๊ฒฐ๊ณผ์ ์ผ๋ก 0์ด ๋๋ฉด ๋ฐ์ดํฐ๊ทธ๋จ์ด ํ๊ธฐ๋๊ณ ICMP ๋ฉ์์ง ์ ํ 11(์๊ฐ ์ด๊ณผ)์ด ์๋ ๋ณด๋ธ ๊ณณ์ผ๋ก ๋ฐํ๋ฉ๋๋ค. ์ด ICMP ๋ฉ์์ง์๋ ๋ผ์ฐํฐ์ IP ์ฃผ์์ ๋ผ์ฐํฐ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. ์๋ ๋ณด๋ธ ์ฌ๋์ TTL ๊ฐ์ 1 ์ฆ๊ฐ์์ผ Ping์ ์ฌ์ ์กํ๊ณ , ๋ฐ์ดํฐ๊ทธ๋จ์ด ๊ฒฝ๋ก์์ ์ฒซ ๋ฒ์งธ ๋ผ์ฐํฐ๋ฅผ ํต๊ณผํ ์ ์๊ฒ ํฉ๋๋ค. ๋ ๋ฒ์งธ ๋ผ์ฐํฐ๋ ๋ค์ ICMP ์ ํ 11 ๋ฉ์์ง๋ฅผ ๋ฐํํ๊ณ , ์ด ๊ณผ์ ์ Tracert ํ๋ก๊ทธ๋จ์ Ping์ด ๋ชฉ์ ์ง์ ๋๋ฌํ๊ฑฐ๋ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ํ(hop) ์์ ๋๋ฌํ ๋๊น์ง ๊ณ์๋ฉ๋๋ค.
๊ทธ๋ฆผ 2.12๋ ์กฐ์ง์์ฃผ ๋ฉ์ด์ปจ์ ์๋ ์์ฑ์์ ์ปดํจํฐ์์ Yahoo ์๋ฒ๊น์ง์ ๊ฒฝ๋ก๋ฅผ ์ถ์ ํ๊ธฐ ์ํด Microsoft Tracert ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ด์ ๋นํด, ๊ทธ๋ฆผ 2.13์ Tracert ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ์ด์ค๋ผ์์ ์์นํ Logtel ์๋ฒ๊น์ง์ ๊ฒฝ๋ก๋ฅผ ์ถ์ ํ๋ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
Tracert์ ๋ ๊ฐ์ง ์ฌ์ฉ์ ๋น๊ตํด๋ณด๋ฉด, Yahoo.com๊น์ง๋ 8๋ฒ์ ๋ผ์ฐํฐ ํ์ด, Logtel ์๋ฒ๊น์ง๋ 17๋ฒ์ ํ์ด ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๊ฐ ๋ผ์ฐํฐ ํ์ ์ฒ๋ฆฌ ์๊ฐ์ด ํ์ํ๋ฏ๋ก, ์ถ๋ฐ์ง์์ ๋ชฉ์ ์ง๊น์ง ๊ฑฐ์น๋ ๋ผ์ฐํฐ ํ์ ์์ ๋ฐ๋ผ ์ง์ฐ ์๊ฐ์ ์ผ๋ถ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ผ๋์ค ํด์ค์ ํด ํ๋น(Paul Harvey)๊ฐ ์์ฃผ ๋งํ๋ฏ, “๊ทธ๊ฒ ์ด์ผ๊ธฐ์ ์ ๋ถ๋ ์๋๋๋ค.” Figure 2.13์ ๋์ ์๋ Logtel.com์ ๋ํ Tracert๋ฅผ ์ฃผ์ ๊น๊ฒ ์ดํด๋ณด๋ฉด, ์ฒ์ 10๋ฒ์ ํ ๋์ ์ง์ฐ ์๊ฐ์ด 20๋ฐ๋ฆฌ์ด ๋ฏธ๋ง์ด์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. 11๋ฒ์งธ ํ์ ์ด๋ฅด๋ฌ์์ผ ์ง์ฐ ์๊ฐ์ด ๋์ ๋๊ฒ ์ฆ๊ฐํ์ผ๋ฉฐ, 3๋ฒ์ ์ถ์ ์ค ์ด๋ ๊ฒ์ด๋์ ๋ฐ๋ผ 20๋ฐ๋ฆฌ์ด์์ 90๋ฐ๋ฆฌ์ด ๋๋ 100๋ฐ๋ฆฌ์ด๋ก ์ฆ๊ฐํ์ต๋๋ค. 10๋ฒ์งธ ํ์์๋ ๋ผ์ฐํฐ ์ค๋ช
์ ๋ฐ๋ฅด๋ฉด ๋ด์์์ ์์นํด ์์๊ณ , 11๋ฒ์งธ ํ์์๋ ํธ๋ํฝ์ ์ด์ค๋ผ์๋ก ์ ๋ฌํ๋ ๊ฒ์ดํธ์จ์ด๋ก ๋ณด์
๋๋ค. 12๋ฒ์งธ ํ์์๋ ๋ผ์ฐํฐ ์ค๋ช
์ด ์ด์ค๋ผ์์ ์๋ค๊ณ ๋ํ๋
๋๋ค. ๋ฐ๋ผ์ ์ฝ 7080๋ฐ๋ฆฌ์ด์ ์ง์ฐ ์๊ฐ์ 11๋ฒ์งธ ํ์์ ์ด์ค๋ผ์๋ก ํธ๋ํฝ์ ์ ๋ฌํ๋ ๊ฒ์ดํธ์จ์ด์์ ๋ฐ์ํ๋ฉฐ, ์ถ๊ฐ๋ก 100120๋ฐ๋ฆฌ์ด์ ์ง์ฐ ์๊ฐ์ ๋ด์ ๊ฒ์ดํธ์จ์ด์ ์ด์ค๋ผ์ ์ฌ์ด์ ์ ํ ์ง์ฐ์ผ๋ก ์ธํ ๊ฒ์
๋๋ค. ํจํท์ด ์ด์ค๋ผ์์ ๋์ฐฉํ ํ, 12๋ฒ์งธ ํ์์ 17๋ฒ์งธ ํ๊น์ง์ ์ง์ฐ ์๊ฐ์ ์ฝ 10๋ฐ๋ฆฌ์ด์
๋๋ค. ์ฆ, ์ฃผ์ ์ง์ฐ ์์ธ์ ๋๋ถ ํด์์์ ์ด์ค๋ผ์๋ก ํธ๋ํฝ์ ์ ๋ฌํ๋ ๊ฒ์ดํธ์จ์ด์ ์ ํ ์ง์ฐ์
๋๋ค.
๋ง์ฝ ์ ์ํ๋ Client๊ฐ ๋ฏธ๊ตญ์ ์์นํ๊ณ ์๊ณ ์ด์ค๋ผ์์ ๊ณ ๊ฐ์ด ์๋ค๋ฉด, ์์ ๋
ผ์ํ Tracert ๊ฒฐ๊ณผ๋ ๋ฐ๋๋ก ๋ํ๋ ๊ฒ์
๋๋ค. ์ฆ, ์ด์ค๋ผ์ ์ฌ์ฉ์๋ ๋ด์์์ ์์นํ ํผ์ด๋ง ํฌ์ธํธ๋ฅผ ํตํด ํธ๋ํฝ์ด ์ ๋ฌ๋๋ฉด์ ์ ํ ์ง์ฐ์ผ๋ก ์ธํด ๋ณ๋ชฉ ํ์์ ๊ฒฝํํ ๊ฒ์
๋๋ค. ์ด ์ํฉ์ ์์ ๋ฝ, ๋จ๋ฏธ, ์ผ๋ณธ, ์ค๊ตญ, ๊ทธ๋ฆฌ๊ณ ์ ์ธ๊ณ์ ๋ค๋ฅธ ์ง์ญ ์ฌ์ฉ์๋ค๋ก๋ ํ์ฅ๋ ์ ์์ต๋๋ค. ์ด ์ฌ์ฉ์๋ค์ด ๋ฏธ๊ตญ์ ์์นํ ์๋ฒ์ ์ ๊ทผํ ๋, ํผ์ด๋ง ํฌ์ธํธ๋ฅผ ํต๊ณผํ๋ ํธ๋ํฝ๊ณผ ์ ํ ์ง์ฐ์ผ๋ก ์ธํด ๋ณ๋ชฉ ํ์์ ๊ฒช์ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ง์ฐ์ ์ํํ๊ธฐ ์ํด์๋ ๊ท์ฌ์ ์กฐ์ง์ด ์ค๋ณต ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์๋ฒ๋ฅผ ์ต์ข
์ฌ์ฉ์์ ๋ ๊ฐ๊น์ด ๊ณณ์ ๋ฐฐ์นํ ์ ์์ผ๋ฉฐ, ์ด๊ฒ์ด ๋ฐ๋ก ์ฝํ
์ธ ์ ์ก ๋คํธ์ํน์ ํต์ฌ ๋
ผ๋ฆฌ์
๋๋ค. ๊ทธ๋ฌ๋ ์ ์ธ๊ณ์ ๋ถ์ฐ๋ ์์น์ ์๋ฒ๋ฅผ ๋ฐฐ์นํ ์ ์๋ ๊ธฐ์
์ ๊ฐ์ฅ ํฐ ๊ธฐ์
๋ค๋ฟ์ด๋ฏ๋ก, ๋๋ถ๋ถ์ ์ฝํ
์ธ ์ ์ก ๋ฐฉ์์ ์ 3์๊ฐ ์ด ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์์กดํ๊ณ ์์ต๋๋ค.
'๐ Book' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Practical guide to content delivery networks 1-7 (0) | 2024.10.19 |
---|---|
Practical guide to content delivery networks 1-5 (0) | 2024.10.07 |
Practical guide to content delivery networks 1-4 (0) | 2024.10.04 |
Practical guide to content delivery networks 1-3 (0) | 2024.09.25 |
Practical guide to content delivery networks 1-2 (0) | 2024.09.23 |