Network

F021 - Web Server, WAS, CGI

osean 2021. 6. 29. 01:46
โœ๏ธ ์ž๋ฐ”์˜ ์‹ ์„ ๋(?)๋‚ด๊ณ  ์ด์ œ 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์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•ด๋ณด์ž.


์ฐธ๊ณ  ์‚ฌ์ดํŠธ

 

 

CGI์™€ Java Servlet[์˜ค๋ผํด์ž๋ฐ”์ปค๋ฎค๋‹ˆํ‹ฐ ์ž๋ฐ”์„œ๋ธ”๋ฆฟ(Java Servlet)๊ฐ•์ขŒ]

CGI์™€ Java Servlet[์˜ค๋ผํด์ž๋ฐ”์ปค๋ฎค๋‹ˆํ‹ฐ ์ž๋ฐ”์„œ๋ธ”๋ฆฟ(Java Servlet)๊ฐ•์ขŒ] 1. CGi(Common Gateway Interface) WebServer์™€ ์™ธ๋ถ€ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ๋ฐฉ์‹์ด๋ฉฐ ํŠน๋ณ„ํ•œ Library๋‚˜ ๊ฐœ๋ฐœ Tools์ด ์•„๋‹˜DataBase ์—ฐ๋™์„ ์œ„ํ•ด ๋ฒค

ojc.asia

 

Introduction to Java Servlets - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

 

What is Server Software? – Glossary Web

Definition – What does Server Software mean? Server is a computer program or a device that provide functionality for other programs or devices known as clients. The server software is a type of software that is specially designed to be used, operate and

glossaryweb.com

 

Client-Server overview - Web ๊ฐœ๋ฐœ ํ•™์Šตํ•˜๊ธฐ | MDN

์ด ์‹œ์ ์—์„œ ์„œ๋ฒ„ ์ธก ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š” ์ž‘์—…์„ ์ž˜ ์‚ดํŽด๋ณด๊ณ  ์„œ๋ฒ„ ์ธก ์›น ํ”„๋ ˆ์ž„ ์›Œํฌ๊ฐ€ ์ด๋ฅผ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

developer.mozilla.org

 

 

'Network' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

F020 - L4 Switch  (0) 2021.06.28