[Spring] 1.์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ดํ•ด

 

1. ์›น - HTTP ๊ธฐ๋ฐ˜

[HTTP]

- http๊ธฐ๋ฐ˜ ํ†ต์‹ 

- ์›น๋ธŒ๋ผ์šฐ์ €(ํด๋ผ์ด์–ธํŠธ)์—์„œ url ์น˜๋ฉด ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์„œ๋ฒ„ ์ ‘๊ทผ 

- ์„œ๋ฒ„์—์„œ๋Š” html ๋งŒ๋“ค์–ด์„œ ํด๋ผ์ด์–ธํŠธ์— ๋‚ด๋ ค์คŒ

- ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ html์„ ๋ณด์—ฌ์คŒ

* ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„ / ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐ ์‘๋‹ต => http ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘

 

๋ชจ๋“  ๊ฒƒ์ด  HTTP (http ๋ฉ”์„ธ์ง€์— ๋ชจ๋“  ๊ฒƒ์„ ์ „์†ก)

- HTML, TEXT

- IMAGE, ์Œ์„ฑ, ์˜์ƒ, ํŒŒ์ผ

- JSON, XML (API)

- ๊ฑฐ์˜ ๋ชจ๋“  ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ€๋Šฅ

- ์„œ๋ฒ„ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ๋„ ๋Œ€๋ถ€๋ถ„ http ์‚ฌ์šฉ

 

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

- HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘

- ์ •์  ๋ฆฌ์†Œ์Šค(ํŒŒ์ผ์„ ํด๋”์— ๋‘๋ฉด ์„œ๋ฒ„๋“ค์ด ํŒŒ์ผ๋“ค ์„œ๋น™ํ•ด์คŒ) ์ œ๊ณต, ๊ธฐํƒ€ ๋ถ€๊ฐ€๊ธฐ๋Šฅ 

- ์ •์ (ํŒŒ์ผ), HTML, CSS, JS, ์ด๋ฏธ์ง€, ์˜์ƒ

- ex) NGINX, APACHE

 

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

- HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘

- ์›น ์„œ๋ฒ„ ๊ธฐ๋Šฅ ํฌํ•จ(์ •์  ๋ฆฌ์†Œ์Šค ์ œ๊ณต ๊ฐ€๋Šฅ)

- ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง ์ˆ˜ํ–‰

> ๋™์  : HTML, HTTP API (JSON)
> ์„œ๋ธ”๋ฆฟ, JSP, ์Šคํ”„๋ง MVC

- ex) ํ†ฐ์บฃ(Tomcat) Jetty, Undertow

 

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

- ์›น์„œ๋ฒ„๋Š” ์ •์ ๋ฆฌ์†Œ์Šค(ํŒŒ์ผ)
   WAS๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง

- ์‚ฌ์‹ค ๋‘˜ ์šฉ์–ด ๊ฒฝ๊ณ„ ๋ชจํ˜ธ
   ์›น์„œ๋ฒ„๋„ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ธฐ๋Šฅ ํฌํ•จ
   WAS๋„ ์›น์„œ๋ฒ„์˜ ๊ธฐ๋Šฅ ์ œ๊ณต

- ์ž๋ฐ”๋Š” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉด WAS
   * ์„œ๋ธ”๋ฆฟ ์—†์ด ์ž๋ฐ”์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ๋„ ์žˆ์Œ


- WAS๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š”๋ฐ ๋” ํŠนํ™”

 

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

- WAS, DB๋งŒ์œผ๋กœ ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ

- WAS๋Š” ์ •์  ๋ฆฌ์†Œ์Šค, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง ๋ชจ๋‘ ์ œ๊ณต ๊ฐ€๋Šฅ

 

BUT

- WAS๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ์—ญํ• ์„ ๋‹ด๋‹น, ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜ ์šฐ๋ ค

- ๊ฐ€์žฅ ๋น„์‹ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์ด ์ •์  ๋ฆฌ์†Œ์Šค ๋•Œ๋ฌธ์— ์ˆ˜ํ–‰์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ

- WAS ์žฅ์• ์‹œ ์˜ค๋ฅ˜ ํ™”๋ฉด๋„ ๋…ธ์ถœ ๋ถˆ๊ฐ€๋Šฅ

 

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

- ์ •์  ๋ฆฌ์†Œ์Šค๋Š” ์›น์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌ

- ์›น์„œ๋ฒ„๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง๊ฐ™์€ ๋™์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด WAS์— ์š”์ฒญ์„ ์œ„์ž„

- WAS๋Š” ์ค‘์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง ์ฒ˜๋ฆฌ ์ „๋‹ด

 

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

> ์ •์  ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉด Web ์„œ๋ฒ„ ์ฆ์„ค
> ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉด WAS ์ฆ์„ค

- ์ •์  ๋ฆฌ์†Œ์Šค๋งŒ ์ œ๊ณตํ•˜๋Š” ์›น์„œ๋ฒ„๋Š” ์ž˜ ์ฃฝ์ง€ ์•Š์Œ

- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์ด ๋™์ž‘ํ•˜๋Š” WAS ์„œ๋ฒ„๋Š” ์ž˜ ์ฃฝ์Œ

- WAS, DB ์žฅ์• ์‹œ WEB์„œ๋ฒ„๊ฐ€ ์˜ค๋ฅ˜ ํ™”๋ฉด ์ œ๊ณต ๊ฐ€๋Šฅ


2. ์„œ๋ธ”๋ฆฟ

HTML Form ๋ฐ์ดํ„ฐ ์ „์†ก

- POST ์ „์†ก (์ €์žฅ)

- form ํƒœ๊ทธ์— ๊ฐ’ ์ž…๋ ฅ ํ›„ ์ „์†ก ๋ˆ„๋ฅด๋ฉด ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTTP ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ

- ์ปจํ…ํŠธ ๋ฐ”๋””์—๋Š” ์ฟผ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ  ํ•ด๋‹น ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์œผ๋กœ ๋ณด๋‚ด์ง

 

์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ์—…๋ฌด

- ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ์ง์ ‘ ๊ตฌํ˜„ -> ์„œ๋ธ”๋ฆฟ

- ์˜๋ฏธ์žˆ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ถ€๋ถ„๋งŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„œ๋ธ”๋ฆฟ ์ œ๊ณต

 

[์„œ๋ธ”๋ฆฟ]

ํŠน์ง•

- urlPatterns(/hello)์˜ URL์ด ํ˜ธ์ถœ๋˜๋ฉด ์„œ๋ธ”๋ฆฟ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰

- HTTP ์š”์ฒญ ์ •๋ณด๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” HttpServletRequest

- HTTP ์‘๋‹ต ์ •๋ณด๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” HttpServletResponse

- ๊ฐœ๋ฐœ์ž๋Š” HTTP ์ŠคํŽ™์„ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉ

 

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

- HTTP ์š”์ฒญ์‹œ

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

- ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋ฅผ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ / ํ˜ธ์ถœ / ๊ด€๋ฆฌ->์ข…๋ฃŒ(์ƒ๋ช…์ฃผ๊ธฐ)

 

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

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

- ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ/์ดˆ๊ธฐํ™”/ํ˜ธ์ถœ/์ข…๋ฃŒํ•˜๋Š” ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ

- ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด๋Š” ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๊ด€๋ฆฌ (๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•˜๊ณ  ๊ณต์œ , JVM์—๋Š” ๊ฐ์ฒด ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ)

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

- JSP๋„ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด์„œ ์‚ฌ์šฉ

- ๋™์‹œ ์š”์ฒญ์„ ์œ„ํ•œ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ์ฒ˜๋ฆฌ ์ง€์›


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

1) ์š”์ฒญ/์‘๋‹ต

2) ์ปค๋„ฅ์…˜ ์—ฐ๊ฒฐ

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

[์“ฐ๋ ˆ๋“œ]

- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ

- ์ž๋ฐ” ๋ฉ”์ธ ๋ฉ”์„œ๋“œ๋ฅผ ์ฒ˜์Œ ์‹คํ–‰ํ•˜๋ฉด main์ด๋ผ๋Š” ์ด๋ฆ„์˜ ์“ฐ๋ ˆ๋“œ ์‹คํ–‰

- ์“ฐ๋ ˆ๋“œ๊ฐ€ ์—†๋‹ค๋ฉด ์ž๋ฐ” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์ด ๋ถˆ๊ฐ€๋Šฅ

- ์“ฐ๋ ˆ๋“œ๋Š” ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ฝ”๋“œ ๋ผ์ธ๋งŒ ์ˆ˜ํ–‰

- ๋™์‹œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์“ฐ๋ ˆ๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ์ƒ์„ฑ

 

<< ๋‹จ์ผ ์š”์ฒญ >>  - ์“ฐ๋ ˆ๋“œ ํ•˜๋‚˜ ์‚ฌ์šฉ

1) ๋‹จ์ผ ์“ฐ๋ ˆ๋“œ

2) ์š”์ฒญ

- ์š”์ฒญ์ด ์˜ค๋ฉด ์“ฐ๋ ˆ๋“œ ํ• ๋‹น

- ํ•ด๋‹น ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์„œ๋ธ”๋ฆฟ ๊ฐ์ฒด ํ˜ธ์ถœ

 

3) ์‘๋‹ต

- ์‘๋‹ต ๋˜๊ณ ๋‚˜์„œ ์“ฐ๋ ˆ๋“œ ํœด์‹

 

<< ๋‹ค์ค‘ ์š”์ฒญ >>  - ์“ฐ๋ ˆ๋“œ ํ•˜๋‚˜ ์‚ฌ์šฉ

1) ์š”์ฒญ1

- ์“ฐ๋ ˆ๋“œ ์จ์„œ ์„œ๋ธ”๋ฆฟ ํ˜ธ์ถœ

- but ์„œ๋ธ”๋ฆฟ ํ˜ธ์ถœ ์ง€์—ฐ

 

2) ์š”์ฒญ2

- ์“ฐ๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฒญ2 ๋Œ€๊ธฐ

 

3) ๋‘˜ ๋‹ค ์ฃฝ์Œ

 

ํ•ด๊ฒฐ

- ์š”์ฒญ๋งˆ๋‹ค ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑ

- ์š”์ฒญ์ด ์˜ฌ๋•Œ๋งˆ๋‹ค ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑํ•˜๊ณ , ์š”์ฒญ์ด ๋๋‚˜๋ฉด ์“ฐ๋ ˆ๋“œ ๋‚ ๋ฆฌ๊ธฐ

 

์š”์ฒญ๋งˆ๋‹ค ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑํ• ์‹œ ์žฅ๋‹จ์ 

์žฅ์ )

- ๋™์‹œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

- ๋ฆฌ์†Œ์Šค(CPU, ๋ฉ”๋ชจ๋ฆฌ)๊ฐ€ ํ—ˆ์šฉํ•  ๋•Œ๊นŒ์ง€ ์ฒ˜๋ฆฌ๊ธฐ๋Šฅ

- ํ•˜๋‚˜์˜ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ง€์—ฐ๋˜์–ด๋„, ๋‚˜๋จธ์ง€ ์“ฐ๋ ˆ๋“œ๋Š” ์ •์ƒ ๋™์ž‘

 

๋‹จ์ )

- ์“ฐ๋ ˆ๋“œ๋Š” ์ƒ์„ฑ ๋น„์šฉ์ด ๋น„์Œˆ

   ๊ณ ๊ฐ์˜ ์š”์ฒญ์ด ์˜ฌ๋•Œ๋งˆ๋‹ค ์“ฐ๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์‘๋‹ต์†๋„๊ฐ€ ๋Šฆ์–ด์ง

- ์“ฐ๋ ˆ๋“œ๋Š” ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ๋น„์šฉ ๋ฐœ์ƒ (CPU ์ฝ”์–ด์—์„œ)

- ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑ์— ์ œํ•œ ์—†์Œ

   ๊ณ ๊ฐ ์š”์ฒญ์ด ๋„ˆ๋ฌด ๋งŽ์ด ์˜ค๋ฉด CPU, ๋ฉ”๋ชจ๋ฆฌ ์ž„๊ณ„์ ์„ ๋„˜์–ด ์„œ๋ฒ„๊ฐ€ ์ฃฝ์„ ์ˆ˜ ์žˆ์Œ (์น˜ํ‚จ ํ• ์ธ / ์ˆ˜๊ฐ•์‹ ์ฒญ ๋“ฑ)

 

[์“ฐ๋ ˆ๋“œ ํ’€]

 

1) 

- ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋“  ์“ฐ๋ ˆ๋“œ ํ’€

- ์š”์ฒญ์ด ์˜ฌ๋•Œ๋งˆ๋‹ค ์“ฐ๋ ˆ๋“œ ํ’€์—์„œ ์“ฐ๋ ˆ๋“œ ๊บผ๋‚ด์”€

- ๋‹ค ์“ฐ๋ฉด ์“ฐ๋ ˆ๋“œํ’€์— ๋ฐ˜๋‚ฉ

 

2) 200๊ฐœ ๋™์‹œ ์š”์ฒญ

- ์“ฐ๋ ˆ๋“œ ํ’€์— ์“ฐ๋ ˆ๋“œ๊ฐ€ ์—†์œผ๋ฉด ๋Œ€๊ธฐ/๊ฑฐ์ ˆ ๊ฐ€๋Šฅ

- ๋Œ€๊ธฐ๋„ ์š”์ฒญ ๊ฐœ์ˆ˜ ์ œํ•œ ๊ฐ€๋Šฅ

 

์“ฐ๋ ˆ๋“œ ํ’€ ์ •๋ฆฌ

ํŠน์ง•)

- ํ•„์š”ํ•œ ์“ฐ๋ ˆ๋“œ๋ฅผ ์“ฐ๋ ˆ๋“œ ํ’€์— ๋ณด๊ด€ํ•˜๊ณ  ๊ด€๋ฆฌ

- ์“ฐ๋ ˆ๋“œ ํ’€์— ์ƒ์„ฑ ๊ฐ€๋Šฅํ•œ ์“ฐ๋ ˆ๋“œ์˜ ์ตœ๋Œ€์น˜๋ฅผ ๊ด€๋ฆฌ (ํ†ฐ์บฃ์€ ์ตœ๋Œ€ 200๊ฐœ ๊ธฐ๋ณธ ์„ค์ • - ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ)

๊ฒ€์ƒ‰) spring boot tomcat max connection

 

์‚ฌ์šฉ)

- ์“ฐ๋ ˆ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋ฉด, ์ด๋ฏธ ์ƒ์„ฑ๋˜์–ด์žˆ๋Š” ์“ฐ๋ ˆ๋“œ๋ฅผ ์“ฐ๋ ˆ๋“œ ํ’€์—์„œ ๊บผ๋‚ด ์‚ฌ์šฉ

- ์‚ฌ์šฉ์„ ์ข…๋ฃŒํ•˜๋ฉด ์“ฐ๋ ˆ๋“œ ํ’€์— ํ•ด๋‹น ์“ฐ๋ ˆ๋“œ ๋ฐ˜๋‚ฉ

- ์ตœ๋Œ€ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋ชจ๋‘ ์‚ฌ์šฉ์ค‘์ด์–ด์„œ ํ’€์— ์“ฐ๋ ˆ๋“œ๊ฐ€ ์—†๋‹ค๋ฉด ?

  ๊ธฐ๋‹ค๋ฆฌ๋Š” ์š”์ฒญ ๊ฑฐ์ ˆ/ํŠน์ •์ˆซ์ž๋งŒํผ ๋Œ€๊ธฐ ์„ค์ • ๊ฐ€๋Šฅ

 

์žฅ์ )

- ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ์“ฐ๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ข…๋ฃŒํ•˜๋Š” ๋น„์šฉ(CPU) ์ ˆ๊ฐ ๋ฐ ์‘๋‹ต ์‹œ๊ฐ„ ๋น ๋ฆ„

- ์ƒ์„ฑ ๊ฐ€๋Šฅํ•œ ์“ฐ๋ ˆ๋“œ์˜ ์ตœ๋Œ€์น˜๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋„ˆ๋ฌด ๋งŽ์€ ์š”์ฒญ์ด ๋“ค์–ด์™€๋„ ๊ธฐ์กด ์š”์ฒญ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

* ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ์„œ๋ฒ„ ์ฆ์„ค ํ•ด์•ผํ•จ

 

์“ฐ๋ ˆ๋“œ ํ’€ - ์‹ค๋ฌด ํŒ

- WAS์˜ ์ฃผ์š” ํŠœ๋‹ ํฌ์ธํŠธ๋Š” ์ตœ๋Œ€ ์“ฐ๋ ˆ๋“œ(max thread)์ด๋‹ค

- ์ด ๊ฐ’์„ ๋„ˆ๋ฌด ๋‚ฎ๊ฒŒ ์„ค์ •ํ•˜๋ฉด? -> ๋™์‹œ ์š”์ฒญ์ด ๋งŽ์œผ๋ฉด ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค๋Š” ์—ฌ์œ ๋กญ์ง€๋งŒ, ํด๋ผ์ด์–ธํŠธ๋Š” ๊ธˆ๋ฐฉ ์‘๋‹ต ์ง€์—ฐ

- ์ด ๊ฐ’์„ ๋„ˆ๋ฌด ๋†’๊ฒŒ ์„ค์ •ํ•˜๋ฉด? -> ๋™์‹œ ์š”์ฒญ์ด ๋งŽ์œผ๋ฉด CPU, ๋ฉ”๋ชจ๋ฆฌ ๋ฆฌ์†Œ์Šค ์ž„๊ณ„์  ์ดˆ๊ณผ๋กœ ์„œ๋ฒ„ ๋‹ค์šด

- ์žฅ์•  ๋ฐœ์ƒ์‹œ? -> ํด๋ผ์šฐ๋“œ๋ฉด ์ผ๋‹จ ์„œ๋ฒ„ ๋Š˜๋ฆฌ๊ณ  ์ดํ›„ ํŠœ๋‹ / ํด๋ผ์šฐ๋“œ๊ฐ€ ์•„๋‹ˆ๋ฉด ์—ด์‹ฌํžˆ ํŠœ๋‹

 

์ ์ • ์ˆซ์ž ์–ด๋–ป๊ฒŒ ์ฐพ๋Š”๊ฐ€?

- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์˜ ๋ณต์žก๋„, CPU, ๋ฉ”๋ชจ๋ฆฌ, IO ๋ฆฌ์†Œ์Šค ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ชจ๋‘ ๋‹ค๋ฆ„

- ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ 

  > ์ตœ๋Œ€ํ•œ ์‹ค์ œ ์„œ๋น„์Šค์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ์‹œ๋„

  > ํˆด : ์•„ํŒŒ์น˜ ab, ์ œ์ด๋ฏธํ„ฐ, nGrinder

 

[ํ•ต์‹ฌ]

WAS์˜ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ์ง€์›!!!

- ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์€ WAS๊ฐ€ ์ฒ˜๋ฆฌ

- ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋จ

- ๊ฐœ๋ฐœ์ž๋Š” ๋งˆ์น˜ ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋“ฏ ํŽธ๋ฆฌํ•˜๊ฒŒ ์†Œ์Šค์ฝ”๋“œ ๊ฐœ๋ฐœ

- ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์ด๋ฏ€๋กœ ์‹ฑ๊ธ€ํ†ค ๊ฐ์ฒด(์„œ๋ธ”๋ฆฟ, ์Šคํ”„๋ง ๋นˆ) ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉ

 


4. HTML, HTTP API, CSR, SSR

[์ •์  ๋ฆฌ์†Œ์Šค]

- ๊ณ ์ •๋œ HTML ํŒŒ์ผ, CSS, JS, ์ด๋ฏธ์ง€, ์˜์ƒ ๋“ฑ์„ ์ œ๊ณต

- ์›น์„œ๋ฒ„์—์„œ ์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ์ œ๊ณต

- ์ฃผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์š”์ฒญ์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌ

 

[HTML ํŽ˜์ด์ง€]

๊ทธ๋ฆผ ์„ค๋ช…) ์ฃผ๋ฌธ๋‚ด์—ญ ๋ณด์—ฌ๋‹ฌ๋ผ๋Š” ์š”์ฒญ -> WAS(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง ์ˆ˜ํ–‰)๊ฐ€ DBํ†ตํ•ด ์ฃผ๋ฌธ ์ •๋ณด ์กฐํšŒ -> ๋™์ ์œผ๋กœ HTML ์ƒ์„ฑ(JSP, ํƒ€์ž„๋ฆฌํ”„) -> ์›น๋ธŒ๋ผ์šฐ์ €์— HTML ๋ฐ˜ํ™˜

 

- ๋™์ ์œผ๋กœ ํ•„์š”ํ•œ HTML ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์„œ ์ „๋‹ฌ

- ์›น ๋ธŒ๋ผ์šฐ์ € : HTML ํ•ด์„

 

[HTTP API]

- HTML์ด ์•„๋‹ˆ๋ผ JSON๋ฐ์ดํ„ฐ๋ฅผ ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ „๋‹ฌ

- ์ฃผ๋กœ JSON ํ˜•์‹ ์‚ฌ์šฉ

- HTML์ด ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ์—์„œ ํ˜ธ์ถœ

ex)

- ๋ฐ์ดํ„ฐ๋งŒ ์ฃผ๊ณ ๋ฐ›์Œ

-  UI ํ™”๋ฉด์ด ํ•„์š”ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณ„๋„๋กœ ์ฒ˜๋ฆฌ

(1) UI ํด๋ผ์ด์–ธํŠธ ์ ‘์ 

- ์•ฑ ํด๋ผ์ด์–ธํŠธ (์•„์ดํฐ, ์•ˆ๋“œ๋กœ์ด๋“œ, PC์•ฑ)

- ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•œ HTTP API ํ˜ธ์ถœ)

- React, Vue.js ๊ฐ™์€ ์›น ํด๋ผ์ด์–ธํŠธ

(2) ์„œ๋ฒ„ to ์„œ๋ฒ„

- ์ฃผ๋ฌธ ์„œ๋ฒ„ -> ๊ฒฐ์ œ ์„œ๋ฒ„

- ๊ธฐ์—…๊ฐ„ ๋ฐ์ดํ„ฐ ํ†ต์‹ 

 

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง (SSR) - ์„œ๋ฒ„์—์„œ ์ตœ์ข… HTML์„ ์ƒ์„ฑํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌ

- HTML ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์„œ๋ฒ„์—์„œ ๋งŒ๋“ค์–ด์„œ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ „๋‹ฌ

- ์ฃผ๋กœ ์ •์ ์ธ ํ™”๋ฉด์— ์‚ฌ์šฉ

- ๊ด€๋ จ๊ธฐ์ˆ  : JSP, ํƒ€์ž„๋ฆฌํ”„ (๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž)

 

ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง (CSR)

- HTML ๊ฒฐ๊ณผ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ์ ์šฉ

- ์ฃผ๋กœ ๋™์ ์ธ ํ™”๋ฉด์— ์‚ฌ์šฉ, ์›น ํ™˜๊ฒฝ์„ ๋งˆ์น˜ ์•ฑ์ฒ˜๋Ÿผ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋ถ€๋ถ„ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

- ex) ๊ตฌ๊ธ€ ์ง€๋„, Gmail, ๊ตฌ๊ธ€ ์บ˜๋ฆฐ๋”

- ๊ด€๋ จ ๊ธฐ์ˆ  : React, Vue.js  (ํ”„๋ก ํŠธ์—”ํŠธ ๊ฐœ๋ฐœ์ž)

 

์ฐธ๊ณ 

- React, Vue.js๋ฅผ CSR + SSR ๋™์‹œ์— ์ง€์›ํ•˜๋Š” ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋„ ์žˆ์Œ

- SSR์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ™”๋ฉด ์ผ๋ถ€๋ฅผ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

 

์–ด๋””๊นŒ์ง€ ์•Œ์•„์•ผํ•˜๋‚˜? - ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ UI ๊ธฐ์ˆ 

[๋ฐฑ์—”๋“œ] - ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๊ธฐ์ˆ  (SSR)
- JSP, ํƒ€์ž„๋ฆฌํ”„
- ํ™”๋ฉด์ด ์ •์ ์ด๊ณ , ๋ณต์žกํ•˜์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉ
- ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๊ธฐ์ˆ  ํ•™์Šต ํ•„์ˆ˜

[์›น ํ”„๋ก ํŠธ์—”๋“œ] - ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๊ธฐ์ˆ  (CSR)
- React, Vue.js
- ๋ณต์žกํ•˜๊ณ  ๋™์ ์ธ UI ์‚ฌ์šฉ
- ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์˜ ์ „๋ฌธ ๋ถ„์•ผ

 

<์„ ํƒ๊ณผ ์ง‘์ค‘>

- ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์˜ ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  ํ•™์Šต์€ ์˜ต์…˜

- ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋ฒ„ / DB / ์ธํ”„๋ผ ๋“ฑ ์ˆ˜๋งŽ์€ ๋ฐฑ์—”๋“œ ๊ธฐ์ˆ ์„ ๊ณต๋ถ€ํ•ด์•ผํ•จ

- ์›น ํ”„๋ก ํŠธ์—”๋“œ๋„ ๊นŠ์ด์žˆ๊ฒŒ ์ž˜ํ•˜๋ ค๋ฉด ์ˆ™๋ จ ์˜ค๋žœ์‹œ๊ฐ„ ํ•„์š”


5. ์ž๋ฐ” ๋ฐฑ์—”๋“œ ์›น ๊ธฐ์ˆ  ์—ญ์‚ฌ

[๊ณผ๊ฑฐ๊ธฐ์ˆ ]

 

[ํ˜„์žฌ ์‚ฌ์šฉ ๊ธฐ์ˆ ]

 

์Šคํ”„๋ง ์›น ๊ธฐ์ˆ ์˜ ๋ถ„ํ™”

- Web Servlet - Spring MVC

- Web Reactive - Spring WebFlux 

 

์Šคํ”„๋ง ์›น ํ”Œ๋Ÿญ์Šค(WebFlux) - ๊ฐ€์žฅ ์ตœ์‹ 

ํŠน์ง•)

- ๋น„๋™๊ธฐ ๋„Œ ๋ธ”๋Ÿฌํ‚น ์ฒ˜๋ฆฌ

- ์ตœ์†Œ ์“ฐ๋ ˆ๋“œ๋กœ ์ตœ๋Œ€ ์„ฑ๋Šฅ - ์“ฐ๋ ˆ๋“œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ๋น„์šฉ ํšจ์œจํ™”

- ํ•จ์ˆ˜ํ˜• ์Šคํƒ€์ผ๋กœ ๊ฐœ๋ฐœ - ๋™์‹œ์ฒ˜๋ฆฌ ์ฝ”๋“œ ํšจ์œจํ™”

- ์„œ๋ธ”๋ฆฟ ๊ธฐ์ˆ  ์‚ฌ์šฉ X

๊ทธ๋Ÿฐ๋ฐ)

- ์›นํ”Œ๋Ÿญ์Šค๋Š” ๊ธฐ์ˆ ์  ๋‚œ์ด๋„ ๋†’์Œ

- ์•„์ง์€ RDB ์ง€์› ๋ถ€์กฑ

- ์ผ๋ฐ˜ MVC์˜ ์“ฐ๋ ˆ๋“œ ๋ชจ๋ธ๋„ ์ถฉ๋ถ„ํžˆ ๋น ๋ฆ„

- ์‹ค๋ฌด์—์„œ ์•„์ง ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ (1% ์ดํ•˜)

 

์ž๋ฐ” ๋ทฐ ํ…œํ”Œ๋ฆฟ ์—ญ์‚ฌ

 

 

  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ