๋ณธ ์‹œ๋ฆฌ์ฆˆ๋Š” ์ธํ”„๋Ÿฐ ํ•™์Šต ์‚ฌ์ดํŠธ์˜ ๊น€์˜ํ•œ ๊ฐ•์‚ฌ๋‹˜์˜ java spring mvc - ๋ฐฑ์—”๋“œ ์›น ๊ฐœ๋ฐœ ํ•ต์‹ฌ ๊ธฐ์ˆ  ํŽธ์„ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.


์„œ๋‘

spring์˜ ํ•ต์‹ฌ์›๋ฆฌ๋ฅผ ํ•™์Šตํ•˜๊ณ  spring framework๋ฅผ ํ†ตํ•ด web์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ํ•™์Šต์ด ๋งˆ์ฐฌ๊ฐ€์ง€๊ฒ ์ง€๋งŒ ๊ฐœ๋…์„ ๋ฐฐ์› ๋‹ค๊ณ  ํ•ด์„œ ๊ทธ๊ฒƒ์„ ๋ฐ”๋กœ ์จ๋จน์„ ์ˆ˜ ์žˆ๊ธฐ๋ž€ ๋จธ๋ฆฌ๊ฐ€ ๋น„์ƒํ•œ ์‚ฌ๋žŒ์ด ์•„๋‹Œ ์ด์ƒ ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ์ด ์‚ฌ์‹ค...

๊ฐœ๋…์„ ํ•™์Šตํ–ˆ์œผ๋‹ˆ ์‹ค์ƒํ™œ์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์‘์šฉ(์‹ฌํ™”)์„ ํ•™์Šตํ•ด๋ณด์ž.

spring ์›น ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ญ˜๊นŒ? ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ ๋ฌด์—‡๋ณด๋‹ค mvc ํŒจํ„ด์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๊ณ  ์–ด๋–ค ์ƒํƒœ๊ณ„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€๋ฅผ ์•„๋Š” ๊ฒƒ์ด ๋จผ์ € ์„ ํ–‰๋˜์–ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค.


์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ดํ•ด


HTTP ์‹œ๋Œ€

ํ˜„๋Œ€์˜ Web ํ†ต์‹ ์—์„œ๋Š” ์ด๋ฅธ ๋ฐ” HTTP ์‹œ๋Œ€๋ผ๊ณ  ํ•ด๋„ ๊ณผ์–ธ์ด ์•„๋‹ˆ๋‹ค. HTTP ๋ฉ”์„ธ์ง€์— ๋ชจ๋“  ๊ฒƒ์„ ๋‹ด์•„ ์ „์†กํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.HTML๊ณผ ํ…์ŠคํŠธ ๊ฐ™์€ ์ •์  ๋ฉ”์‹œ์ง€๋Š” ๋ฌผ๋ก ์ด๊ณ  ์ด๋ฏธ์ง€, ์Œ์„ฑ ํŒŒ์ผ, ์˜์ƒ ํŒŒ์ผ, JSON, XML ๋“ฑ. ๊ฑฐ์˜ ๋ชจ๋“  ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ HTTP ๊ธฐ๋ฐ˜์—์„œ ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜ํ™”๋˜์—ˆ๊ณ , ์„œ๋ฒ„๋Š” ์šฉ๋„์— ๋”ฐ๋ผ ๋‹ค์Œ์˜ 2๊ฐ€์ง€๋กœ ๋‚˜๋‰˜๊ฒŒ ๋˜์—ˆ๋‹ค.


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

  • HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘
  • ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณต
  • ์ •์  HTML, CSS, JS
  • ex. NGINX, APACHE

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ (WAS - Web Application Server)

  • HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘
  • ์›น ์„œ๋ฒ„ ๊ธฐ๋Šฅ ํฌํ•จ + (์ •์  ๋ฆฌ์†Œ์Šค ์ œ๊ณต ๊ฐ€๋Šฅ)
  • ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง ์ˆ˜ํ–‰
  • ๋™์  HTML, HTTP API(JSON)
  • ์„œ๋ธ”๋ฆฟ, JSP, ์Šคํ”„๋ง MVC
  • ex. ํ†ฐ์บฃ(Tomcat) Jetty, Undertow

์ด์ฒ˜๋Ÿผ HTTP ๊ธฐ๋ฐ˜์˜ ์„œ๋ฒ„๋Š” ๋‹จ์ˆœํžˆ ์ •์  ๋ฆฌ์†Œ์Šค๋งŒ์„ ์ œ๊ณตํ•˜๋Š” ์›น ์„œ๋ฒ„์™€ ์ •์ ๊ณผ ๋™์  ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ œ๊ณตํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ•™์Šตํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‘˜์˜ ๊ด€๊ณ„๊ฐ€ ๋ชจํ˜ธํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์ •ํ™•ํ•œ ์ฐจ์ด๊ฐ€ ๋ฌด์—‡์ผ๊นŒ?

์›น ์„œ๋ฒ„๋Š” ์ •์  ๋ฆฌ์†Œ์Šค(ํŒŒ์ผ) , WAS๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง ์œผ๋กœ ๊ตฌ์„ฑ ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ด๋‹ค. ์‚ฌ์‹ค ์›น ์„œ๋ฒ„๋„ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋„ ์›น ์„œ๋ฒ„์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAS)๊ฐ€ ์ข€ ๋” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š”๋ฐ ๋” ํŠนํ™” ๋˜์–ด ์žˆ๋‹ค.


์›น ์‹œ์Šคํ…œ ๊ตฌ์„ฑ - WAS, DB

WAS๋Š” ์ •์  ๋ฆฌ์†Œ์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์„œ๋น„์Šค ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์ ์„ ์ด์šฉํ•ด์„œ WAS์™€ DB๋งŒ์œผ๋กœ๋„ ์›น์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ์ด๊ฒŒ ๋งž๋‚˜...?

์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด WAS๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ๋ฉ”์ธ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผํ•  WAS๊ฐ€ ์ˆ˜ ๋งŽ์€ ์ •์  ๋ฆฌ์†Œ์Šค ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์ง„๋‹ค. ๊ทธ ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ WAS๊ฐ€ ์žฅ์• ๋ฅผ ๋ฐœ์ƒ์‹œ์ผฐ์„ ๋•Œ, ์˜ค๋ฅ˜ ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๋Š”๊ฒƒ๋„ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์›น์„ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•ด์•ผํ• ๊นŒ?


์›น ์‹œ์Šคํ…œ ๊ตฌ์„ฑ - WEB, WAS, DB

์ •๋‹ต์€ WEB server์™€ WAS๋ฅผ ํ•จ๊ป˜ ๋‘๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ์›น์„ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ์ •์  ๋ฆฌ์†Œ์Šค๋Š” ์›น ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ  ์›น ์„œ๋ฒ„์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง๊ณผ ๊ฐ™์€ ๋™์  ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด WAS๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์œ„์ž„ํ•œ๋‹ค. ์ด๋กœ ์ธํ•ด Web Server๋Š” ์ •์  ์ฒ˜๋ฆฌ, WAS๋Š” ์ค‘์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ๊ฐ๊ฐ ํšจ์œจ์ ์œผ๋กœ ์ „๋‹ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.


ํšจ์œจ์ ์ธ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ

Web, WAS, DB์˜ ์›น ๊ตฌ์„ฑ์œผ๋กœ ํšจ์œจ์ ์ธ ์ž์› ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค. ์ •์  ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด Web ์„œ๋ฒ„๋ฅผ ์ฆ์„ค์‹œํ‚ค๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค๋ฉด WAS๋ฅผ ์ฆ์„ค์‹œํ‚ค๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ง์ด๋‹ค.


์˜ค๋ฅ˜ํ™”๋ฉด ์ฒ˜๋ฆฌ

์ •์  ๋ฆฌ์†Œ์Šค๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ์›น ์„œ๋ฒ„์™€ ๋‹ฌ๋ฆฌ, ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์ด ๋™์ž‘ํ•˜๋Š” WAS ์„œ๋ฒ„๋Š” ์‰ฝ๊ฒŒ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ WAS์™€ DB์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Web์„œ๋ฒ„๊ฐ€ ์˜ค๋ฅ˜์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ํ™”๋ฉด์ƒ์— ๋„์šธ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.