ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ฏ prefetchDNS๋ ๋ฌด์์ธ๊ฐ์?
**prefetchDNS**๋ ์นํ์ด์ง๊ฐ ๋ค๋ฅธ ์๋ฒ์ ์ฐ๊ฒฐํด์ผ ํ ๋, ๋ฏธ๋ฆฌ DNS ์กฐํ๋ฅผ ํด๋๋ ๊ธฐ๋ฅ์ด์์.
DNS๋ Domain Name System์ ์ฝ์๋ก,
์ฐ๋ฆฌ๊ฐ ํํ ์
๋ ฅํ๋ **๋๋ฉ์ธ ์ด๋ฆ(์: google.com)**์ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ IP ์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋ ์์คํ
์ด์์.
๐ ๋น์ ๋ก ์ดํดํ๊ธฐ: ๋ค๋น๊ฒ์ด์ ๋ฏธ๋ฆฌ ์ค์ ํ๊ธฐ ๐
์ฌ๋ฌ๋ถ์ด ์ฐจ๋ฅผ ํ๊ณ ์ฌํ์ ๋ ๋๋ค๊ณ ์๊ฐํด ๋ด์!
- DNS ์กฐํ ์์ด ์ถ๋ฐ
- ๋์ฐฉ์ง๋ฅผ ๊ฐ ๋๋ง๋ค ๊ทธ๋๊ทธ๋ ๋ค๋น๊ฒ์ด์ ์ผ๋ก ๊ธธ์ ๊ฒ์ํ๋ค๊ณ ๊ฐ์ ํด์.
- ์๊ฐ์ด ๋ ๊ฑธ๋ฆฌ๊ณ , ์ถ๋ฐํ ๋๋ง๋ค ์ ๊น ๊ธฐ๋ค๋ ค์ผ๊ฒ ์ฃ ?
- prefetchDNS๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
- ์ฌํ์ ๋ ๋๊ธฐ ์ ์ ๊ฐ์ผ ํ ๋ชจ๋ ๋ชฉ์ ์ง์ ๊ธธ์ ๋ฏธ๋ฆฌ ๊ฒ์ํด ๋ก๋๋ค.
- ๊ทธ๋ฌ๋ฉด ๋ชฉ์ ์ง์ ๋์ฐฉํ ๋ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ฐ๋ก ์ถ๋ฐํ ์ ์๊ฒ ์ฃ ?
**prefetchDNS**๋ ์ด์ฒ๋ผ ์นํ์ด์ง๊ฐ ์ฐ๊ฒฐํด์ผ ํ ์๋ฒ ์ฃผ์๋ฅผ ๋ฏธ๋ฆฌ ์ฐพ์์
๋์ค์ ๋น ๋ฅด๊ฒ ์ฐ๊ฒฐํ ์ ์๋๋ก ์ค๋นํด ์ฃผ๋ ๊ธฐ๋ฅ์ด์์.
๐ ๏ธ prefetchDNS ์ฌ์ฉ๋ฒ
prefetchDNS๋ HTML์ <link> ํ๊ทธ๋ฅผ ์ฌ์ฉํด์ ์ค์ ํ ์ ์์ด์.
๋ธ๋ผ์ฐ์ ์๊ฒ **"์ด ์๋ฒ์ DNS๋ฅผ ๋ฏธ๋ฆฌ ํ์ธํด๋ฌ!"**๋ผ๊ณ ์๋ ค์ฃผ๋ ๊ฑฐ์ฃ .
1. ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
<head>
<!-- DNS๋ฅผ ๋ฏธ๋ฆฌ ์กฐํํ ์๋ฒ ์ฃผ์ ์ค์ -->
<link rel="dns-prefetch" href="https://example.com" />
</head>
์ค๋ช :
- rel="dns-prefetch": DNS ์กฐํ๋ฅผ ๋ฏธ๋ฆฌ ํ๊ฒ ๋ค๋ ์๋ฏธ์ ๋๋ค.
- href: DNS๋ฅผ ์กฐํํ ๋์ ์๋ฒ์ ์ฃผ์๋ฅผ ์ ์ต๋๋ค.
2. ์ค์ ์์ : ์ธ๋ถ ๋ฆฌ์์ค๋ฅผ ๋น ๋ฅด๊ฒ ๋ถ๋ฌ์ค๊ธฐ
์๋ฅผ ๋ค์ด, ์ฌ๋ฌ๋ถ์ ์น์ฌ์ดํธ์์ Google Fonts๋ ์ธ๋ถ API๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํด ๋ณผ๊ฒ์.
์ด๋ฐ ๋ฆฌ์์ค๋ฅผ ๋น ๋ฅด๊ฒ ๋ถ๋ฌ์ค๊ธฐ ์ํด DNS๋ฅผ ๋ฏธ๋ฆฌ ์กฐํํ ์ ์์ต๋๋ค.
<head>
<!-- Google Fonts ์๋ฒ์ DNS๋ฅผ ๋ฏธ๋ฆฌ ์กฐํ -->
<link rel="dns-prefetch" href="https://fonts.googleapis.com" />
<link rel="dns-prefetch" href="https://fonts.gstatic.com" />
<!-- ์ธ๋ถ ์ด๋ฏธ์ง CDN ์๋ฒ DNS ๋ฏธ๋ฆฌ ์กฐํ -->
<link rel="dns-prefetch" href="https://cdn.example.com" />
</head>
๐ prefetchDNS์ ์ฅ์
- ํ์ด์ง ๋ก๋ฉ ์๋ ๊ฐ์
- DNS ์กฐํ๋ฅผ ๋ฏธ๋ฆฌ ํด๋๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ์ฐ๊ฒฐํ๋ ์๊ฐ์ ์ ์ฝํ ์ ์์ด์.
- ์ธ๋ถ ๋ฆฌ์์ค ๋ถ๋ฌ์ค๊ธฐ ์ต์ ํ
- ์ธ๋ถ ์๋ฒ(ํฐํธ, ์ด๋ฏธ์ง, API ๋ฑ)์์ ๋ฆฌ์์ค๋ฅผ ๋ ๋น ๋ฅด๊ฒ ๋ถ๋ฌ์ฌ ์ ์์ด์.
- ์ฌ์ฉ์ ๊ฒฝํ ํฅ์
- ํ๋ฉด์ด ๋น ๋ฅด๊ฒ ํ์๋๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ๊ฒฝํ์ด ํจ์ฌ ์ข์์ง๋๋ค.
๐ ์ธ์ ์ฌ์ฉํ ๊น์?
- ์ธ๋ถ ํฐํธ ์ฌ์ฉ ์
- Google Fonts๋ ๋ค๋ฅธ ํฐํธ ์๋น์ค๋ฅผ ์ฌ์ฉํ ๋ DNS๋ฅผ ๋ฏธ๋ฆฌ ์กฐํํ๋ฉด ํฐํธ๊ฐ ๋ ๋นจ๋ฆฌ ๋ก๋ฉ๋ผ์.
- ์ด๋ฏธ์ง๋ ๋์์ CDN ์ฌ์ฉ ์
- ์ธ๋ถ CDN์์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฐ๊ฒฐ ์๊ฐ์ ์ค์ผ ์ ์์ด์.
- ์ธ๋ถ API ์๋ฒ ์์ฒญ ์
- ์ธ๋ถ API ํธ์ถ์ด ์ฆ๋ค๋ฉด, DNS๋ฅผ ๋ฏธ๋ฆฌ ์กฐํํด์ ์ฐ๊ฒฐ ์๋๋ฅผ ๋จ์ถํ ์ ์์ต๋๋ค.
โ ๏ธ ์ฃผ์ํ ์
- ๋ถํ์ํ DNS ์กฐํ๋ ํผํด์ผ ํด์
- ํ์ํ์ง ์์ ์๋ฒ์ DNS๋ฅผ ๋ฏธ๋ฆฌ ์กฐํํ๋ฉด ์คํ๋ ค ์ฑ๋ฅ์ด ๋๋น ์ง ์ ์์ด์.
- ์์ฃผ ์ฐ๊ฒฐํด์ผ ํ๋ ์๋ฒ์๋ง dns-prefetch๋ฅผ ์ฌ์ฉํ์ธ์.
- ์ด๋ฏธ ๋ธ๋ผ์ฐ์ ๊ฐ DNS๋ฅผ ์บ์ํ๋ ๊ฒฝ์ฐ
- ๋ธ๋ผ์ฐ์ ๋ ์์ฃผ ์ ์ํ๋ DNS๋ฅผ ์๋์ผ๋ก ์บ์ฑ(์ ์ฅ)ํ๊ธฐ ๋๋ฌธ์ ๊ผญ ํ์ํ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ๋ฉด ๋ผ์.
๐ prefetchDNS์ preconnect ์ฐจ์ด์
- dns-prefetch: DNS ์กฐํ๋ง ๋ฏธ๋ฆฌ ์ค๋นํด์.
- preconnect: DNS ์กฐํ + ๋ณด์ ์ฐ๊ฒฐ(SSL)๊น์ง ๋ชจ๋ ๋ฏธ๋ฆฌ ์ค๋นํด์.
๊ฐ๋จํ ๋งํ๋ฉด **preconnect**๊ฐ ๋ ๋ง์ ์ค๋น๋ฅผ ํ์ง๋ง, **dns-prefetch**๋ ๊ฐ๋ณ๊ฒ DNS๋ง ์กฐํํด์.
๐ ํ ์ค ์์ฝ
**prefetchDNS**๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ DNS๋ฅผ ๋ฏธ๋ฆฌ ํ์ธํด์ ๋์ค์ ๋ ๋น ๋ฅด๊ฒ ์ฐ๊ฒฐํ ์ ์๋๋ก ์ค๋นํ๋ ๊ธฐ๋ฅ์ด์์.
๐ ๋ง๋ฌด๋ฆฌ
prefetchDNS๋ ๊ฐ๋จํ์ง๋ง ์นํ์ด์ง์ ๋ก๋ฉ ์๋๋ฅผ ์กฐ๊ธ ๋ ๋น ๋ฅด๊ฒ ๋ง๋ค์ด์ฃผ๋ ๋ฉ์ง ๋๊ตฌ์์!
์ธ๋ถ ํฐํธ, ์ด๋ฏธ์ง, API ์๋ฒ๋ฅผ ์ฌ์ฉํ ๋ ์ ์ ํ ํ์ฉํ๋ฉด ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ ์ ์๋ต๋๋ค. ๐
'web > react dom' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
preconnect (2) | 2024.12.16 |
---|---|
hydrate (0) | 2024.12.16 |
findDOMNode (0) | 2024.12.16 |
flushSync (0) | 2024.12.16 |
createPortal (0) | 2024.12.16 |
- Total
- Today
- Yesterday
- experimental
- ์ธ๋ถํฐํธ
- state
- dns-prefetch
- react dom
- ๋ฐ์ดํฐ์ ์ง
- react
- preconnect
- useinsertioneffect
- experimental_taintobjectreference
- finddomnode
- ์ํ๊ด๋ฆฌ
- flushsync
- component
- ์ต์ ๋ฐ์ดํฐ
- useformstatus
- prefetchdns
- ๋ฒ ํ
- useid
- react hook
- Store
- ์ ์ฅ์
- Nextjs
- useRef
- zustand
- Props
- react dom hook
- usedeferredvalue
- experimental_taintuniquevalue
- ์คํ์
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |