๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“”๊ฐ•์˜ ์ •๋ฆฌ ๋…ธํŠธ

[์Šคํ”„๋ง MVC 1] ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ดํ•ด (1)

์›น์„œ๋ฒ„

  • ์ •์  ๋ฆฌ์†Œ์Šค ์ œ๊ณต
  • ์ •์  HTML, CSS, ์ด๋ฏธ์ง€, ์˜์ƒ
  • ์˜ˆ) NGINX, APACHE

ํ•˜์ง€๋งŒ ์ฝ˜ํ…์ธ ์˜ ํฌ๊ธฐ๊ฐ€ ์ˆ˜๋ฐฑ ๋ฉ”๊ฐ€๋ฐ”์ดํŠธ ๊ฐ™์ด ๋งค์šฐ ํฐ ๊ฒฝ์šฐ๋‚˜ ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋™์‹œ์— ์ด๋ฅผ ์š”์ฒญํ–ˆ์„ ๋•Œ ์›น์„œ๋ฒ„๋Š” '๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ', '๋ผ์šฐํ„ฐ ๋Œ€์—ญํญ', '์ผ€์ด๋ธ” ๋Œ€์—ญํญ' ๊ฐ์ข… ์ œํ•œ์— ๋„๋‹ฌํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ œํ•œ์— ๊ฑธ๋ ค๋ฒ„๋ฆฌ๋ฉด ์›น์„œ๋ฒ„๋Š” ์ผ๋ฐ˜ ์š”์ฒญ๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” '๋งˆ๋น„'์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

 

์ฝ˜ํ…์ธ  ํฌ๊ธฐ๊ฐ€ ํฌ๊ฑฐ๋‚˜ ์š”์ฒญ์ด ๋งŽ์•„์„œ ์›น์„œ๋ฒ„์— ์ œํ•œ์ด ๊ฑธ๋ฆด ๋•Œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

  • ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋กœ ๋‹ค์ˆ˜์˜ ์›น์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ณ  ์ฝ˜ํ…์ธ  ์ถ”๊ฐ€์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ์ด ๋†’์€ '๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ  ์„œ๋ฒ„'๋ฅผ ๋”ฐ๋กœ ๋‘”๋‹ค.
  • ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋ฉด ์ฝ˜ํ…์ธ ์˜ ์ „์†ก ์†๋„๊ฐ€ ๋Š๋ ค์ง€๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์ฝ˜ํ…์ธ  ์„œ๋ฒ„๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
    • ํ•˜์ง€๋งŒ ๊ฐ ์œ„์น˜๋งˆ๋‹ค ์„œ๋ฒ„๋ฅผ ๋‘๊ณ  ํŒŒ์ผ์„ ๋™๊ธฐํ™”ํ•˜๋Š” ์ž‘์—…์€ ์‰ฝ์ง€์•Š์œผ๋ฉฐ ๋น„์šฉ์ด ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • CDN(Content Delivery Network)์„œ๋น„์Šค๋Š” ์—ฌ๋Ÿฌ ์œ„์น˜์˜ ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋Œ€์‹ ํ•ด์ฃผ๋ฉฐ ์ฝ˜ํ…์ธ ๋ฅผ ๋Œ€์‹  ์ œ๊ณตํ•ด์ค€๋‹ค. ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€์—๋„ ์‰ฝ๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

 WAS

  • WAS = Web server(์ •์  ๋ฆฌ์†Œ์Šค ์ œ๊ณต ๊ฐ€๋Šฅ) + Web Container(๋™์  ๋ฆฌ์†Œ์Šค ์ œ๊ณต)
  • ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜, ๋ณด์•ˆ, ๋ฉ”์‹œ์ง•, ์“ฐ๋ ˆ๋“œ ์ฒ˜๋ฆฌ ๋“ฑ ์ฃผ๋กœ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ DB์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ
  • Tomcat, Jeus, JBoss

ํ†ฐ์ผ“์€ WAS๋กœ ์ž๋ฐ”์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด HTMLํŽ˜์ด์ง€๋ฅผ '๋™์ '์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

 

WAS๋Š” ์›น์„œ๋ฒ„์™€ ์›น ์ปจํ…Œ์ด๋„ˆ ๋‘˜ ๋ชจ๋‘์˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ์—ญํ• ๋กœ ์ธํ•ด ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

WAS๊ฐ€ ์ •์ ๋ฆฌ์†Œ์Šค๋„ ์ œ๊ณตํ•˜๋ฏ€๋กœ WAS์žฅ์• ์‹œ ์˜ค๋ฅ˜ ํŽ˜์ด์ง€๋„ ๋…ธ์ถœํ•˜์ง€ ๋ชปํ•จ

 

์—ญํ• ์„ ๋‚˜๋ˆ  ๊ฐ€์ง€๋„๋ก ํ•ด๋ณด์ž. [WEB - WAS - DB]

WebServer์™€ WAS๋ฅผ ๋‚˜๋ˆ„์–ด ๊ตฌ์„ฑํ•˜๋ฉด WAS๋‚˜ DB๊ฐ€ ์ฃฝ์–ด๋„ ์ •์ ๋ฆฌ์†Œ์Šค๋Š” ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์ •์ ๋ฆฌ์†Œ์Šค๊ฐ€ ์š”์ฒญ์ด ๋งŽ๋‹ค๋ฉด WebServer๋ฅผ ๋Š˜๋ฆฌ๊ณ  ๋™์ ์š”์ฒญ์ด ๋งŽ๋‹ค๋ฉด WAS๋งŒ ๋Š˜๋ฆฌ๋ฉด ์œ ์—ฐํ•œ ์ฆ์„ค์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์„œ๋ธ”๋ฆฟ

๋จผ์ € ์š”์ฒญ์„ ๋ฐ›์•˜์„ ๋•Œ ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์—…๋ฌด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. 

 

์š”์ฒญ ์‹œ ์ฒ˜๋ฆฌ ๊ณผ์ •

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

์—ฌ๊ธฐ์„œ ๋ณด๋ผ์ƒ‰์œผ๋กœ ์น ํ•œ ๋ถ€๋ถ„์ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ถ€๋ถ„์ด๊ณ  ์ด์™ธ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์ด ์„œ๋ธ”๋ฆฟ์ด ์ง€์›ํ•˜๋Š” WAS์˜ ์˜์—ญ์ด๋‹ค.

์ด์ฒ˜๋Ÿผ WAS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž์˜ ์ˆ˜๊ณ ๋ฅผ ๋œ๊ณ  ๋”์šฑ ํ•ต์‹ฌ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

HTTP ์š”์ฒญ ์‹œ ์ƒ์„ฑ๋˜๋Š” ๊ฐ์ฒด

  • WAS๋Š” Request, Response ๊ฐ์ฒด๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด ํ˜ธ์ถœ

๊ฐœ๋ฐœ์ž๋Š” ์ด ๋‘ ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ์š”์ฒญ๊ณผ ์‘๋‹ต์ •๋ณด๋ฅผ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ๋งŒ๋“ค ์ˆ˜ ์žˆ๋”ฐ.

 

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

์„œ๋ธ”๋ฆฟ์„ ์ง€์›ํ•˜๋Š” WAS๋ฅผ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ํ•จ. -> ex) ํ†ฐ์บฃ

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

 

๋™์‹œ์š”์ฒญ - ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ

์š”์ฒญ์ด ์˜ค๋ฉด ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋ฅผ ๋ˆ„๊ฐ€ ํ˜ธ์ถœํ•˜๋Š”๊ฐ€?

์ •๋‹ต : ์“ฐ๋ ˆ๋“œ

 

WAS๊ฐ€ ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๋Š” ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

์“ฐ๋ ˆ๋“œ๋ž€?

  • ์ž๋ฐ” ๋ฉ”์ธ ๋ฉ”์„œ๋“œ๋ฅผ ์ฒ˜์Œ ์‹คํ–‰ํ•˜๋ฉด main์ด๋ผ๋Š” ์ด๋ฆ„์˜ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์‹คํ–‰
  • ์ฝ”๋“œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ์“ฐ๋ ˆ๋“œ
  • ์“ฐ๋ ˆ๋“œํ•˜๋‚˜๋Š” ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ฝ”๋“œ ๋ผ์ธ๋งŒ ์ˆ˜ํ–‰
  • ๋™์‹œ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์“ฐ๋ ˆ๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ์ƒ์„ฑ

์š”์ฒญ์ด ํ•˜๋‚˜๋ฉด ์š”์ฒญ ์‹œ ์“ฐ๋ ˆ๋“œ ํ•˜๋‚˜ ํ• ๋‹นํ•ด์„œ ์š”์ฒญ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

  • ์š”์ฒญ์ด ๋‘˜์ผ ๋•Œ '์ฒ˜๋ฆฌ ์ง€์—ฐ' ์ƒํ™ฉ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ• ๊นŒ?
    • ์“ฐ๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜๋ผ๋ฉด ์ดํ›„์˜ ์š”์ฒญ์€ ํƒ€์ž„์•„์›ƒ์ด ๋‚œ๋‹ค.
    ⇒ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ์š”์ฒญ๋งˆ๋‹ค '์‹ ๊ทœ ์“ฐ๋ ˆ๋“œ'๋ฅผ ์ƒ์„ฑํ•˜์ž!

ํ•˜์ง€๋งŒ ์š”์ฒญ๋งˆ๋‹ค ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑ์—๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

  • ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑ ๋น„์šฉ์ด ๋งค์šฐ ๋น„์‹ธ๋‹ค (CPU, ๋ฉ”๋ชจ๋ฆฌ)
  • ์˜ฌ๋•Œ๋งˆ๋‹ค ์ƒ์„ฑํ•˜๋ฉด **'์‘๋‹ต ์†๋„'**๊ฐ€ ๋Šฆ์–ด์ง„๋‹ค.
  • ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก '์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ' ๋น„์šฉ์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑ ์ œํ•œ์ด ์—†๋‹ค. ์š”์ฒญ์„ ๋ฌด์ œํ•œ์œผ๋กœ ๋ฐ›๋Š”๋‹ค. (CPU, ๋ฉ”๋ชจ๋ฆฌ ์ž„๊ณ„์ ์„ ๋„˜์œผ๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š”๋‹ค)

→ ๋ฌธ์ œ์  : ์ปจํ…์ŠคํŠธ์Šค์œ„์นญ์œผ๋กœ ์ธํ•œ ์†๋„ ์ €ํ•˜ ๋ฐ ์ž์› ์‚ฌ์šฉ๋Ÿ‰ ์ฆ๊ฐ€, ์‘๋‹ต์†๋„, ์ž์›๋ถ€์กฑ๋ฌธ์ œ

 

์ด๋ฅผ WAS๋Š” ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ์„๊นŒ?

-> ์“ฐ๋ ˆ๋“œํ’€!

 

์“ฐ๋ ˆ๋“œํ’€ ํŠน์ง•

  • ํ•„์š”ํ•œ ์“ฐ๋ ˆ๋“œ๋ฅผ ์“ฐ๋ ˆ๋“œ ํ’€์— ๋ณด๊ด€ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋ฉฐ ์“ฐ๋ ˆ๋“œ์˜ ์ตœ๋Œ€์น˜๊ฐ€ ์žˆ๋‹ค.
  • ์“ฐ๋ ˆ๋“œ ํ•„์š” ์‹œ ์“ฐ๋ ˆ๋“œ ํ’€์—์„œ ์“ฐ๋ ˆ๋“œ๋Š” ๊บผ๋‚ด์–ด ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ƒ์„ฑ๋œ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋ชจ๋‘ ์‚ฌ์šฉ์ค‘์ด๋ผ๋ฉด '์š”์ฒญ์„ ๊ฑฐ์ ˆํ•˜๊ฑฐ๋‚˜ ๋Œ€๊ธฐ์‹œํ‚จ๋‹ค'

๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ƒ์„ฑ/์ข…๋ฃŒ ๋น„์šฉ์ด ๋“ค์ง€์•Š๊ณ  ์ƒ์„ฑ๋œ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์‘๋‹ต์‹œ๊ฐ„์ด ๋น ๋ฅด๋‹ค.

์„ค์ •๋œ ์ตœ๋Œ€์น˜๊ฐ€ ์žˆ์–ด ๋งŽ์€ ์š”์ฒญ์ด ๋“ค์–ด์™€๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. (์ž์› ๋ถ€์กฑ ์˜ˆ๋ฐฉ ๊ฐ€๋Šฅ)

-> ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ตœ๋Œ€์น˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. (์š”์ฒญ์ˆ˜, CPU, IO, ๋ฉ”๋ชจ๋ฆฌ)

 

[ํ•ด๋‹น ๊ธ€์€ ๋…ธ์…˜์— ์ •๋ฆฌํ–ˆ๋˜ ๊ธ€์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค]

https://complex-hospital-a54.notion.site/7891606679754b9da67b905e87d5b9ce

 

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

๋™์‹œ์š”์ฒญ - ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ

complex-hospital-a54.notion.site