๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ฆฌ์ œ

์›น ์„œ๋ฒ„ & WAS ๋ณธ๋ฌธ

๊ฐœ๋ฐœ์ž ํ˜ธ์†Œ์ธ/Server

์›น ์„œ๋ฒ„ & WAS

๋ฆฌ์ œ๐Ÿซง 2026. 7. 3. 16:46

์›น ์„œ๋ฒ„(Web Server)๋ž€

  • ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ์ •์ ์ธ ์ž์›(HTML, CSS, JS, ์ด๋ฏธ์ง€)์„ ์‘๋‹ตํ•ด์ฃผ๋Š” ์„œ๋ฒ„
  • ๋Œ€ํ‘œ: Apache, Nginx

WAS(Web Application Server)๋ž€

  • ์ •์  ์ž์›๋ฟ ์•„๋‹ˆ๋ผ ๋™์ ์ธ ์ฒ˜๋ฆฌ(DB ์กฐํšŒ, ๋กœ์ง ์‹คํ–‰ ํ›„ ๊ฒฐ๊ณผ ์ƒ์„ฑ)๊ฐ€ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„
  • ๋‚ด๋ถ€์— ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ Servlet, JSP ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
  • ๋Œ€ํ‘œ: Tomcat, JBoss, WebLogic


 

 

 

 

Servlet์ด๋ž€

Server + Applet์˜ ํ•ฉ์„ฑ์–ด๋กœ JAVA์–ธ์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „์†กํ•˜๋Š” ์—ญํ• ์˜ ClassํŒŒ์ผ์„ ๋งํ•จ. ์ฆ‰ ์›น์—์„œ ๋™์ ์ธ ํŽ˜์ด์ง€๋ฅผ java๋กœ ๊ตฌํ˜„ํ•œ ์„œ๋ฒ„ ์ธก ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

  • HttpServlet ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์ž‘์„ฑํ•˜๋ฉฐ, ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ(Tomcat)๊ฐ€ ์ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ/ํ˜ธ์ถœ/์†Œ๋ฉธ์‹œํ‚ด

์„œ๋ธ”๋ฆฟ์˜ ์—ญํ• ์€?

was์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›์•˜์„ ๋•Œ ์ฒ˜๋ฆฌํ•ด์ค˜์•ผํ•˜๋Š” ์—…๋ฌด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์„œ๋ฒ„ TCP/IP ์—ฐ๊ฒฐ ๋Œ€๊ธฐ, ์†Œ์ผ“ ์—ฐ๊ฒฐ
  • HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์‹ฑํ•ด์„œ ์ฝ๊ธฐ
  • POST ๋ฐฉ์‹, /save URL ์ธ์ง€
  • Content-Type ํ™•์ธ
  • HTTP ๋ฉ”์‹œ์ง€ ๋ฐ”๋”” ๋‚ด์šฉ ํ”ผ์‹ฑ
  • username, age ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํŒŒ์‹ฑ
  • ์ €์žฅ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰
  • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‹คํ–‰
  • HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ
  • TCP/IP์— ์‘๋‹ต ์ „๋‹ฌ, ์†Œ์ผ“ ์ข…๋ฃŒ

ํ•˜์ง€๋งŒ ์ด์ค‘์— ์‹ค์งˆ์ ์œผ๋กœ ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•ด์ค˜์•ผํ•˜๋Š” ์˜๋ฏธ์žˆ๋Š” ๋™์ž‘์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค๋กœ์ง์„ ์‹คํ–‰ํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.

๋‚˜๋จธ์ง€ ๋™์ž‘๋“ค์€ httpํ‘œ์ค€์—๋”ฐ๋ผ ์š”์ฒญ์„ ๋ฐ›์•„ ์‘๋‹ต์„ ๋‚ด๋ ค์ฃผ๊ธฐ์œ„ํ•œ ์ž‘์—…์ด๋‹ค.

์ด๋•Œ ์„œ๋ธ”๋ฆฟ์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋Š” ํŠน์ • url์— ๋งตํ•‘๋˜๋Š” ์„œ๋ธ”๋ฆฟ์„ ํ†ตํ•ด HTTP ์š”์ฒญ ์ •๋ณด๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” HttpServletRequest์™€ HTTP ์‘๋‹ต ์ •๋ณด๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” HttpServletResponse๋ฅผ ๋งŒ๋“ค์–ด ์ค€๋‹ค.

์ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ http์ŠคํŽ™์„ ์‚ฌ์šฉํ•  ๋•Œ ๋น„์ฆˆ๋‹ˆ์Šค๋กœ์ง๋งŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š”๋‹ค.

 

HTTP ์š”์ฒญ, ์‘๋‹ต ํ๋ฆ„

HTTP ์š”์ฒญ์‹œ

  • WAS๋Š” Request, Response ๊ฐ์ฒด๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด ํ˜ธ์ถœ
  • ๊ฐœ๋ฐœ์ž๋Š” HttpServletRequest๊ฐ์ฒด์—์„œ HTTP ์š”์ฒญ ์ •๋ณด๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊บผ๋‚ด์„œ ์‚ฌ์šฉ
  • ๊ฐœ๋ฐœ์ž๋Š” HttpServletResponse๊ฐ์ฒด์— HTTP ์‘๋‹ต ์ •๋ณด๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž…๋ ฅ
  • WAS๋Š” Response ๊ฐ์ฒด์— ๋‹ด๊ฒจ์žˆ๋Š” ๋‚ด์šฉ์œผ๋กœ HTTP ์‘๋‹ต ์ •๋ณด๋ฅผ ์ƒ์„ฑ

์„œ๋ธ”๋ฆฟ์ปจํ…Œ์ด๋„ˆ๋ž€?

ํ†ฐ์บฃ์ฒ˜๋Ÿผ ์„œ๋ธ”๋ฆฟ์„ ์ง€์›ํ•˜๋Š” WAS์—์„œ ์„œ๋ธ”๋ฆฟ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์„œ๋ธ”๋ฆฟ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ํ•œ๋‹ค. ๋ชจ๋“  ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋Š” ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๊ด€๋ฆฌ๋˜์–ด ์ตœ์ดˆ ๋กœ๋”ฉ ์‹œ์ ์— ์ƒ์„ฑ๋˜๊ณ , ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์€ ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์žฌํ™œ์šฉํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํšจ์œจ์„ฑ์„ ๋†’์ด์ง€๋งŒ, ๊ณต์œ  ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. JSP๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์‹คํ–‰๋˜๋ฉฐ, ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋™์‹œ ์š”์ฒญ์„ ์œ„ํ•œ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค.

 

 

์–ด๋–ป๊ฒŒ ๋™์‹œ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ• ๊นŒ?

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฐœ๋…์ธ ์“ฐ๋ ˆ๋“œ๋ฅผ ํ†ตํ•ด ๋™์‹œ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ํ†ฐ์บฃ์€ ์š”์ฒญ๋งˆ๋‹ค ํ•˜๋‚˜์˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์—ฌ๋Ÿฌ์š”์ฒญ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๋ณ‘ํ–‰์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค

๋‹ค๋งŒ ์š”์ฒญ์‹œ๋งˆ๋‹ค ์“ฐ๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ œํ•œ์—†์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์–ด ๋ฆฌ์†Œ์Šค(cpu, ๋ฉ”๋ชจ๋ฆฌ)์˜ ํ•œ๊ณ„๋ฅผ ๋„˜์„ ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ ์“ฐ๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋น„์šฉ์€ ๋งค์šฐ ๋†’๋‹ค. ๊ทธ๋ž˜์„œ ์“ฐ๋ ˆ๋“œ ํ’€์„ ๋งŒ๋“ค์–ด ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ณ ๋กœ WAS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

์“ฐ๋ ˆ๋“œ ํ’€์ด๋ž€?

  • ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ›„ ์‚ญ์ œํ•˜์ง€์•Š๊ณ  ๋ณด๊ด€ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„.
    ์“ฐ๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€์น˜๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๊บผ๋‚ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ๋ฐ˜๋‚ฉํ•œ๋‹ค.
  • ๋ชจ๋“  ์“ฐ๋ ˆ๋“œ๊ฐ€ ์‚ฌ์šฉ์ค‘์ด์—ฌ์„œ ๋”์ด์ƒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์—†๋‹ค๋ฉด ์ดํ›„ ์š”์ฒญ์€ ๊ฑฐ์ ˆํ•˜๊ฑฐ๋‚˜ ํŠน์ •์‹œ๊ฐ„๋งŒํผ ๋Œ€๊ธฐํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์“ฐ๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ข…๋ฃŒํ•˜๋Š” ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ๊ณ , ๋น ๋ฅด๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋งŽ์€ ์š”์ฒญ์ด ๋“ค์–ด์™€๋„ ์“ฐ๋ ˆ๋“œ์˜ ๊ฐฏ์ˆ˜๊ฐ€ ์ดˆ๊ณผ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๋ง‰์•„์ค„ ์ˆ˜ ์žˆ๋‹ค.
  • WAS๋Š” ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ ์ŠคํŽ™์— ๋งž์ถฐ ์“ฐ๋ ˆ๋“œ์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์„ค์ •ํ•ด์ค˜์•ผํ•œ๋‹ค.

 

 

 

Servlet ์ƒ๋ช…์ฃผ๊ธฐ

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” 3๋‹จ๊ณ„

  1. init() : ์ตœ์ดˆ ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ํ˜ธ์ถœ (์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ์ดˆ๊ธฐํ™”)
  2. service() : ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ → ๋‚ด๋ถ€์ ์œผ๋กœ HTTP ๋ฉ”์„œ๋“œ(GET/POST ๋“ฑ)์— ๋”ฐ๋ผ doGet/doPost๋กœ ์ž๋™ ๋ถ„๊ธฐ
  3. destroy() : ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ์„œ๋ธ”๋ฆฟ์ด ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋‚ด๋ ค๊ฐˆ ๋•Œ ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ํ˜ธ์ถœ (์ž์› ์ •๋ฆฌ)

ํ•ต์‹ฌ ํฌ์ธํŠธ: Servlet์€ ์‹ฑ๊ธ€ํ†ค์ฒ˜๋Ÿผ ๋™์ž‘

  • ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋Š” ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ตœ์ดˆ 1๊ฐœ๋งŒ ์ƒ์„ฑ๋˜์–ด ์žฌ์‚ฌ์šฉ๋จ
  • ๋”ฐ๋ผ์„œ ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค์— ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜(ํ•„๋“œ)๋ฅผ ๋‘๋ฉด ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ ๊ฐ’์„ ๊ณต์œ ํ•˜๊ฒŒ ๋˜์–ด ์œ„ํ—˜ํ•จ