โ๏ธ ์๋ฐ์ ์ ์ ๋(?)๋ด๊ณ ์ด์ JSP ๊ณต๋ถ๋ฅผ ์์ํ๊ฒ ๋๋ฉด์ ์์ฐ์ค๋ฝ๊ฒ Web Server์ WAS ์ ๋ํด์ ๊ณต๋ถํ๊ฒ ๋์๋ค.
์ด๋ฒ ์๊ฐ์๋ ์ด ๋ ์๋ฒ ๊ฐ๋ ์ ๋ํด ์ดํด๋ณด๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์ ํ๋ค.
Web Server
Web Server(์ดํ ์น ์๋ฒ)๋ ๋ง ๊ทธ๋๋ก HTTP ํต์ ์ ํ๊ธฐ ์ํ ์๋ฒ์ด๋ค. ํด๋ผ์ด์ธํธ์์ HTTP ํ๋กํ ์ฝ์ ๋ํ ์์ฒญ์ ์น ์๋ฒ์์ ๋ฐ์ผ๋ฉด ์ด์ ๋ํ ์๋ต์ผ๋ก ์ ์ ์ปดํฌ๋ํธ ํ์ผ์ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ตํ๋ค. ์ด ๋, ์ ์ ์ปดํฌ๋ํธ ํ์ผ๋ก๋ ๋ํ์ ์ผ๋ก HTML, CSS, ์คํฌ๋ฆฝํธ ํ์ผ ๋ฑ์ด ์กด์ฌํ๋ค.
์น ์๋ฒ๋ ํ๋์จ์ด์ ์ํํธ์จ์ด ๊ด์ ์ผ๋ก ๋๋์ด ๋ฐ๋ผ ๋ณผ ์ ์๋ค.
๐ Hardware
: ์์ฒญ์ ๋ํด์ ์ ๋ฌํ๊ณ ์ ํ๋ ์ปดํฌ๋ํธ ํ์ผ์ ์ ์ฅํ๋ ์ปดํจํฐ์ด๋ค. ์น ์๋ฒ ์ปดํจํฐ๋ ์ฌ๋ฌ ๋คํธ์ํฌ ์ฅ๋น(๋์นด๋, ์ค์์น, ํ๋ธ, ์ด๋๋ท ํฌํธ ๋ฑ)์ ์ฐ๊ฒฐ๋์ด ์๊ณ , ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋คํธ์ํฌ ํต์ ์ด ๊ฐ๋ฅํ๋ค.
๐ Software
: ์น ์๋ฒ ์ํํธ์จ์ด๋ ์น ์๋ฒ ํ๋์จ์ด๋ฅผ ๊ด๋ฆฌํ๊ณ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํ ์๋๊ณผ ๊ด๋ฆฌ๋ฅผ ์ํ ํ ์ ์๋๋ก ํ๋ ํ๋ก๊ทธ๋จ์ ์ผ์ข ์ด๋ค. ๋ํ, ํ๋ก์ธ์, ์คํ ๋ฆฌ์ง, ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๊ธฐํ ํต์ ํฌํธ์ ๊ฐ์ ํ๋์จ์ด ์๋ฒ์ ์ธํ๋ผ์ ์ํธ ์์ฉํ์ฌ ์ปจํธ๋กค ํ ์ ์๋๋ก ๊ตฌ์ถ๋๋ค.
WAS (Web Application Server)
์น ์๋ฒ๋ ์๊ฐ์ ์ง๋๋ฉด์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ง๊ฒ ๋ค์ด๋๋ฏนํ๊ฒ ์๋ต ํ ์ ์๋๋ก ๋ฐ์ ํ๋ค. ํ์ง๋ง ๊ธฐ์กด์ ์น ์๋ฒ๋ ๋ณํ์ง ์๋ ์ ์ ์ปดํฌ๋ํธ ํ์ผ๋ง ์ ๋ฌํ๊ธฐ์๋ ๋ถ์กฑํ๊ณ , ์ด๋ฌํ ์ฌ์ฉ์์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๊ธฐ ์ํด ๋ฐฉ๋ฒ์ ๊ณ ์ํ์๊ณ , ์ด ๋ ํ์ํ ๊ฒ์ด WAS์ด๋ค.
WAS ๋ ์น ์๋ฒ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์กฐํฉ์ด๋ค. ์ฆ, ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํ ๋ก์ง ์ํ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ํ(๋ฐ์ดํฐ ๋ฒ ์ด์ค์์ ์ ๊ทผํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฑ)ํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ตํ๋ฉด์ ์ ์ ์ปดํฌ๋ํธ ํ์ผ์ ํ๊ณ๋ฅผ ๋ฐ์ด ๋์ ์ ์์๋ค
ํ์ง๋ง ๋ฌธ์ ๊ฐ ํ๋ ์์๋ค. ์น ์๋ฒ์์ ์์ฒญ์ ๋ํ ๋ก์ง์ ์ํํ ์ธ์ด์ ํด๋ผ์ด์ธํธ๊ฐ ํด์ ๊ฐ๋ฅํ ์ธ์ด๊ฐ ๋ฌ๋ผ ์น ๋ธ๋ผ์ฐ์ ์์๋ ์๋ฒ์์ ์๋ตํ ๋ด์ฉ์ ํด์ ํ ์ ์์๋ค.
์ด๋ฌํ ์น ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์ธ์ด ๊ฐ๊ทน์ ์ขํ์ฃผ๊ธฐ ์ํด์ ๊ณ ์๋ ๊ฒ์ด CGI(Common Gateway Interface) ์ด๋ค.
CGI(Common Gateway Interface)
์น ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ ๊ฐ ๋คํธ์ํฌ ํต์ ์ ์ํ ํ ๋, ์ฃผ๊ณ ๋ฐ์ ์ปดํฌ๋ํธ ํ์ผ์ ์ด๋ ํ ๊ท๊ฒฉ์ ๋ง๊ฒ ์ฝ๊ณ ์ธ ์ ์๋๋ก ํ ๋ช ์ธ์ด๋ค. Java์ ์ธํฐํ์ด์ค์ฒ๋ผ ์ธํฐํ์ด์ค ๋ด๋ถ์๋ ๋ฉ์๋๋ง ๊ตฌํ๋์ด ์์ ๋ฟ, ๋ฉ์๋ ์ค์ฝํ ๋ด๋ถ์ ์ด๋ ํ ์ฝ๋๋ ์์ฑํ ์ ์๋ค. (default ์์ฝ์ด๋ฅผ ์ฐ๋ ์ํฉ์ ์ ์ธํ๋ค.) ์ด์ฒ๋ผ CGI ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ฌ ๊ฐ ์ธ์ด๋ค์ด ์น ๋ธ๋ผ์ฐ์ ์ ์ํต ํ ์ ์๋๋ก ๊ตฌํํ ๊ฒ์ด CGI Program ์ด๋ค.
CGI Program ์ ํด๋ผ์ด์ธํธ ์์ฒญ์ด ์น ์๋ฒ๋ก ๋ค์ด์ค๋ฉด ๊ทธ์ ํด๋นํ๋ ํ๊ฒฝ๋ณ์๋ ํ์ค์ ๋ ฅ์ ๋ฐ์์ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ํ๋ก์ธ์ค์์ ์์ฒญ์ ๋ํ ๋ก์ง์ ์ํํ ํ ํ์ค ์ถ๋ ฅ์ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ตํ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
์ฌ๊ธฐ์ CGI Program ์ ํ๊ณ๊ฐ ๋ค์ด๋๊ฒ ๋๋ค.
ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น ํ ๋ ๊ฝค ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ํ๊ฒ ๋๋ ์ ์ ์ ์๊ฐํด๋ณด์. ๋ง์ฝ ํด๋ผ์ด์ธํธ ์์ฒญ์ด ์ผ๋ง ์๋ค๋ฉด ์น ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ฌ๋ฌ ๊ฐ์ CGI Process๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํด๋ ํฐ ๋ฌธ์ ์์ด ์์
์ ์ํ ํ ๊ฒ์ด๋ค.
ํ์ง๋ง ํด๋ผ์ด์ธํธ ์์ฒญ์ ๊ฐ์๊ฐ ์ ๋ฐฑ๋ง, ์ ์ฒ๋ฐ์ด ๋ค์ด์จ๋ค๋ฉด ์น ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ด ์๋ง์ ์์ฒญ์ ๊ฐ๋นํ์ง ๋ชปํ ์ฑ OOM์ด ๋ฐ์ํ๋ฉด์ ๋ป์ ๊ฒ์ด๋ค.
๋ํ, CGI Program์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ค์ด์ฌ ๋ ๋ง๋ค DB Connection ์์ ์ ์ํํด์ผ ํ๋ค. ์๋ํ๋ฉด ํด๋ผ์ด์ธํธ ์์ฒญ๊ณผ CGI Process์ ๊ด๊ณ๋ 1:1 ๊ด๊ณ์ด๊ณ , HTTP ํต์ ์ ์์ฒญ์ ๋ํ ์๋ต์ ํด๋ผ์ด์ธํธ์์ ํ์ธํ๋ฉด ์ฐ๊ฒฐ์ ๋๋ ํน์ฑ ์ ํ ๋ฒ ๋ค์ด์จ ์์ฒญ์ ๋ํ CGI Process๋ ์์ ๋ง ์ํํ๋ค. ๋๋ฌธ์ ์ฌ๋ฌ ๊ฐ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์์ฒญ์ ์ ๋งํผ DB Connection ์์ ์ ์ํํ๋ค. ์ด๋ ์น ์๋ฒ๊ฐ ์ํํด์ผ ํ๋ ์์ ์ ์์ด ๋ง์์ง ๋ฟ๋๋ฌ ์์์ ๋ญ๋น๋ฅผ ์ผ๊ธฐ ํ ์ ์๋ค.
์ด๋ฌํ CGI Program ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ Java ์์๋ Servlet์ด๋ผ๋ ํด๋์ค๋ฅผ ๋ง๋ค์๋ค. Servlet ์ CGI Program ๊ณผ๋ ๋ค๋ฅด๊ฒ Thread ๋ก ์๋ํ๋ค. ๊ทธ ์ด์ ๋ JVM ์์์ ๋์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ค์ ์๊ฐ์๋ Servlet์ ๋ํด์ ๊ณต๋ถํด๋ณด์.
์ฐธ๊ณ ์ฌ์ดํธ
'Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
F020 - L4 Switch (0) | 2021.06.28 |
---|