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

๋‚˜์˜ ๋ชจ์–‘

029 | ๋„คํŠธ์›Œํฌ - ์›น์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ์ˆ  ๋ณธ๋ฌธ

SEB/TIL

029 | ๋„คํŠธ์›Œํฌ - ์›น์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ์ˆ 

kexon 2022. 8. 2. 19:44

๐Ÿ’™ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘๋™์›๋ฆฌ

๐Ÿค ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

  • ํŠน์ • ๊ธฐ๊ธฐ์— ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜… ๊ทธ๋ƒฅ ๋ญ ์–ดํ”Œ ๋‹ค์šด๋ฐ›๋Š”๊ฑฐ
  • ํŠน์ • ์‹คํ–‰ํ™˜๊ฒฝ์— ์ข…์†(Apple iOS, Android OS, Windows, …)
    • iOS์šฉ์œผ๋กœ ๋‚˜์˜จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์‹คํ–‰ ๋ถˆ๊ฐ€

๐Ÿ‘๐Ÿป ์žฅ์ 

  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณด๋‹ค ๋น ๋ฆ„
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ค์น˜๋œ ๊ธฐ๊ธฐ์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์ด ์šฉ์ด (ex. GPS, ์นด๋ฉ”๋ผ, …)
  • ์˜คํ”„๋ผ์ธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋น„ํ•ด ์•ˆ์ „ (๋ชจ๋ฐ”์ผ์€ ์•ฑ์Šคํ† ์–ด ์Šน์ธ ํ•„์š”)

๐Ÿ‘Ž๐Ÿป ๋‹จ์ 

  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋น„ํ•ด ๋งŽ์ด ๋“œ๋Š” ๊ฐœ๋ฐœ๋น„์šฉ (๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ๊ฐœ๋ฐœ ๋“ฑ)
  • ์–ด๋ ค์šด ๋น ๋ฅธ ์—…๋ฐ์ดํŠธ
  • ์•ฑ์Šคํ† ์–ด ์Šน์ธ ์‹œ ๋น„์šฉ ๋ฐœ์ƒ, ์Šน์ธ๋„ ํž˜๋“ฆ

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

  • ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

๐Ÿ‘๐Ÿป ์žฅ์ 

  • ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜๋‚˜ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ํ•„์š” ์—†์Œ
  • ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋น„ํ•ด ๋งŒ๋“ค๊ธฐ๊ฐ€ ๋น„๊ต์  ๊ฐ„ํŽธ
  • ์œ ์ง€๊ด€๋ฆฌ ์šฉ์ด
  • ์•ฑ์Šคํ† ์–ด ์Šน์ธ ํ•„์š” ์—†์Œ

๐Ÿ‘Ž๐Ÿป ๋‹จ์ 

  • ์˜จ๋ผ์ธ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋น„ํ•ด ๋Š๋ฆฐ ์†๋„
  • ์•ฑ์Šคํ† ์–ด์—์„œ ๊ด€๋ฆฌ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋–จ์–ด์ง€๋Š” ์‚ฌ์šฉ์ž ์ ‘๊ทผ์„ฑ
    • ๊ฒ€์ƒ‰ ๋ง๊ณ ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ. ๊ทธ๋ฆฌ๊ณ  ๋ฐฉ๋Œ€ํ•จ
  • ์งˆ์ ์œผ๋กœ๋‚˜ ๋ณด์•ˆ์ƒ ์œ„ํ—˜์— ๋…ธ์ถœ๋˜๊ธฐ ์‰ฌ์›€

๐Ÿค ์š”์ฆ˜์€,

  • ๋„ค์ดํ‹ฐ๋ธŒ | ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋กœ ๊ฐ€์ง„ ๊ธฐ์ˆ ์˜ ์žฅ์ ์„ ํก์ˆ˜ํ•˜๊ณ  ๋‹จ์ ์„ ๋ณด์™„ํ•˜๋ฉด์„œ ๋ฐœ์ „ ing

๐Ÿ’™ ์›น์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ์ˆ 

๐Ÿค ์›น(WEB)

  • ์ธํ„ฐ๋„ท์—์„œ ์ œ๊ณต๋˜๋Š” ํ•˜์ดํผํ…์ŠคํŠธ ์‹œ์Šคํ…œ
    • ํ•˜์ดํผํ…์ŠคํŠธ: ๋ฌธ์„œ ์•ˆ์— ๋‹ค๋ฅธ ๋ฌธ์„œ์˜ ์œ„์น˜์ •๋ณด ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ ๋ฌธ์„œ ๊ฐ„์˜ ์ •๋ณด๋ฅผ ์„œ๋กœ ์—ฐ๊ด€ ์ง€์–ด ์ฐธ์กฐ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ

๐Ÿค ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜ (= 2ํ‹ฐ์–ด ์•„ํ‚คํ…์ฒ˜)

  • ์›น์—์„œ ์ œ๊ณต๋˜๋Š” ์„œ๋น„์Šค
    • ํด๋ผ์ด์–ธํŠธ: (์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘) ์„œ๋น„์Šค๋ฅผ ์ด์šฉ
    • ์„œ๋ฒ„: ์„œ๋น„์Šค ์ œ๊ณต
    ⇒ ์ด ๊ตฌ์กฐ๋ฅผ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜๋ผ๊ณ  ๋ถ€๋ฆ„

๐Ÿค ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜

Website | Web application

  • Website: ์ •์  ํŽ˜์ด์ง€๋“ค์˜ ์ง‘ํ•ฉ
  • Web application: ์›น์‚ฌ์ดํŠธ๊ฐ€ ์ •์  ํŽ˜์ด์ง€ + ๋™์  ํŽ˜์ด์ง€ ํฌํ•จ

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

  • ๋ฐ์Šคํฌํƒ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ฒ˜๋Ÿผ ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅ
  • ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ฐ€์ง (ex. ์ •๋ณด ๊ฒ€์ƒ‰ ๋“ฑ)
  • ์ •๋ณด๋‚˜ ์ž๋ฃŒ ๋“ฑ์˜ ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ ์‹œ์Šคํ…œ๊ณผ ํ•จ๊ป˜ ์ž‘๋™

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜

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

๐Ÿค ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์š”์ฒญ ํ๋ฆ„

๐ŸŒ https://www.google.co.kr ๋กœ ์ ‘์†

  • ๋ธŒ๋ผ์šฐ์ €์— https://www.google.co.kr ๋ฅผ ์ž…๋ ฅ
  • URL์„ ์ž…๋ ฅ ๋ฐ›์€ ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์˜ ์ฃผ์†Œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด DNS ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋ƒ„
  • IP ์ฃผ์†Œ๋ฅผ ์ฐพ์œผ๋ฉด ํ•ด๋‹น ์ฃผ์†Œ์— HTTPS ์š”์ฒญ์„ ๋ณด๋‚ด๋Š”๋ฐ, ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ด ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ์œผ๋ฉด ์ฃผ์†Œ๋ฅผ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜ด
  • ์›น์„œ๋ฒ„์— ์š”์ฒญ์ด ๋„์ฐฉํ•˜๋ฉด ์›น์„œ๋ฒ„๋Š” ์ €์žฅ์†Œ์— ์š”์ฒญ์„ ๋ณด๋‚ด ํŽ˜์ด์ง€ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ฐ€์ ธ์˜ด
  • ์ •๋ณด๋“ค์€ ๊ฐ€์ ธ์˜ค๋Š” ์ค‘์— ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์ด ์ž‘์šฉ๋˜๊ณ ,๋กœ์ง๋“ค์„ ํ†ตํ•ด ์š”์ฒญ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋“ค์ด ์ฒ˜๋ฆฌ๋˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์— ์‘๋‹ต
    (๋น„์ง€๋‹ˆ์Šค ๋กœ์ง๋“ค์€ ๊ฐ ๋ฐ์ดํ„ฐ๋“ค์„ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃฐ์ง€๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์Œ)
  • ์š”์ฒญ๋“ค์ด ๋ธŒ๋ผ์šฐ์ €์— ์‘๋‹ต์œผ๋กœ ๋Œ์•„์™”์„ ๋•Œ web page ํ™”๋ฉด์—์„œ ์ถœ๋ ฅ

๐Ÿค ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„ - ๊ตฌ์„ฑ ๋ฐฉ์‹

Single Page Application

  • ์œ ์ €์˜ ์ž…๋ ฅ๊ณผ ์š”์ฒญ์— ์˜ํ•œ ์ฝ˜ํ…์ธ ๋‚˜ ์ •๋ณด์˜ ์ตœ์‹ ํ™”๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๋ถˆ๋Ÿฌ์˜ค์ง€ ์•Š๊ณ  ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ ์ด๋ฃจ์–ด์ง
  • ํ•„์ˆ˜์ ์ธ ์š”์†Œ๋งŒ์„ ์š”์ฒญํ•ด์„œ ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ ๊ณ ์นจ ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ด ์œ ์ € ๊ฒฝํ—˜ ๊ทน๋Œ€ํ™”
  • ⇒ AJAX, Asynchronous JavaScript, XML ์‚ฌ์šฉ
  • ์ด๋Ÿฌํ•œ Single Page Application์˜ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์œ ์ €๋Š” ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ ๊ณ ์นจ ๋˜์ง€ ์•Š๊ณ , ์š”์ฒญํ•œ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉด์„œ ํŽ˜์ด์ง€์™€ ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅ

Microservice architecture

  • ์ž‘๊ณ  ๊ฐ€๋ฒผ์šด ํŠน์ •ํ•œ ํ•œ๊ฐ€์ง€ ๊ธฐ๋Šฅ์— ์ง‘์ค‘ํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
  • ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋Šฅ ์š”์†Œ๋“ค์€ ์ƒํ˜ธ๊ฐ„์— ์˜์กด์ ์œผ๋กœ ์„ค๊ณ„๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๊ฐœ๋ฐœ๋‹จ๊ณ„์—์„œ๋„ ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ ์™„์„ฑ์ดํ›„๋กœ๋„ ๊ฐ™์€ ๊ฐœ๋ฐœ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Œ
  • ๊ฐœ๋ฐœ์ž๋Š” ์›ํ•˜๋Š” ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์— ์œ ์—ฐ์„ฑ์„ ๋” ๊ฐ–๊ฒŒ ๋˜๊ณ , ๊ฐœ๋ฐœ ๊ณผ์ •์˜ ์ „๋ฐ˜์ ์ธ ์†๋„์™€ ์ƒ์‚ฐ์„ฑ์ด ํ–ฅ์ƒ๋จ

Serverless Architectures

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

๐Ÿค ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„ - ๊ตฌํ˜„ ๊ธฐ์ˆ 

HTTP(HyperText Transfer Protocol)

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

Cookie

  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์œ ์ €์˜ ์ •๋ณด๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๊ด€ํ•˜๊ณ , ๋‹ค์Œ ์ ‘์†๋ถ€ํ„ฐ๋Š” ์œ ์ €์˜ ์ •๋ณด๋ฅผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด์„œ ์œ ์ €๋ฅผ ์„œ๋ฒ„๊ฐ€ ์‹๋ณ„ํ•˜๊ฒŒ ํ•œ๋‹ค. ์ดํ›„ ์ฟ ํ‚ค์— ๋‹ด๊ธด ๋‚ด์šฉ์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์œ ์ €๊ฐ€ ์„ค์ •ํ–ˆ๋˜ ํ•ญ๋ชฉ๋“ค์— ๋Œ€ํ•ด ์ €์žฅ์„ ํ•ด์„œ ๋‹ค์Œ์— ์ด์–ด์„œ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๊ฒŒ ๋„์™€์ค€๋‹ค.

Session

  • ์„œ๋ฒ„์— Session-Id ๋ผ๋Š” ๊ณ ์œ  ์•„์ด๋””๋ฅผ ํ• ๋‹นํ•ด์„œ ์œ ์ €๋ฅผ ์‹๋ณ„ํ•œ๋‹ค. ๋‹จ์ˆœํ•˜๊ณ  ์œ ์ถœ์ด ๋˜๋ฉด ์•ˆ๋˜๋Š” ์ •๋ณด๋Š” ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋ฉด์„œ ์„ธ์…˜ ID์™€ ๋งค์นญํ•˜๊ณ  ์ €์žฅํ•ด์„œ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์€, ์„ธ์…˜์ •๋ณด๋Š” ์ฟ ํ‚ค์—์„œ ๊ด€๋ฆฌํ•˜๊ณ , ์‹ค์ œ ๋งค์นญ๋˜๋Š” ๊ฐ’๋“ค์€ ์„œ๋ฒ„ ์ธก์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

์‚ฌ์šฉ์ž ์ธ์ฆ

  • ์‚ฌ์šฉ์ž ์ธ์ฆ์€ ์˜๋„ํ•˜์ง€ ์•Š์€ ์ œ ์‚ผ์ž๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ ์ปดํ“จํ„ฐ๋‚˜ ์‹œ์Šคํ…œ์˜ ์ด์šฉ์„ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์›น์—์„œ์˜ ์ธ์ฆ์€ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ๋‹ค.

๐Ÿ’™ SSR  |  CSR

๐Ÿค SSR(Server Side Rendering)

  • ์„œ๋ฒ„์ชฝ์—์„œ ๋ Œ๋”๋ง ์ค€๋น„๋ฅผ ๋๋‚ธ ์ƒํƒœ๋กœ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹
  • ์„œ๋ฒ„์—์„œ ์ด๋ฏธ '๋ Œ๋” ๊ฐ€๋Šฅํ•œ' ์ƒํƒœ๋กœ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— JS๊ฐ€ ๋‹ค์šด๋กœ๋“œ ๋˜๋Š” ๋™์•ˆ ์‚ฌ์šฉ์ž๋Š” ๋‹ค๋ฅธ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์Œ

SSR์„ ์‚ฌ์šฉํ•  ๋•Œ

  • SEO(serach engine optimization: ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”)๊ฐ€ ์šฐ์„ ์ˆœ์œ„์ผ ๋•Œ
  • ์›น ํŽ˜์ด์ง€์˜ ์ฒซ ํ™”๋ฉด ๋ Œ๋”๋ง์ด ๋น ๋ฅด๊ฒŒ ํ•„์š”ํ•  ๋•Œ
  • ์›น ํŽ˜์ด์ง€๊ฐ€ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ์ด ์ ์„ ๋•Œ

SSR ์œ„ํ—˜์„ฑ

  • ์ž์›์ด์šฉ์ด ์„œ๋ฒ„์— ์ง‘์ค‘๋˜๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œ ์ง€๋น„์šฉ์ด ๋†’์Œ
  • ์ผ๋ถ€ Thrid party JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿค CSR(Client Side Rendering)

  • ๋ Œ๋”๋ง์ด ํด๋ผ์ด์–ธํŠธ์ธก์—์„œ ์ผ์–ด๋‚จ
  • ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด ํด๋ผ์ด์–ธํŠธ์— HTML๊ณผ JS๋ฅผ ๋ณด๋‚ด์ฃผ๊ณ , ํด๋ผ์ด์–ธํŠธ๋Š” ๊ทธ๊ฒƒ์„ ๋ฐ›์•„ ๋ Œ๋”๋ง์„ ์‹œ์ž‘ํ•จ
  • ์„œ๋ฒ„ ์ฒ˜๋ฆฌ ์—†์ด ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์— JS๊ฐ€ ๋ชจ๋‘ ๋‹ค์šด๋กœ๋“œ ๋˜๊ณ  ์‹คํ–‰์ด ๋๋‚˜๊ธฐ ์ „๊นŒ์ง€ ์‚ฌ์šฉ์ž๋Š” ํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์—†์Œ

CSR์„ ์‚ฌ์šฉํ•  ๋•Œ

  • SEO๊ฐ€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹ ๋•Œ
  • ์‚ฌ์ดํŠธ์— ์ƒํ˜ธ ์ž‘์šฉ์ด ์žˆ์„ ๋•Œ
    CSR์€ ๋น ๋ฅธ ๋ผ์šฐํŒ…์œผ๋กœ ๊ฐ•๋ ฅํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณต
  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ•  ๋•Œ
    CSR์„ ์ด์šฉํ•ด ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(๋น ๋ฅธ ๋™์  ๋ Œ๋”๋ง ๋“ฑ)์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Œ
  • ์„œ๋ฒ„์— ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š์„ ๋•Œ

CSR ์œ„ํ—˜์„ฑ

  • ๋Š๋ฆฐ ๋ Œ๋”๋ง ์†๋„๋กœ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ์•ˆ ์ข‹์•„ ์งˆ ์ˆ˜ ์žˆ์Œ
  • ๋ชจ๋“  ๋ Œ๋”๋ง์˜ ๋ถ€ํ•˜๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์ชฝ์— ์ง‘์ค‘๋˜๊ธฐ ๋•Œ๋ฌธ์— UX ํ˜ธ๋ถˆํ˜ธ ๊ฐˆ๋ฆผ
  • Javascript๊ฐ€ ๋ Œ๋”๋งํ•ด์•ผ ํ•˜๋Š” ์ •๋ณด๋“ค์€ Google ๊ฐ™์€ search engine index์— ํฌํ•จ์ด ์•ˆ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์•„ search engine bots์™€ ์ƒ์„ฑ์ด ์•ˆ ์ข‹์Œ

๐Ÿค SSR  |  CSR ์ฐจ์ด์ 

1. ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„

  • Initial Load Time: ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ดํŠธ๋ฅผ ์ฒ˜์Œ ๋กœ๋“œํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ํ‰๊ท  ์‹œ๊ฐ„
    • SSR์—์„œ ์ฒซ ํŽ˜์ด์ง€๋ฅผ ํ›จ์”ฌ ๋นจ๋ฆฌ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Œ
    • CSR์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ธฐ๋ณธ HTML, CSS ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋กœ๋“œํ•œ ํ›„ HTML์„ ๋ธŒ๋ผ์šฐ์ €์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ˜ํ…์ธ ๋กœ ์ปดํŒŒ์ผํ•˜๋ฏ€๋กœ ๋Š๋ฆผ
  • Subsequent Load Time: ํ•œ ํŽ˜์ด์ง€์—์„œ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
    • SSR์€ ์ฒซ ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ๊ฐ„์— ๋Œ€ํ•ด ๋™์ผํ•œ ์š”์ฒญ ์ฃผ๊ธฐ๋ฅผ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋Š๋ฆผ
    • CSR์€ ๋ชจ๋“  ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ฏธ๋ฆฌ ๋กœ๋“œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ๊ฐ„ ๋‹จ์ถ•

2. ์บ์‹ฑ ์ž„ํŒฉํŠธ

  • ์บ์‹ฑ์€ ํŒŒ์ผ ๋ณต์‚ฌ๋ณธ์„ ์บ์‹œ(๋˜๋Š” ์ž„์‹œ ์ €์žฅ ์œ„์น˜)์— ์ €์žฅํ•˜์—ฌ ๋” ๋นจ๋ฆฌ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ ๋กœ, ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ์—์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์บ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— SSR ๋ฐ CSR์˜ ์ „์ฒด ๋กœ๋“œ ์‹œ๊ฐ„์ด ๊ฐœ์„ ๋จ
  • SSR์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์š”์ฒญ์ด ํ•ญ์ƒ ์ „์†ก๋˜๋ฏ€๋กœ ๋กœ๋“œ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง
    ๊ทธ๋ž˜๋„ ์บ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์บ์‹œ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ Œ๋”๋ง ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋จ
  • CSR ๊ธฐ๋ฐ˜ ์›น ์•ฑ์€ ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋˜๋ฉด ์„œ๋ฒ„์— ๋” ์ด์ƒ ์š”์ฒญ์„ ๋ณด๋‚ผ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ธํ„ฐ๋„ท ์—†์ด๋„ ์‹คํ–‰ ๊ฐ€๋Šฅ

3. SEO์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ

  • SSR์„ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ์ปดํŒŒ์ผ๋จ. ์ตœ์ข… HTML ์ฝ˜ํ…์ธ ๋ฅผ ์ˆ˜์‹ ํ•œ ํ›„ ํ”„๋ก ํŠธ๋กœ ์ „๋‹ฌ๋˜๋ฏ€๋กœ SSR์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒ€์ƒ‰ ์—”์ง„ ํฌ๋กค๋Ÿฌ์˜ JS ์‚ฌ์šฉ ์—ฌ๋ถ€ ๊ด€๊ณ„์—†์ด ํŽ˜์ด์ง€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ์œ ์ง€๋จ
  • CSR ์‚ฌ์šฉ ์‹œ JS๋ฅผ ํ†ตํ•ด ์‚ฌ์ดํŠธ์˜ ์ฝ˜ํ…์ธ ๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋จ. ํ•œ ํŽ˜์ด์ง€์—์„œ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ JS ์‹คํ–‰์— ์˜์กดํ•ด์•ผ๋จ. ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์„ค์ •ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ Œ๋”๋งํ•ด์•ผ๋จ

โœ… Ref.

 

SSR vs CSR: Which Method Works Best? - Growth Rocket

Should you render a site using SSR or CSR? Growth Rocket gets to the bottom of this age-old debate by explaining the pros & cons of each method. Learn more here.

www.growth-rocket.com

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

030 | REST API  (0) 2022.08.03
029 | ๋„คํŠธ์›Œํฌ - HTTP  (0) 2022.08.02
027 | Permutation & Combination, Greedy Implementation  (0) 2022.07.29
026 | Greedy, Brute-Force, Binary Search Algorithm  (0) 2022.07.29
026 | Time Complexity  (0) 2022.07.28
Comments