preconnect๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜๋Š” ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

preconnect("https://example.com");

๋ ˆํผ๋Ÿฐ์Šค

preconnect(href)

ํ˜ธ์ŠคํŠธ์— ๋ฏธ๋ฆฌ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด, react-dom์—์„œ preconnect๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

import { preconnect } from 'react-dom';

function AppRoot() {
preconnect("https://example.com");
// ...
}

์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

preconnect๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•ด๋‹น ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ์„ ๋งบ์–ด์•ผ ํ•œ๋‹ค๋Š” ํžŒํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•ด๋‹น ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•˜๋ฉด, ํ•ด๋‹น ์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์†๋„๊ฐ€ ๋นจ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜

  • href: ๋ฌธ์ž์—ด. ์—ฐ๊ฒฐํ•  ์„œ๋ฒ„์˜ URL์ž…๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

preconnect๋Š” ์•„๋ฌด ๊ฐ’๋„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฃผ์˜ ์‚ฌํ•ญ

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

์‚ฌ์šฉ๋ฒ•

๋ Œ๋”๋ง ์‹œ ์‚ฌ์ „ ์—ฐ๊ฒฐ

์ž์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•ด๋‹น ํ˜ธ์ŠคํŠธ์—์„œ ์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋กœ๋“œํ•  ๊ฒƒ์ž„์„ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด, ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ preconnect๋ฅผ ํ˜ธ์ถœํ•˜์„ธ์š”.

import { preconnect } from 'react-dom';

function AppRoot() {
preconnect("https://example.com");
return ...;
}

์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ ์‚ฌ์ „ ์—ฐ๊ฒฐ

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

import { preconnect } from 'react-dom';

function CallToAction() {
const onClick = () => {
preconnect('http://example.com');
startWizard();
}
return (
<button onClick={onClick}>Start Wizard</button>
);
}