์ด ํ์ด์ง์ ์ํ๋ AI ์ด์์คํดํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์๋ฅผ ์์ฝํฉ๋๋ค
์ด ํ์ด์ง์ ์ฝํ ์ธ ๋ AI๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ์ญ๋์์ต๋๋ค.
์์ด ์๋ณธ ๋ด์ฉ์ ์ต์ ๋ฒ์ ์ ๋ณด๊ธฐ์ด ๋ฌธ์๋ฅผ ๊ฐ์ ํ ์์ด๋์ด๊ฐ ์์ผ์๋ฉด GitHub์ ํ ๋ฆฌํ์คํธ๋ฅผ ์ ์ถํ์ฌ ์์ ๋กญ๊ฒ ๊ธฐ์ฌํด ์ฃผ์ธ์.
๋ฌธ์์ ๋ํ GitHub ๋งํฌ๋ฌธ์์ Markdown์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
useRewriteURL ํ
useRewriteURL ํ
์ ํด๋ผ์ด์ธํธ ์ธก์์ ์ง์ญํ๋ URL ์ฌ์์ฑ์ ๊ด๋ฆฌํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด ํ
์ ์ฌ์ฉ์์ locale๊ณผ intlayer.config.ts์ ์ ์๋ ์ฌ์์ฑ ๊ท์น์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ URL์ด ๋ณด๊ธฐ ์ข์(pretty) ์ง์ญํ๋ ๋ฒ์ ์ผ๋ก ๋ณด์ ๋์ด์ผ ํ๋์ง ์๋์ผ๋ก ๊ฐ์งํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ๋ค๋น๊ฒ์ด์
๊ณผ ๋ฌ๋ฆฌ, ์ด ํ
์ ์ ์ฒด ํ์ด์ง ๋ฆฌ๋ก๋๋ ๋ผ์ฐํฐ ๋ค๋น๊ฒ์ด์
์ฌ์ดํด์ ํธ๋ฆฌ๊ฑฐํ์ง ์๊ณ ์ฃผ์ ํ์์ค์ URL์ ์
๋ฐ์ดํธํ๊ธฐ ์ํด window.history.replaceState๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฌ์ฉ๋ฒ
ํด๋ผ์ด์ธํธ ์ธก ์ปดํฌ๋ํธ์์ ํ ์ ํธ์ถํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ฝ๋๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
์๋ ๋ฐฉ์
- ๊ฐ์ง: ํ
์ ํ์ฌ
window.location.pathname๊ณผ ์ฌ์ฉ์์locale์ ๋ชจ๋ํฐ๋งํฉ๋๋ค. - ๋งค์นญ: ๋ด๋ถ Intlayer ์์ง์ ์ฌ์ฉํ์ฌ ํ์ฌ
pathname์ด ํ์ฌlocale์ ๋ํด ๋ ๋ณด๊ธฐ ์ข์ ๋ก์ปฌ๋ผ์ด์ฆ๋ ๋ณ์นญ์ ๊ฐ๋ canonical ๊ฒฝ๋ก์ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค. - URL ์์ : ๋ ๋์ ๋ณ์นญ์ด ๋ฐ๊ฒฌ๋์๊ณ (ํ์ฌ ๊ฒฝ๋ก์ ๋ค๋ฅผ ๊ฒฝ์ฐ), ํ
์ ๋์ผํ canonical ์ฝํ
์ธ ์ ์ํ๋ฅผ ์ ์งํ๋ฉด์ ๋ธ๋ผ์ฐ์ URL์ ์
๋ฐ์ดํธํ๊ธฐ ์ํด
window.history.replaceState๋ฅผ ํธ์ถํฉ๋๋ค.
์ ์ฌ์ฉํ๋์?
- SEO: ์ฌ์ฉ์๊ฐ ํน์ ์ธ์ด์ ๋ํด ํญ์ ๋จ์ผํ๊ณ ๊ถ์ ์๋ pretty URL๋ก ๋๋ฌํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ์ผ๊ด์ฑ: ์ฌ์ฉ์๊ฐ ์ ์ ๊ฒฝ๋ก(์:
/fr/privacy-notice)๋ฅผ ์๋์ผ๋ก ์ ๋ ฅํ์ฌ ์ง์ญํ๋ ๋ฒ์ (/fr/politique-de-confidentialite) ๋์ ์ ์ํ๋ ๋ถ์ผ์น๋ฅผ ๋ฐฉ์งํฉ๋๋ค. - ์ฑ๋ฅ: ์ฃผ์ ํ์์ค์ ์ ๋ฐ์ดํธํ๋ ์์น ์๋ ๋ผ์ฐํฐ ๋ถ์์ฉ(router side-effects)์ด๋ ์ปดํฌ๋ํธ ์ฌ๋ง์ดํธ(re-mounts)๋ฅผ ์ ๋ฐํ์ง ์์ต๋๋ค.
