๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Web

[Web] ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•˜๋ฉด ์ผ์–ด๋‚˜๋Š” ์ผ

๋งŒ์•ฝ Naver ํ™ˆํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์šฐ๋ฆฌ๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ์ฐฝ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅ์„ ํ•˜๋Š”๋ฐ ์ด๋•Œ ์–ด๋–ค ๊ณผ์ •์„ ํ†ตํ•ด์„œ Naver์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์„๊นŒ?

 

๋จผ์ € ๊ทธ๋ฆผ์œผ๋กœ๋งŒ ํ‘œํ˜„ํ•ด๋ณด์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ์ฃผ์†Œ(www.naver.com)๋Š” ์›น ์ƒ์—์„œ ์‚ฌ๋žŒ๋“ค์ด ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋„๋ฉ”์ธ์ด๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ํ•ด๋‹น ํ™ˆํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฒฐ๊ตญ ์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋Š” ๊ณณ์˜ IP๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Enter๋ฅผ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด ๋จผ์ € ์šฐ๋ฆฌ์˜ PC์— ์กด์žฌํ•˜๋Š” Hosts ํŒŒ์ผ์„ ์‚ดํŽด๋ณธ๋‹ค. ๋„๋ฉ”์ธ๊ณผ IP๊ฐ€ ๋งคํ•‘๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด DNS๋ฅผ ํ†ตํ•ด IP์ฃผ์†Œ๋ฅผ ๋ฐ›์•„์™€์•ผ ํ•œ๋‹ค.

DNS (Domain Name System)
์›น ์‚ฌ์ดํŠธ์˜ IP์ฃผ์†Œ์™€ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ์ด์–ด์ฃผ๋Š” ์‹œ์Šคํ…œ
- ๊ณ„์ธต์  ๊ตฌ์กฐ๋กœ ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ƒ์œ„ ๋„๋ฉ”์ธ์€ ๊ทธ ํ•˜์œ„ ๋„๋ฉ”์ธ์„ ๊ด€๋ฆฌํ•˜๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ ํ˜•ํƒœ์ด๋‹ค.
- ๊ธฐ๋ณธ์ ์œผ๋กœ DNS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉฐ UDP๋ฐฉ์‹์ด๋‹ค.
- Default ํฌํŠธ๋Š” 53๋ฒˆ์ด๋‹ค.

DNS ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜จ IP๋ฅผ ๋ฐ›์•„์˜ฌ ๋•Œ Root DNS ์„œ๋ฒ„๋ถ€ํ„ฐ ํ•˜์œ„์˜ ๋„๋ฉ”์ธ์œผ๋กœ ๊ณ„์† ์ฐพ๊ฒŒ ๋˜๋Š”๋ฐ ๊ฐ™์€ ๋„๋ฉ”์ธ์— ์ ‘๊ทผํ•  ๋•Œ ์ด๋Ÿฐ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๋น„ํšจ์œจ์ ์ด๊ณ  DNS ์„œ๋ฒ„์— ๋ถ€ํ•˜๋ฅผ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— Cacheํ•˜๊ฒŒ ๋œ๋‹ค. ๋งŒ๋ฃŒ์‹œ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒ ์ง€๋งŒ ์ตœ๊ทผ์— ๋ฐฉ๋ฌธํ•œ ์ฃผ์†Œ์˜ ๊ฒฝ์šฐ ์ด ์บ์‹œ๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

 

IP ์ฃผ์†Œ๋ฅผ ์•Œ๊ฒŒ ๋˜๊ณ  ํ•ด๋‹น ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ํ•˜๊ธฐ ์œ„ํ•ด TCP ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•œ๋‹ค.(HTTP ๊ธฐ๋ฐ˜์ด๋ฏ€๋กœ)

TCP ์—ฐ๊ฒฐ์ด ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๊ณ  request๊ฐ€ ๋‚ ๋ผ๊ฐ€๊ณ  ์„œ๋ฒ„์—์„œ๋Š” ์š”์ฒญ์— ๋”ฐ๋ฅธ response๋ฅผ ๋ฐ›์•„์˜จ๋‹ค.

 

 

๐Ÿ–ฅ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š”!

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

 

DOM ํŠธ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ณผ์ •์„ ๋ณด๋ฉด HTML์„ ์ฝ๊ณ , ํ† ํฐํ™”, ๋ ‰์‹ฑ์„ ๊ฑฐ์น˜๊ณ  ์ƒํ•˜๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋ฉฐ ํŠธ๋ฆฌ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

ํ† ํฐํ™”๋Š” ๋งˆํฌ์—…์„ "start tag", "end tag", "text" ๋“ฑ๊ณผ ๊ฐ™์€ ๊ฐœ๋ณ„ ํ† ํฐ์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

 

๋ ‰์‹ฑ์€ ํ† ํฐ์„ ํ•ด๋‹น ์†์„ฑ๊ณผ ๊ทœ์น™์„ ์ •์˜ํ•˜๋Š” ๋…ธ๋“œ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

 

๋ ‰์‹ฑ์„ ํ†ตํ•ด ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฌผ์ธ ๋…ธ๋“œ ๊ฐ์ฒด๋“ค์˜ ์ƒํ•˜ ๊ด€๊ณ„๊ฐ€ ๋งบ์–ด์ง€๋ฉด์„œ DOM ํŠธ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค

 

์ด์™€ ๊ฑฐ์˜ ๋™์ผํ•œ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉฐ CSSOM๋„ ์ƒ์„ฑ๋œ๋‹ค.

 

์ƒ์„ฑ๋œ DOM๊ณผ CSSOM์€ ๊ฒฐํ•ฉ๋˜์–ด Render ํŠธ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

1. DOM ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š” ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. ์ด๋•Œ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๋…ธ๋“œ, CSS์— ์˜ํ•ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ์š”์†Œ๋“ค์€ Render ํŠธ๋ฆฌ์— ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค.
2. ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š” ๊ฐ ๋…ธ๋“œ์— ๋Œ€ํ•ด ์ ์ ˆํ•˜๊ฒŒ ์ผ์น˜ํ•˜๋Š” CSSOM ๊ทœ์น™์„ ์ฐพ์•„ ์ ์šฉํ•œ๋‹ค.
3. ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š” ๋…ธ๋“œ๋ฅผ ์ฝ˜ํ…์ธ  ๋ฐ ๊ณ„์‚ฐ๋œ ์Šคํƒ€์ผ๊ณผ ํ•จ๊ป˜ ๋‚ด๋ณด๋‚ธ๋‹ค.

๋ Œ๋” ํŠธ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ๋ทฐํฌํŠธ์— ๋ Œ๋” ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ๊ฐ€ ์ •ํ™•ํ•œ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ณผ์ •์„ Layout(Reflow)๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋•Œ ๋ชจ๋“  ์ƒ๋Œ€์ ์ธ ๋‹จ์œ„์€ ์ ˆ๋Œ€์ ์ธ ํ”ฝ์…€ ๋‹จ์œ„๋กœ ๋ณ€ํ™˜๋œ๋‹ค. ์ดํ›„ ๊ฐ ๋…ธ๋“œ๋ฅผ ํ™”๋ฉด์˜ ์‹ค์ œ ํ”ฝ์…€๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๊ณผ์ •์„ Painting(rasterizing)๋ผ๊ณ  ํ•œ๋‹ค. Painting ๊ณผ์ •์ด ์ด๋ฃจ์–ด์ง€๋ฉด ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์— UI๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋œ๋‹ค.

 

 

 

๐Ÿ“š ์ฐธ๊ณ 

https://www.youtube.com/watch?v=GAyZ_QgYYYo 

https://hwan-shell.tistory.com/320

 

DNS์— ๋Œ€ํ•œ ์„ค๋ช…(๋””ํ…Œ์ผ ํ•˜๊ฒŒ....)

DNS๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?? Domain Name System์˜ ์•ฝ์ž๋กœ ์ธํ„ฐ๋„ท ์ฃผ์†Œ์ฐฝ์— Host Domain Name์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ(ex, naver.com, google.com ๋“ฑ..) ํ•ด๋‹น ๋ฌธ์ž๋ฅผ IP์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•ด ์ฃผ๋Š” ์‹œ์Šคํ…œ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” URL์ฐฝ์— Host Domain Name

hwan-shell.tistory.com

https://www.youtube.com/watch?v=sJ14cWjrNis 

https://yceffort.kr/2021/11/jorney-from-tags-to-dom

 

Home

yceffort

yceffort.kr

https://poiemaweb.com/js-browser

 

Javascript Environment | PoiemaWeb

๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ์šด์˜์ฒด์ œ(Operating System, OS) ์œ„์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ HTML, CSS์™€ ํ•จ๊ป˜ ์‹คํ–‰๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•  ๋•Œ ๋ณด๋‹ค

poiemaweb.com

https://beomy.github.io/tech/browser/browser-rendering/

 

[Browser] ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ™”๋ฉด์„ ๋ Œ๋”๋ง ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

beomy.github.io

 

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

[Web] CORS  (0) 2023.05.18
[Web] Socket, WebSocket (์†Œ์ผ“๊ณผ ์›น์†Œ์ผ“)  (2) 2023.03.14
[Web] JWT  (0) 2023.02.25
[Web] Webpack  (0) 2023.02.22