๐Ÿ‘‰ ํด๋ฆญํ•ด๋ด! ๋„ˆ๋„ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง์— 100์ ์งœ๋ฆฌ ๋Œ€๋‹ต์„ ํ•  ์ˆ˜ ์žˆ์–ด!!

ยท22 min read

Web์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋ Œ๋”๋ง์ด ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ์ž‘๋™๋˜๋Š”๊ฐ€? ์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์„ ๊ฐ€์ง€์ง€ ๋ชปํ–ˆ๋‹ค. ์ทจ์—…์„ ํ•ด์•ผ๋œ๋‹ค๋Š” ๋ง‰์—ฐํ•œ ์ƒ๊ฐ๋•Œ๋ฌธ์— ๊ณผ์ •์—†์ด ๋ฉด์ ‘์— ์ž์ฃผ๋‚˜์˜ค๋Š” ํ‚ค์›Œ๋“œ๋งŒ ์•”๊ธฐํ–ˆ๋‹ค.

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

์ž‘์€ ์†Œ๋ง์ด๋ผ๋ฉด ๋ Œ๋”๋ง, ๋ธŒ๋ผ์šฐ์ €, DOM ๋“ฑ ๋‹ค์–‘ํ•œ ํ‚ค์›Œ๋“œ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•  ๋•Œ ๋‚˜์˜ ๊ธ€์ด ์ƒ๊ฐ๋‚˜๊ณ  ํ๋ฆ„์„ ํŒŒ์•…ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค.

1.jpeg

์›น ๋ Œ๋”๋ง์ด๋ผ๋Š” ์ฃผ์ œ๋ฅผ ์ •ํ•œ ํ›„ ์–ด๋– ํ•œ ์ˆœ์„œ๋กœ ์›น ๋ Œ๋”๋ง์— ๋Œ€ํ•ด์„œ ๊ธ€์„ ์จ์•ผ ํ• ๊นŒ? ์— ๋Œ€ํ•ด ๋งŽ์€ ๊ณ ๋ฏผ์„ ํ•˜์˜€๋‹ค. ์ด๋ก ์ ์ธ ๋‹จ๊ณ„๋กœ ์“ธ ์ˆ˜ ์žˆ๊ณ , ์ค‘์š”ํ•œ ์ˆœ์„œ๋Œ€๋กœ๋„ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์„ ํƒํ•œ ๋ฐฉ๋ฒ•์€ ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋А๊ผˆ๋˜ ํ‚ค์›Œ๋“œ์˜ ์—ฐ๊ด€์„ฑ์„ ํ๋ฆ„์— ๋งž์ถฐ์„œ ๊ธฐ๋กํ•ด๋ณด๋ ค ํ•œ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด! ๐ŸŽ ์‚ฌ๊ณผ์— ๋Œ€ํ•ด์„œ ๊ธ€์„ ์“ฐ๊ณ  ์‹ถ์„๋•Œ ์‚ฌ๊ณผ๋Š” ์ด๋ฆ„์ด ์™œ ์‚ฌ๊ณผ๊ณ  => ์–ด๋– ํ•œ ํŠน์„ฑ์ด ์žˆ๊ณ  => ๊ทธ๋ž˜์„œ ์–ด๋– ํ•˜๋‹ค ๋ผ๋Š” ํ๋ฆ„์œผ๋กœ ์‚ฌ๊ณผ๋ฅผ ์•Œ์•„๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์‚ฌ๊ณผ๋Š” ๋ญ˜๊นŒ? => ์‚ฌ๊ณผ๋Š” ๊ณผ์ผ์ด๊ตฌ๋‚˜, ๋ญ˜ ๊ณผ์ผ์ด๋ผ๊ณ  ํ•˜์ง€? => ๊ณผ์ผ์€ ๋˜ ์–ด๋–ค ๊ฒŒ ์žˆ์„๊นŒ? ์ด๋Ÿฐ ์‹์œผ๋กœ ์งˆ๋ฌธ์— ๊ผฌ๋ฆฌ์— ๊ผฌ๋ฆฌ๋ฅผ ๋ฌด๋Š” ๋ฐฉ์‹(๊ผฌ๊ผฌ๋ฌด)์œผ๋กœ ๊ธ€์„ ์ž‘์„ฑํ•  ์˜ˆ์ •์ด๋‹ค!!

์„œ๋ก ์ด ๋„ˆ๋ฌด ๊ธธ์—ˆ๋‹ค!! ์ž์นซํ•˜๋ฉด ๋„ˆ๋ฌด ์–ด๋ ต๊ณ , ์ง„๋ถ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์ด์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ํ•„์š”ํ•  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋งŒ์•ฝ ํ•„์š”ํ•œ ๋‚ด์šฉ๋งŒ ์ฐพ๊ณ ์‹ถ์œผ๋ฉด ๋ชฉ์ฐจ, command + f , ctrl+f ๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ์•Œ์ฐจ๊ฒŒ ์ฐพ์•„๊ฐ€๋ฉด ์ข‹๊ฒ ๋‹ค!!

์ค‘์š”ํ•˜๊ฒŒ ์•Œ์•„์•ผ ๋  ํ‚ค์›Œ๋“œ

ํŒŒ์‹ฑ๊ณผ ๋ Œ๋”๋ง

ํŒŒ์‹ฑ์€ HTML ํŒŒ์ผ์„ ํ•ด์„ํ•˜์—ฌ DOM(Document Object Model) Tree๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ๋งํ•˜๊ณ , ๋ Œ๋”๋ง์ด๋ž€ HTML, CSS, JS๋กœ ์ž‘์„ฑ๋œ ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์— ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆˆ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์‹œ๊ฐ์ ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

์š”์ฒญ๊ณผ ์‘๋‹ต

3.png

๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅํ•˜๋ฉด URL์— ์ ํžŒ ๊ฐ’์„ ํŒŒ์‹ฑํ•˜๊ณ  HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค์–ด ์›น ์„œ๋ฒ„๋กœ ์ „์†กํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋„คํŠธ์›Œํฌ์— ์ง์ ‘ ์†ก์ถœํ•  ์ˆ˜ ์—†๊ธฐ๋•Œ๋ฌธ์— OS์— ์˜๋ขฐํ•ด์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. OS์— ์†ก์‹ ์„ ์˜๋ขฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, IP ์ฃผ์†Œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์„ ์ƒ๋Œ€๋ฅผ ์ง€์ •ํ•ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์—, DNS(Domain Name Server)๋ฅผ ์กฐํšŒํ•ด์•ผ ํ•œ๋‹ค.

์ดํ›„, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ์›น์„œ๋ฒ„ ์ธก LAN์— ๋„์ฐฉํ•˜๋ฉด ๋ฐฉํ™”๋ฒฝ์ด ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋Š”๋ฐ, ์บ์‹œ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์›น์„œ๋ฒ„๊นŒ์ง€ ๊ฐ€์•ผํ•˜๋Š” ์ง€ ์•„๋‹Œ์ง€ ์กฐ์‚ฌํ•œ๋‹ค. ํŽ˜์ด์ง€์˜ ๋ฐ์ดํ„ฐ ์ค‘ ๋‹ค์‹œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์บ์‹œ ์„œ๋ฒ„์— ์ €์žฅ๋˜๊ณ  ์•ก์„ธ์Šคํ•œ ํŽ˜์ด์ง€์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ์„œ๋ฒ„์— ์žˆ์œผ๋ฉด ์›น์„œ๋ฒ„์— ์˜๋ขฐํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๊ฐ’์„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

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

ํ•œ๋งˆ๋””๋กœ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด๊ณ  URL์„ ์ž…๋ ฅํ•˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ HTTP ์š”์ฒญ(Request)์ด ์‹œ์ž‘๋˜๊ณ , ๋ธŒ๋ผ์šฐ์ €๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ URL์ฃผ์†Œ์— ํ•ด๋‹นํ•˜๋Š” ๋ชฉ์ ์ง€(์›น์„œ๋ฒ„)์— ๋„์ฐฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ , ๊ทธ ๋ชฉ์ ์ง€(์›น์„œ๋ฒ„)์—์„œ ์‘๋‹ตํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ต ๋ฐ›์•„์„œ(Response) ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๊ฒŒ ๋œ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •

2.png

์šฐ๋ฆฌ๋Š” ์™œ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •์˜ ์›๋ฆฌ๋ฅผ ์•Œ์•„์•ผํ• ๊นŒ??

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

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ Œ๋”๋ง์„ ํ•˜๊ฒŒ ๋˜๋ฉด DOM(The Document Object Model) ์„ ๋งŒ๋“ค์–ด๋‚ด๋Š”๋ฐ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ ์ž ๊น! DOM์€ ๋ฌด์—‡์ผ๊นŒ?

๋ฌธ์„œ์˜ ๊ตฌ์กฐํ™”๋œ ํ‘œํ˜„์„ ์ œ๊ณตํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ DOM ๊ตฌ์กฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์—ฌ ๊ทธ๋“ค์ด ๋ฌธ์„œ ๊ตฌ์กฐ, ์Šคํƒ€์ผ, ๋‚ด์šฉ ๋“ฑ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋•๋Š”๋‹ค.

nodes์™€ objects๋กœ ๋ฌธ์„œ๋ฅผ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์ด๋“ค์€ ์›น ํŽ˜์ด์ง€๋ฅผ ์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ฒŒ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.

HTML ํŒŒ์‹ฑ

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

โš ๏ธ ํŒŒ์‹ฑ(Parsing)์€ ์ปดํ“จํ„ฐ ๊ณผํ•™ ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํŠน์ • ํ˜•์‹์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ๊ทธ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ ์ค‘์—์„œ HTML ํŒŒ์‹ฑ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•œ ๊ฒƒ ๋ฟ์ด๋‹ˆ ๐Ÿ‘‰ ์—ฌ๊ธฐ์„œ์—์„œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ฐพ์•„๋ณด๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค

์ด ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €๋Š” ์˜ค๋ฅ˜ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ์œ ํšจํ•œ HTML ๋ฌธ์„œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ HTML ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— DOM ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฒˆ์—ญํ•˜๋Š” ๊ณผ์ •(DOM ์ƒ์„ฑ ๊ณผ์ •)์ด ํ•„์š”ํ•˜๋‹ค

DOM ์ƒ์„ฑ ๊ณผ์ •

4.png

  1. ์„œ๋ฒ„๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•œ HTML ํŒŒ์ผ์„ ์ฝ์–ด ๋“ค์—ฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ ๋‹ค์Œ, ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ฐ”์ดํŠธ(2์ง„์ˆ˜)๋กœ ์‘๋‹ตํ•œ๋‹ค.
  2. ๋ธŒ๋ผ์šฐ์ €๋Š” ์‘๋‹ต๋ฐ›์€ ๋ฐ”์ดํŠธ ํ˜•ํƒœ์˜ HTML ๋ฌธ์„œ๋ฅผ metaํƒœ๊ทธ์˜ charset ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋กœ ์ง€์ •ํ•ด ๋‘” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹(ex. UTF-8)์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  3. ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜๋œ HTML ๋ฌธ์„œ๋ฅผ ์ฝ์–ด ๋“ค์—ฌ ๋ฌธ๋ฒ•์ ์œผ๋กœ ๋” ์ด์ƒ ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋Š” ๊ธฐ๋ณธ์ ์ธ ์–ธ์–ด ์š”์†Œ์ธ ํ† ํฐ(token)๋“ค๋กœ ๋ถ„ํ•ดํ•œ๋‹ค.
  4. ๊ฐ ํ† ํฐ๋“ค์„ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ปดํ“จํ„ฐ ๊ณผํ•™์— ์“ฐ์ด๋Š” ๊ธฐ์ดˆ์ ์ธ ๋‹จ์œ„์ธ ๋…ธ๋“œ(node)๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋…ธ๋“œ๋Š” ์ดํ›„ DOM์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ์š”์†Œ๊ฐ€ ๋œ๋‹ค.
  5. ์ด๋Ÿฌํ•œ ๋…ธ๋“œ๋“ค์€ body ํƒœ๊ทธ ์•ˆ์— div๋ฅผ ๋„ฃ๊ณ  ๊ทธ ์•ˆ์— ๋˜ p๋ฅผ ๋„ฃ๋“ฏ์ด ์ค‘์ฒฉ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ์ค‘์ฒฉ ๊ด€๊ณ„์— ์˜ํ•ด ๋ถ€์ž๊ด€๊ณ„๊ฐ€ ํ˜•์„ฑ๋œ๋‹ค. ๋ถ€์ž๊ด€๊ณ„๋ฅผ ๋ฐ˜์˜ํ•˜์—ฌ ๋ชจ๋“  ๋…ธ๋“œ๋“ค์„ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.

CSSํŒŒ์‹ฑ๊ณผ CSSOM(CSS Object Model) ์ƒ์„ฑ

5.png

๋ Œ๋”๋ง ์—”์ง„์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•œ ์ค„์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ํŒŒ์‹ฑํ•˜๋ฉฐ DOM์„ ์ƒ์„ฑํ•˜๋Š”๋ฐ, ์ค‘๊ฐ„์— CSS๋ฅผ ๋กœ๋“œํ•˜๋Š” link๋‚˜ style ํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๋ฉด DOM ์ƒ์„ฑ์„ ์ผ์‹œ ์ค‘๋‹จํ•œ๋‹ค.

๊ทธ ํ›„ CSS ํŒŒ์ผ์„ ์„œ๋ฒ„์— ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต๋ฐ›์€ CSS ํŒŒ์ผ์„ HTML๊ณผ ๋™์ผํ•œ ํŒŒ์‹ฑ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉฐ ํ•ด์„ํ•ด CSSOM์„ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  CSS ํŒŒ์‹ฑ์ด ์™„๋ฃŒ๋˜๋ฉด HTML ํŒŒ์‹ฑ์ด ์ค‘๋‹จ๋œ ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐ€ ๋‹ค์‹œ HTML์„ ํŒŒ์‹ฑํ•œ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ์—”์ง„

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

์›น ์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , HTML, CSS, JS ๋ฐ ๊ธฐํƒ€ ์›น ๊ธฐ์ˆ ์„ ํŒŒ์‹ฑํ•˜๊ณ , ์‚ฌ์šฉ์ž ์žฅ์น˜์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๋ Œ๋”๋ง ์—”์ง„

์›น ์ฝ˜ํ…์ธ ์˜ ๋ Œ๋”๋ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์˜ ํŠน์ • ๊ตฌ์„ฑ ์š”์†Œ์ด๋‹ค. HTML ๋ฐ CSS ์ฝ”๋“œ ๊ตฌ๋ฌธ ๋ถ„์„, DOM ํŠธ๋ฆฌ ๋ฐ CSSOM ์ƒ์„ฑ, ํŽ˜์ด์ง€์— ์š”์†Œ ๋ฐฐ์น˜ ๋ฐ ์Šคํƒ€์ผ ์ง€์ •, ์ตœ์ข…์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์žฅ์น˜์— ํŽ˜์ด์ง€ ๋ Œ๋”๋ง์„ ๋‹ด๋‹นํ•œ๋‹ค.

๊ฒฐ๊ณผ: ๋ Œ๋”๋ง ์—”์ง„์€ ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์— ํฌํ•จ๋˜๋Š” ๊ฐœ๋…์ธ ๊ฒƒ ๊ฐ™๋‹ค!

๋ Œ๋” ํŠธ๋ฆฌ

6.png

๋ Œ๋”๋ง ํŠธ๋ฆฌ ๊ตฌ์ถ•

  • DOM ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋…ธ๋“œ๋งŒ ๋‚จ๊ธฐ๋Š”๋ฐ ์ด๋•Œ ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ๋‚˜ ๋ฉ”ํƒ€ ํƒœ๊ทธ ๊ฐ™์€ ์š”์†Œ๋Š” ๋ Œ๋”๋ง์— ๋ฐ˜์˜๋˜์ง€ ์•Š๊ณ , css์˜ display: none; ์†์„ฑ๋„ ๋ Œ๋”๋ง ํŠธ๋ฆฌ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” (โš ๏ธ visibility: hidden;์€ ๋ณด์ด์ง€๋Š” ์•Š์ง€๋งŒ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ Œ๋”๋ง ํŠธ๋ฆฌ์— ํฌํ•จ)
  • ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š” ๋ชจ๋“  ๋…ธ๋“œ์˜ ์ปจํ…์ธ  ๋ฐ ์Šคํƒ€์ผ ์ •๋ณด๋“ค์„ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ Œ๋”๋ง ํŠธ๋ฆฌ๊ฐ€ ์ตœ์ข…์ ์œผ๋กœ ๊ตฌ์ถ•๋œ๋‹ค.

๋ Œ๋”๋ง ํŠธ๋ฆฌ ๋ฐฐ์น˜

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

๋ Œ๋”๋ง ํŠธ๋ฆฌ ๊ทธ๋ฆฌ๊ธฐ

  • ์ด ๊ณผ์ •์—์„œ ์Šคํƒ€์ผ์ด ๋ณต์žกํ•  ์ˆ˜๋ก ํŽ˜์ธํŒ…์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ Œ๋”๋ง ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋˜๋ฉฐ ๋งŒ์•ฝ DOM์ด๋‚˜ CSSOM์ด ์ˆ˜์ •๋˜๋ฉด ํ™”๋ฉด์— ๋‹ค์‹œ ๋ Œ๋”๋งํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ํ”ฝ์…€์„ ํŒŒ์•…ํ•˜๋ ค๋ฉด, ์ „๋ถ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐ˜๋ณตํ•ด์•ผํ•œ๋‹ค.

โœ‹ Render Tree์™€ DOM Tree์˜ ์ฐจ์ด์ 

  • Render Tree๋Š” DOM๊ณผ CSSOM์„ ํ•ฉํ•œ ํ›„์— ์ตœ์ข…์ ์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ๊ธฐํ•  ๋…ธ๋“œ๋“ค๋งŒ ์„ ๋ณ„๋˜์–ด ํŠธ๋ฆฌ๊ฐ€ ์ƒ์„ฑ์ด ๋œ๋‹ค.
  • Render Tree๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์ด์ง€๋งŒ, DOM์€ ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค
  • ๋ทฐํฌํŠธ์— ๋ฌด์—‡์„ ๋ Œ๋”๋งํ• ์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด DOM์ด๊ณ  Render Tree๋Š” ๋ทฐํฌํŠธ์— ๋ฌด์—‡์„ ๋ Œ๋”๋งํ• ์ง€ ๊ฒฐ์ •๋œ ์ตœ์ข…์ ์ธ ํŠธ๋ฆฌ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ์ฒ˜๋ฆฌ ๋ฐฉ์‹

DOM API๋Š” DOM์˜ ๊ฐ ๋…ธ๋“œ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค, ๋˜๋Š” HTML์„ JS์—์„œ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น๋“ค์˜ ์ง‘ํ•ฉ์ด๋ฉฐ ๋Œ€ํ‘œ์ ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” document.querySelector() ๋“ฑ์„ ์˜ˆ๋กœ ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ DOM API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฏธ ์ƒ์„ฑ๋œ DOM์„ ๋™์ ์œผ๋กœ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

CSS๋ฅผ ํŒŒ์‹ฑํ• ๋•Œ DOM ์ƒ์„ฑ์„ ๋ฉˆ์ถ”๊ณ  CSSOM์„ ์ƒ์„ฑํ•œ ๊ฒƒ์ฒ˜๋Ÿผ script ํƒœ๊ทธ๋„ ๋™์ผํ•˜๋‹ค. ํ•˜์ง€๋งŒ CSSOM์€ ๋ Œ๋”๋ง ์—”์ง„์ด ๋งŒ๋“ค์—ˆ๊ณ , script๋Š” ๋ Œ๋”๋ง ์—”์ง„์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์—๊ฒŒ ์ œ์–ด๋ฅผ ๋„˜๊ฒจ์„œ HTML ํŒŒ์‹ฑ์ด ์ค‘๋‹จ๋œ ์‹œ์ ๋ถ€ํ„ฐ ๋‹ค์‹œ DOM ์ƒ์„ฑ์„ ์‹œ์ž‘ํ•œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ์ฒ˜๋ฆฌ ์ˆœ์„œ

  1. ํ† ํฐํ™”(Tokenization): ์ฝ”๋“œ๋ฅผ ํ† ํฐ ๋‹จ์œ„(๋ณ€์ˆ˜, ํ‚ค์›Œ๋“œ, ์—ฐ์‚ฐ์ž ๋“ฑ์˜ ์˜๋ฏธ ์žˆ๋Š” ๋‹จ์œ„)๋กœ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •
  2. ํŒŒ์‹ฑ(Parsing): ํ† ํฐ์„ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ ๋˜๋Š” AST(์ฝ”๋“œ์˜ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํŠธ๋ฆฌ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ณผ์ •)๋กœ ๋ณ€ํ™˜
  3. ์ปดํŒŒ์ผ(Compilation): ์ผ๋ถ€ ์—”์ง„์€ AST๋ฅผ ์ค‘๊ฐ„ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•˜๋Š”๋ฐ ์ด ๋‹จ๊ณ„์—์„œ ์ตœ์ ํ™”๊ฐ€ ์ˆ˜ํ–‰๋˜๊ธฐ๋„ ํ•จ
  4. ์‹คํ–‰(Execution)
    • ํŒŒ์‹ฑ๋œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‹จ๊ณ„๋กœ, ์—”์ง„์€ ํŒŒ์‹ฑ๋œ AST๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•จ
    • ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•˜๊ณ , ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์„ ์‹คํ–‰ํ•˜๋Š” ๋“ฑ์ด ํฌํ•จ๋˜๊ณ , ์‹คํ–‰ ๋‹จ๊ณ„์—์„œ๋Š” ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•จ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฆฌํ”Œ๋กœ์šฐ, ๋ฆฌํŽ˜์ธํŠธ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์— DOM์ด๋‚˜ CSSOM์„ ๋ณ€๊ฒฝํ•˜๋Š” DOM API๊ฐ€ ์‚ฌ์šฉ๋œ ๊ฒฝ์šฐ DOM์ด๋‚˜ CSSOM์ด ๋ณ€๊ฒฝ๋œ๋‹ค. ๋ณ€๊ฒฝ๋œ DOM๊ณผ CSSOM์€ ๋‹ค์‹œ ๋ Œ๋” ํŠธ๋ฆฌ๋กœ ๊ฒฐํ•ฉ๋˜๋ฉฐ ๋ฆฌ๋ Œ๋”๋ง์ด ๋˜๋Š”๋ฐ ์ด๊ฒƒ์„ ๋ ˆ์ด์•„์›ƒ์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ด์ฃผ๋Š” ๋ฆฌํ”Œ๋กœ์šฐ ์™€ ์žฌ๊ฒฐํ•ฉ๋œ ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์‹œ ํŽ˜์ธํŠธ ํ•ด์ฃผ๋Š” ๋ฆฌํŽ˜์ธํŠธ๊ฐ€ ์žˆ๋‹ค.

7.png

๋ฆฌํ”Œ๋กœ์šฐ(Reflow)

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

  • ์š”์†Œ์˜ ํฌ๊ธฐ, ์œ„์น˜, ํ˜น์€ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ
  • ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋กค์„ ํ•˜๋Š” ๊ฒฝ์šฐ
  • ์š”์†Œ์˜ ์ถ”๊ฐ€, ์ œ๊ฑฐ, ์ˆจ๊น€, ๋ณด์ž„๊ณผ ๊ฐ™์€ ๋ ˆ์ด์•„์›ƒ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ
  • CSS ์†์„ฑ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฒฝ์šฐ

๋ฆฌํŽ˜์ธํŠธ(Repaint)

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

  • ์š”์†Œ์˜ ์ƒ‰์ƒ, ํˆฌ๋ช…๋„, ๊ทธ๋ฆผ์ž ๋“ฑ์˜ ์Šคํƒ€์ผ ์†์„ฑ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ.
  • ์š”์†Œ์˜ ํด๋ž˜์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ์Šคํƒ€์ผ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ.
  • ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์ด ํ™œ์„ฑํ™”๋˜๊ฑฐ๋‚˜ ์ˆจ๊ฒจ์ง„ ์š”์†Œ๊ฐ€ ๋‹ค์‹œ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ.

๋งˆ๋ฌด๋ฆฌ

์‚ฌ์‹ค ์—ฌ๊ธฐ์„œ ์›น ๋ Œ๋”๋ง ๋ฐฉ์‹(CSR, SSR ๋“ฑ) ์— ๋Œ€ํ•œ ๊ฒƒ๊ณผ React Virtual DOM์— ๋Œ€ํ•ด์„œ๋„ ๊ธฐ๋กํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋‹ˆ ๋ธŒ๋ผ์šฐ์ € ์ž์ฒด์˜ ๋ Œ๋”๋ง ๋ฐฉ์‹๋„ ์•Œ์•„์•ผ ํ•  ๊ฒƒ๋“ค์ด ๋งŽ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์ฃผ์ œ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ๊ธฐ๋ก, ๊ณต๋ถ€ํ•  ์˜ˆ์ •์ด๋‹ค.

8.png

9.png

๋ธŒ๋ผ์šฐ์ €์— ๊ด€ํ•ด์„œ ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด๋ฉด์„œ Javascript ์–ธ์–ด๋กœ ๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ๋ Œ๋”๋ง์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ ์ž˜ ์•Œ๊ณ  ์žˆ์–ด์•ผ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ, ๋ฆฌ ๋ Œ๋”๋ง์—๊นŒ์ง€ ์ƒ๊ฐํ•˜์ง€๋Š” ๋ชปํ•˜๊ณ  ๊ธ‰๊ธ‰ํ•˜๊ฒŒ ๋ Œ๋”๋ง์ด๋ผ๋Š” 1์ฐจ ๋ชฉํ‘œ๋งŒ ๋‹ค๋ค˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. React์—์„œ hook์„ ๋‹ค๋ฃจ๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฃฐ์ˆ˜๋ก ์ž‘๋™, ํ˜ธ์ถœ ๋ฐฉ์‹์— ์‹ ๊ฒฝ์„ ์จ์•ผ ๋˜๋Š”๋ฐ ์ข‹์€ ๊ฐœ๋ฐœ์ž(์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”)๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ ์–ด๋–ค ๊ฒƒ์— ๊ด€์‹ฌ์„ ๋‘์–ด์•ผ ํ• ๊นŒ๋ฅผ ์ƒ๊ฐํ•ด๋ณผ ์ข‹์€ ๊ธฐํšŒ์˜€๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

์œ—๊ธ€์€ 24๋…„ 4์›” 9์ผ์— ๋งˆ๋ฌด๋ฆฌ๋ฅผ ์ง€์—ˆ์ง€๋งŒ, ๋ช‡ ๋ฒˆ ์ฝ์œผ๋ฉด์„œ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง์— ๊ด€ํ•ด ๋‚ด์šฉ์ด ํ•„์š”ํ•˜๋ฉด ๋” ๊ธฐ๋กํ•ด๋ด์•ผ๊ฒ ๋‹ค. ๋ถ„๋ฆฌํ•ด์„œ ์ž‘์„ฑํ•  ํ•„์š”๋ฅผ ๋А๋ผ๋ฉด ๋งํฌ๋ฅผ ๋‚จ๊ฒจ๋†“๊ฒ ๋‹ค!

10.jpeg

 

๋Œ“๊ธ€