minTech

[JavaScript] ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ์›๋ฆฌ ๋ณธ๋ฌธ

JavaScript

[JavaScript] ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ์›๋ฆฌ

pushzzeong 2024. 1. 12. 17:53

๐Ÿซธ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ์›๋ฆฌ์— ๋Œ€ํ•ด ์•Œ๊ธฐ ์ „์—

โ˜๏ธ ๋ธŒ๋ผ์šฐ์ €๋ž€(browser)? 

์ธํ„ฐ๋„ท์—์„œ ์›น ์„œ๋ฒ„์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ , ๋ฌธ์„œ ๊ฒ€์ƒ‰์„ ๋„์™€์ฃผ๋Š” ์‘์šฉ  ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. 

์šฐ๋ฆฌ๋Š” ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ ๊ตฌ๊ธ€์ด๋‚˜ ๋„ค์ด๋ฒ„์— ์ ‘์†ํ•œ๋‹ค. ํ•ด๋‹น ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ๋ฅผ

'๋ธŒ๋ผ์šฐ์ €'๋ผ๊ณ  ํ•œ๋‹ค.  

 

โœŒ๏ธ๋ Œ๋”๋ง(Rendering)์ด๋ž€

์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ HTML, CSS, JavaScript๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ์„ ๋ฐ›์•„ ๋ธŒ๋ผ์šฐ์ €์— ์‹œ๊ฐ์ ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

 

 

๐Ÿ‘ฉ‍๐ŸŽจ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •์˜ ๋Œ€๋žต์ ์ธ ๊ทธ๋ฆผ

์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” URL์„ ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜ ๊ณผ์ •์œผ๋กœ ๋ Œ๋”๋ง์„ ์ง„ํ–‰ํ•œ๋‹ค. 

client๊ฐ€ ์„œ๋ฒ„์— ์ฃผ์†Œ๋ฅผ ๋ณด๋‚ด๋ฉด sever์—์„œ๋Š” ํ•ด๋‹น HTML ํŒŒ์ผ๋กœ ์‘๋‹ต์„ ํ•œ๋‹ค. CSS ํŒŒ์ผ๊ณผ  JSํŒŒ์ผ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ client์—์„œ ํŒŒ์ผ ์š”์ฒญ์ด ์ด๋ฃจ์–ด์งˆ ๊ฒฝ์šฐ ์š”์ฒญ์— ๋งž๊ฒŒ ํŒŒ์ผ์„ ๋ณด๋‚ธ๋‹ค. 

 

 

 

๐Ÿคท‍โ™‚๏ธ๋ Œ๋”๋ง ์ˆœ์„œ

๋ Œ๋”๋ง์˜ ์ˆœ์„œ๋Š” ํฌ๊ฒŒ Construction๊ณผ Operation์˜ ๋‹จ๊ณ„๋กœ ๋‚˜๋‰˜์–ด์ง„๋‹ค.

 

1. ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

Loader๊ฐ€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๋ฆฌ์†Œ์Šค ์ŠคํŠธ๋ฆผ์„ ์ฝ๋Š”๋‹ค. 

 

2. HTML ํŒŒ์‹ฑ๊ณผ DOM ์ƒ์„ฑ

  1. ์„œ๋ฒ„๋Š” HTML์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ ํ›„์— ๋ฐ”์ดํŠธ๋กœ ์‘๋‹ตํ•œ๋‹ค.
  2. ๋ฐ”์ดํŠธ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ํ† ๊ทผ ๋‹จ์œ„๋กœ ๋ถ„ํ•ดํ•œ๋‹ค. 
  3. ๋ถ„ํ•ด๋œ ํ† ํฐ๋“ค์„ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋…ธํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  4. ์ด๋Ÿฌํ•œ ๋…ธ๋“œ๋“ค์€ ํŠธ๋ฆฌ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•˜๋ฉฐ, ์ด ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ 'DOM'์ด๋‹ค. (๋ชจ๋“  ๋…ธ๋“œ๋“ค์€ ์ค‘์ฒฉ๊ด€๊ณ„์— ์˜ํ•ด ํŠธ๋ฆฌ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ)

3. CSSOM ์ƒ์„ฑ

  1. ๋ Œ๋”๋ง ์—”์ง„์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•œ ์ค„์”ฉ ํŒŒ์‹ฑ์„ ์ง„ํ–‰ํ•˜๋ฉฐ DOM์„ ์ƒ์„ฑํ•œ๋‹ค.
  2.  DOM์„ ์ƒ์„ฑํ•˜๋‹ค๊ฐ€ CSS๋ฅผ ๋กœ๋“œํ•˜๋Š” ํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉด DOM ์ƒ์„ฑ์„ ์ผ์‹œ ์ค‘๋‹จํ•œ ํ›„, CSSOM ์ƒ์„ฑ์„ ์ง„ํ–‰ํ•œ๋‹ค. 
  3. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ, CSSOM์„ ์ƒ์„ฑํ•œ๋‹ค. 

4. ๋ Œ๋”ํŠธ๋ฆฌ๋กœ ๊ฒฐํ•ฉ

 - ๋ Œ๋”๋ง์„ ์œ„ํ•ด DOM๊ณผ CSSOM์€ ๋ Œ๋”ํŠธ๋ฆฌ๋กœ ๊ฒฐํ•ฉ๋œ๋‹ค.

 - ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ํ† ๋Œ€๋กœ ๊ทธ๋ ค์งˆ ๋…ธ๋“œ์™€ ์Šคํƒ€์ผ, ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. 

 

์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ construction ๋‹จ๊ณ„์ด๋‹ค. ์•„๋ž˜๋Š” Operation ๋‹จ๊ณ„์ด๋‹ค. 

 

 

5. ๊ทธ๋ฆฌ๊ธฐ 

๋ Œ๋”ํŠธ๋ฆฌ์˜ ๊ฐ ๋…ธ๋“œ๋ฅผ ์‹ค์ œ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ ํ›„ ์‹ค์ œ ๊ทธ๋ฆฌ๋Š” ์ž‘์—…์„ ์‹คํ–‰ํ•œ๋‹ค. ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ฆฌ๋ Œ๋”๋ง์ด ์ด๋ฃจ์–ด์ง„๋‹ค. 

 

 

๐Ÿ”ง๋ฆฌ๋ Œ๋”๋ง

๋ฆฌ๋ Œ๋”๋ง์€ ํŠน์ • ์ƒํ™ฉ ๋ฐœ์ƒ ์‹œ ๋ฆฌํ”Œ๋กœ์šฐ์™€ ๋ฆฌํŽ˜์ธํŠธ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค. 

  • ๋ฆฌํ”Œ๋กœ์šฐ : ๋ ˆ์ด์•„์›ƒ ๊ณ„์‚ฐ์„ ๋‹ค์‹œ ํ•˜๋Š” ๊ฒƒ
  • ๋ฆฌํŽ˜์ธํŠธ : ์žฌ๊ฒฐํ•ฉ๋œ ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์‹œ ํŽ˜์ธํŠธ๋ฅผ ํ•˜๋Š” 
1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•œ ๋…ธ๋“œ ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œ
2. ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฆฌ์‚ฌ์ด์ง•์— ์˜ํ•œ ๋ทฐํฌํŠธ ํฌ๊ธฐ ๋ณ€๊ฒฝ
3. HTML ์š”์†Œ์˜ ๋ ˆ์ด์•„์›ƒ์— ๋ณ€๊ฒฝ์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์Šคํƒ€์ผ ๋ณ€๊ฒฝ