์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- mariadb
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๊ฐ๋ฐ์์ทจ์
- ํ๋ ์ ๊ตฌ์กฐ
- i-type
- ๋น์ฃผ๊ธฐ์ ํธ
- git merge
- ์์๋ฒํธ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ฐ๋ถํฌdb
- ํ ํฐ ๋ฒ์ค
- tcp ํ๋กํ ์ฝ
- ํญํด99
- ์ฝ๋ฉํ ์คํธ์ค๋น
- well known ํฌํธ
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- til
- ์ค๋ธ์
- tcp ์ธ๊ทธ๋จผํธ
- reducible
- ์ฃผ๊ธฐ์ ํธ
- leetcode
- ์ค๋ ๋
- 99ํด๋ฝ
- ์ค๋ฅ์ ์ด
- xv6
- ํ๋ก์ด๋์์
- IEEE 802
- ๋ฐ์ดํฐ ์ ์ก
- ์ค๋ฅ๊ฒ์ถ
- Today
- Total
Unfazedโ๏ธ๐ฏ
์น ํ์ด์ง ๋ก๋ ๊ณผ์ / Process of Loading a Web Page ๋ณธ๋ฌธ
์น ํ์ด์ง ๋ก๋ ๊ณผ์ / Process of Loading a Web Page
9taetae9 2024. 1. 10. 04:181. ๋คํธ์ํฌ ์์ฒญ
URL ๋ถ์: ์ฌ์ฉ์๊ฐ ์ฃผ์์ฐฝ์ ์
๋ ฅํ URL์ ๋ถ์ํ์ฌ ํ๋กํ ์ฝ, ํธ์คํธ ์ด๋ฆ, ๊ฒฝ๋ก, ์ฟผ๋ฆฌ ์คํธ๋ง ๋ฑ์ ํ์
ํ๋ค.
DNS ์กฐํ: ํธ์คํธ ์ด๋ฆ์ IP ์ฃผ์๋ก ๋ณํํ๊ธฐ ์ํด DNS ์๋ฒ์ ์กฐํ๋ฅผ ๋ณด๋ธ๋ค.
TCP ์ฐ๊ฒฐ: DNS ์กฐํ๋ฅผ ํตํด ์ป์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์ TCP ์ฐ๊ฒฐ์ ํ๋ค.
HTTP ์์ฒญ: ์๋ฒ์ HTTP ์์ฒญ ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค. HTTP ์์ฒญ ๋ฉ์์ง๋ ์์ฒญ๋๋ ๋ฆฌ์์ค URL, ํค๋ ์ ๋ณด, ์์ฒญ body(POST ๋ฉ์๋ ์ฌ์ฉ ์) ๋ฑ์ ํฌํจํ๋ค.
*ํด๋น ๋จ๊ณ์์ ๋ธ๋ผ์ฐ์ ๋ ๋จผ์ ์บ์๋ฅผ ํ์ธํ์ฌ ์์ฒญํ ๋ฆฌ์์ค๊ฐ ์บ์์ ์๋์ง ํ์ธํ๋ค. ์บ์์ ์๋ ๊ฒฝ์ฐ, ๋ธ๋ผ์ฐ์ ๋ ์บ์๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ์์ฒญ์ ์ต์ํํ๋ค.
2. ์๋ฒ ์ฒ๋ฆฌ ๋ฐ ์๋ต
์๋ฒ ์ฒ๋ฆฌ: ์๋ฒ๋ ์์ฒญ๋ ๋ฆฌ์์ค๋ฅผ ํ์ธํ๊ณ ์ฒ๋ฆฌํ๋ค.
HTTP ์๋ต: ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ HTTP ์๋ต ๋ฉ์์ง์ ๋ด๊ฒจ ๋ธ๋ผ์ฐ์ ๋ก ์ ์ก๋๋ค. HTTP ์๋ต ๋ฉ์์ง๋ ์๋ต ์ฝ๋, ํค๋ ์ ๋ณด, ์๋ต body(HTML, CSS, JavaScript ํ์ผ ๋ฑ)์ ํฌํจํ๋ค.
3. ํ์ด์ง ๋ ๋๋ง
HTML ํ์ฑ: HTML ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ DOM(Document Object Model) ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
DOM ํธ๋ฆฌ : HTML ๋ฌธ์์ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ ํธ๋ฆฌ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ
CSS ํ์ฑ: CSS ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ CSSOM(CSS Object Model) ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
CSSOM ํธ๋ฆฌ : ์คํ์ผ ๊ท์น์ ๋ํ๋ด๋ ํธ๋ฆฌ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ
๋ ๋ ํธ๋ฆฌ ์์ฑ: DOM ํธ๋ฆฌ์ CSSOM ํธ๋ฆฌ๋ฅผ ๊ฒฐํฉํ์ฌ ๋ ๋ ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
๋ ๋ ํธ๋ฆฌ: ๊ฐ ๋ ธ๋์ ๋ ์ด์์ ์ ๋ณด์ ์คํ์ผ ์ ๋ณด๋ฅผ ํฌํจํจ
๋ ์ด์์ ๊ณ์ฐ: ๋ ๋ ํธ๋ฆฌ์ ๊ฐ ๋
ธ๋์ ๋ํ ์ ํํ ์์น์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ๋ค.
ํ์ธํ
: ๊ฐ ๋
ธ๋๋ฅผ ํ๋ฉด์ ๊ทธ๋ ค ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ ๊ฒ
4. ์ถ๊ฐ ๋ฆฌ์์ค ๋ก๋ฉ
ํ์ด์ง์ ์ด๋ฏธ์ง, CSS ํ์ผ, JavaScript ํ์ผ ๋ฑ์ ์ธ๋ถ ๋ฆฌ์์ค๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ, ๋ธ๋ผ์ฐ์ ๋ ๊ฐ ๋ฆฌ์์ค์ ๋ํด ์ถ๊ฐ์ ์ธ HTTP ์์ฒญ์ ์ ์กํ๋ค. ์ธ๋ถ ๋ฆฌ์์ค๊ฐ ๋ก๋ฉ๋๋ฉด ํ์ด์ง ๋ ๋๋ง ๊ณผ์ ์ ๋ฐ์๋์ด ํ์ด์ง๊ฐ ์์ฑ๋๋ค.
* ํ์ด์ง๋ฅผ ๋ก๋ฉ ๋จ๊ณ์์ ์บ์๋ ๋ฆฌ์์ค๊ฐ ์๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด์ง ์๊ณ ์บ์๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ฅผ ํตํด ํ์ด์ง ๋ก๋ฉ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๊ณ , ์๋ฒ์ ๋ถํ๋ฅผ ์ค์ผ ์ ์๋ค.
5. JavaScript ์คํ (์ ํ ์ฌํญ)
ํ์ด์ง์ JavaScript ์ฝ๋๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ, ๋ธ๋ผ์ฐ์ ์ JavaScript ์์ง์ด ์ฝ๋๋ฅผ ์คํํ๋ค.
JavaScript ์ฝ๋๋ DOM ์์๋ฅผ ์กฐ์ํ๊ฑฐ๋ ํ์ด์ง ๋์์ ์ ์ดํ๋ ์ญํ ์ ํ๋ค.
6. ์ฌ์ฉ์ ์ํธ์์ฉ
ํ์ด์ง๊ฐ ๋ ๋๋ง๋๊ณ JavaScript ์ฝ๋๊ฐ ์คํ๋๋ฉด ์ฌ์ฉ์๋ ํ์ด์ง์ ์ํธ์์ฉํ ์ ์๋ค.
smooth scrolling๊ณผ touch ๋ฐ์์ฑ ๋ฑ ์ฌ์ฉ์ ์ํธ์์ฉ์ ์ฃผ๋ก ๋ธ๋ผ์ฐ์ ์ main thread์ ์ํด ์ ์ด๋๋ค.
JavaScript ์ฝ๋๊ฐ main thread๋ฅผ ์ ์ ํ๋ฉด ์ฌ์ฉ์ ์ํธ์์ฉ์ด ์ง์ฐ๋ ์ ์๋ค.
์ฑ๋ฅ ์ต์ ํ
์น ํ์ด์ง ๋ก๋ฉ ์๋์ ์ฌ์ฉ์ ์ํธ์์ฉ์ ๊ฐ์ ํ๊ธฐ ์ํด์๋ ๋ค์ํ ์ฑ๋ฅ ์ต์ ํ ๊ธฐ๋ฒ์ ํ์ฉํ ์ ์๋ค.
๋คํธ์ํฌ ์์ฒญ ์ต์ํ, ์บ์ฑ ํ์ฉ, ์ฝ๋ ์ต์ ํ, main thread ์ ์ ์๊ฐ ๊ฐ์ ๋ฑ์ด ์ฃผ์ ์ฑ๋ฅ ์ต์ ํ ๊ธฐ๋ฒ์ด๋ค.
์ถ๊ฐ ์ ๋ณด
๋ธ๋ผ์ฐ์ ๋ ๋๋ถ๋ถ single-threaded์ด๋ฉฐ, main thread๊ฐ ์ ์ ๋๋ฉด ์ฌ์ฉ์ ์ํธ์์ฉ์ด ์ง์ฐ๋ ์ ์๋ค.
JavaScript๋ฅผ defer ๋๋ async ์์ฑ์ ์ฌ์ฉํ์ฌ main thread ์ ์ ์๊ฐ์ ์ค์ผ ์ ์๋ค.
๋ ์ด์์ ๋ณ๊ฒฝ์ ์ต์ํํ๊ณ ๋ ์ด์ด๋ฅผ ํ์ฉํ์ฌ ํ์ธํ
์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์๋ค.
references :
https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work
Populating the page: how browsers work - Web performance | MDN
Users want web experiences with content that is fast to load and smooth to interact with. Therefore, a developer should strive to achieve these two goals.
developer.mozilla.org
https://blog.imqa.io/webpage_loading_process/
์น ํ์ด์ง ๋ก๋ฉ ๊ณผ์ ์ดํดํ๊ธฐ
์น ํ์ด์ง ๋ก๋ฉ ๊ณผ์ ์ ๋ํด ์์๋ณด๊ณ ์น ํ์ด์ง ์ฑ๋ฅ ์ต์ ํ์ ๋ํ ๋ ธํ์ฐ๋ฅผ ํ์ธํด ๋ณด์ธ์.
blog.imqa.io
'Web (back-end)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Tomcat์ ๊ตฌ์กฐ, ํ๋ฆ ๋ฐ ์ฉ์ด ๊ฐ๋จ ์ ๋ฆฌ (0) | 2023.12.29 |
---|