๐ŸŽจ Frontend

Frontend ๊ฐœ๋ฐœ ๊ธฐ์ˆ 

kongmi 2023. 3. 7. 19:14

HTML

  • HTML(Hyper Text Markup Language)์€ ์›น ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋งˆํฌ์—… ์–ธ์–ด
  • ์›นํŽ˜์ด์ง€์˜ ๊ตฌ์กฐ์™€ ์ฝ˜ํ…์ธ ๋ฅผ ํ‘œ์‹œ
  • ์ด๋ฅผ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €๋Š” HTML ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜์—ฌ ์›น ํŽ˜์ด์ง€ ๋ Œ๋”๋ง
  • HTML์€ ์›น ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์ด๋ฉฐ, CSS์™€ JavaScript์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‹ค ๋‹ค์–‘ํ•˜๊ณ  ๋™์ ์ธ ์›นํŽ˜์ด์ง€ ๊ตฌํ˜„ ๊ฐ€

CSS

  • CSS(Cascading Style Sheets)๋Š” ์›น ํŽ˜์ด์ง€์˜ ๋ ˆ์ด์•„์›ƒ, ์Šคํƒ€์ผ ๋ฐ ๋””์ž์ธ์„ ์ •์˜ํ•˜๋Š” ์Šคํƒ€์ผ ์‹œํŠธ ์–ธ์–ด
  • ์›น ํŽ˜์ด์ง€์˜ ๋””์ž์ธ๊ณผ ๋ ˆ์ด์•„์›ƒ์„ ๊พธ๋ฏธ๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• 
  • ์ตœ๊ทผ์—๋Š” CSS3์—์„œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ํšจ๊ณผ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ, ๋ณด๋‹ค ๋‹ค์–‘ํ•˜๊ณ  ํ’๋ถ€ํ•œ ์›น ๋””์ž์ธ ๊ตฌํ˜„ ๊ฐ€๋Šฅ

๐Ÿ“Œ ์Šคํƒ€์ผ ์ •์˜

CSS๋Š” HTML ์š”์†Œ์˜ ์Šคํƒ€์ผ ์ •์˜

์Šคํƒ€์ผ์€ ํ…์ŠคํŠธ, ์ƒ‰์ƒ, ๋ ˆ์ด์•„์›ƒ์„ ํฌํ•จํ•จ.

 

๐Ÿ“Œ ์ ์šฉ ์šฐ์„ ์ˆœ์œ„

CSS๋Š” ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๋Š” ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง.

์Šคํƒ€์ผ์€ ์„ ์–ธ๋œ ์œ„์น˜, ์„ ํƒ์ž์˜ ํŠน์ •์„ฑ ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์ ์šฉ

 

๐Ÿ“Œ ์ƒ์†

CSS๋Š” ์ƒ์œ„ ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ํ•˜์œ„ ์š”์†Œ๋กœ ์ƒ์†.

๋”ฐ๋ผ์„œ, ํ•˜์œ„ ์š”์†Œ์— ์ง์ ‘ ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜์ง€ ์•Š์•„๋„ ์ƒ์œ„ ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ์Œ.

JavaScript

  • JavaScript๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
  • HTML, CSS์™€ ํ•จ๊ป˜ ์›น ๊ฐœ๋ฐœ์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ์ˆ ๋กœ ์‚ฌ์šฉ๋จ.

๐Ÿ“Œ ๊ฐ์ฒด ๊ธฐ๋ฐ˜

JavaScript๋Š” ๊ฐ์ฒด ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด.

๋ชจ๋“  ๊ฒƒ์„ ๊ฐ์ฒด ์ทจ๊ธ‰ํ•˜๋ฉฐ, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ƒ์†์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.

 

๐Ÿ“Œ ๋™์ ์ธ ํƒ€์ž… ์ง€์ •

JavaScript๋Š” ๋™์ ์œผ๋กœ ํƒ€์ž… ์ง€์ • ๊ฐ€๋Šฅ

๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ํƒ€์ž…์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ , ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ทธ ํƒ€์ž…์ด ๊ฒฐ์ •๋จ.

 

๐Ÿ“Œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜

์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ์ˆ˜ํ–‰

 

๐Ÿ“Œ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด

JavaScript๋Š” ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ, ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋จ.

JavaScript๋Š” ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ํ•„์ˆ˜์ ์ธ ๊ธฐ์ˆ ๋กœ, Node.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๊ฐœ๋ฐœ์—๋„ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Œ.

React

  • React๋Š” Facebook์—์„œ ๊ฐœ๋ฐœํ•œ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • React๋Š” ์„ ์–ธ์ ์ด๋ฉฐ, ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ UI๋ฅผ ๋”์šฑ ์‰ฝ๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ฆ

๐Ÿ“Œ ๊ฐ€์ƒ DOM(Virtual DOM) ๊ธฐ๋ฐ˜

React๋Š” ๊ฐ€์ƒ DOM์„ ์‚ฌ์šฉํ•˜์—ฌ, ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ตœ์†Œํ•œ์œผ๋กœ ์ค„์ด๊ณ , ๋น ๋ฅธ ๋ Œ๋”๋ง ์†๋„ ์ œ๊ณต

 

๐Ÿ“Œ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜

React๋Š” ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜์—ฌ, ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI ์š”์†Œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ

 

๐Ÿ“Œ ์ƒํƒœ(State) ๊ด€๋ฆฌ

React๋Š” ์ƒํƒœ(State)๋ฅผ ํ†ตํ•ด, ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

 

๐Ÿ“Œ JSX ๋ฌธ๋ฒ•

React๋Š” JSX ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ, JavaScript์™€ HTML์„ ๊ฒฐํ•ฉํ•˜์—ฌ UI๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ

React๋Š” ๋Œ€๊ทœ๋ชจ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด UI๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ , ๋น ๋ฅด๊ฒŒ ๋ Œ๋”๋ง ํ•  ์ˆ˜ ์žˆ์Œ

React๋Š” ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, React Native๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋„ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ

SPA(Single Page Application)

  • ๋ชจ๋“  ์ฝ˜ํ…์ธ ๋ฅผ ๋‹จ์ผ ํŽ˜์ด์ง€ ๋‚ด์—์„œ ๋™์ ์œผ๋กœ ๋กœ๋”ฉํ•˜์—ฌ ํ™”๋ฉด ๊ฐฑ์‹ ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

๐Ÿ“Œ ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„ ๋น ๋ฆ„

๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ๋กœ๋”ฉํ•˜์ง€ ์•Š๊ณ , ์ตœ์ดˆ ํ•œ ๋ฒˆ๋งŒ ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๋กœ๋”ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋น ๋ฆ„

 

๐Ÿ“Œ ๋ถ€๋ถ„์ ์ธ ํ™”๋ฉด ๊ฐฑ์‹  ๊ฐ€๋Šฅ

์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์š”์ฒญํ•˜๊ณ , ์ด๋ฅผ ๋ฐ›์•„์™€์„œ ๋ถ€๋ถ„์ ์ธ ํ™”๋ฉด ๊ฐฑ์‹ ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋กœ๋”ฉํ•˜์ง€ ์•Š์•„๋„ ๋˜์–ด์„œ ๋น ๋ฅธ ์†๋„๋กœ ํ™”๋ฉด์„ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ์Œ

 

๐Ÿ“Œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ์ข‹์Œ

์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋กœ๋”ฉํ•˜์ง€ ์•Š๊ณ ๋„ ํ™”๋ฉด์„ ๊ฐฑ์‹ ํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž์˜ ์ž‘์—… ํ๋ฆ„์ด ์•ˆ ๋Š์–ด์ง

SPA๋Š” React, Angular, Vue.js ๋“ฑ์˜ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋น ๋ฅด๊ณ  ๋ถ€๋“œ๋Ÿฌ์šด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.

ํ•˜์ง€๋งŒ SEO(Search Engine Optimization)์— ์ทจ์•ฝํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, SEO๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•ด์•ผ ํ•จ. 

DOM(Document Object Model)

  • HTML, XML, XHTML ๋ฌธ์„œ์˜ ๊ตฌ์กฐํ™”๋œ ํ‘œํ˜„์„ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค
  • ์›น ํŽ˜์ด์ง€๋ฅผ JavaScript ๋“ฑ์—์„œ ๋™์ ์œผ๋กœ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ
  • DOM์€ ๋ฌธ์„œ ๋‚ด์˜ ์š”์†Œ๋ฅผ ๊ฐ์ฒด๋กœ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด JavaScript ๋“ฑ์—์„œ ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ณ , ์ˆ˜์ •/์ถ”๊ฐ€/์‚ญ์ œ ๋“ฑ์˜ ๋™์ ์ธ ์กฐ์ž‘ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ

SSR(Server Side Rendering)

  • ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์™„์ „ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ง„ HTML ํŒŒ์ผ์„ ๋ฐ›์•„์™€ ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹
  • MPA(Multi Page Application)์€ SSR ๋ฐฉ์‹ ์‚ฌ์šฉ
  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ดˆ๊ธฐ ํ™”๋ฉด์„ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์— ์š”์ฒญ ๋ณด๋ƒ„.
  2. ์„œ๋ฒ„๋Š” ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์™€ ๋ชจ๋‘ ์‚ฝ์ž…ํ•˜๊ณ ,
    CSS๊นŒ์ง€ ๋ชจ๋‘ ์ ์šฉํ•ด์„œ ๋ Œ๋”๋ง ์ค€๋น„๋ฅผ ๋งˆ์นœ HTML๊ณผ JS์ฝ”๋“œ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์‘๋‹ต์œผ๋กœ ์ „๋‹ฌ
  3. ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์ „๋‹ฌ ๋ฐ›์€ ํŽ˜์ด์ง€ ๋กœ๋“œ
  4. ๊ทธ ํ›„, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ JS ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๊ณ  HTML์— ์‹คํ–‰

์ด ๋•Œ, ์š”์†Œ ํ•˜๋‚˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด?

์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„œ๋ฒ„ HTML๋กœ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋‹ค์šด๋ฐ›์•„ ์™€์•ผ ํ•จ.

์ด๋Ÿฐ ์ด์œ ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ์ƒˆ๋กœ๊ณ ์นจ ๋˜์–ด ํ™”๋ฉด์ด ๊นœ-๋นก์ธ ํ›„์— ํ‘œ์‹œ๋จ.

CSR(Client Side Rendering)

  • ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์‘๋‹ต ๋ฐ›์•„ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹
  1. ํด๋ผ์ด์–ธํŠธ์—์„œ ์ดˆ๊ธฐํ™”๋ฉด์„ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์— ์š”์ฒญ ๋ณด๋ƒ„
  2. ์„œ๋ฒ„๋Š” ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์™„์ „ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‘๋‹ต
    ๐Ÿ’ก์ด ๋•Œ, CSR๊ณผ SSR์˜ ์ฐจ์ด์ ์€ CSR์€ ๋ชจ๋“  JS ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด SSR๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆผ
  3. ์ด ๋•Œ๋ฌธ์— CSR์€ SSR๊ณผ ๋‹ค๋ฅด๊ฒŒ ํ™”๋ฉด์ด ๊นœ๋นก์ด์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ˆ˜์ •๋œ ๋ฐ์ดํ„ฐ ํ‘œ์‹œ๋จ.

CSR์€ ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— SSR๋ณด๋‹ค ๋น ๋ฅด๊ณ , ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ ์Œ.

Virtual DOM

  • React์™€ ๊ฐ™์€ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…
  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ DOM ์กฐ์ž‘์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ

DOM(Document Object Model)์€ HTML, XML ๋˜๋Š” XHTML ๋ฌธ์„œ์˜ ๊ตฌ์กฐํ™”๋œ ํ‘œํ˜„์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด JavaScript ๋“ฑ์—์„œ ๋ฌธ์„œ ๋‚ด์˜ ์š”์†Œ๋ฅผ ๋™์ ์œผ๋กœ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

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


Virtual DOM์€ ์ด๋Ÿฌํ•œ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

Virtual DOM์€ ์‹ค์ œ DOM๊ณผ ๋™์ผํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฐ€์ƒ์˜ DOM์„ ์ƒ์„ฑํ•˜์—ฌ, ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ธฐ ์ „์— ๊ฐ€์ƒ์˜ DOM์—์„œ ๋จผ์ € ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๊ณ , ์‹ค์ œ DOM์— ๋ฐ˜์˜ํ•  ๋•Œ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋งŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด DOM ์กฐ์ž‘ ์ž‘์—…์ด ์ตœ์†Œํ™”๋˜์–ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

React์—์„œ๋Š” Virtual DOM์„ ์‚ฌ์šฉํ•˜์—ฌ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๊ฐ€์ƒ์˜ DOM์„ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜๊ณ , ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ๋งŒ ์‹ค์ œ DOM์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด React๋Š” ๋งค์šฐ ๋น ๋ฅธ ๋ Œ๋”๋ง ์†๋„์™€ ๋†’์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.