| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 |
- ํฐํธ์จ์ดํธ
- liststyleimage
- ์ฃผ์
- borderspacing
- borderstyle
- texttransform
- bordercollapse
- ์์ด๋์ ๋ ํฐ
- gtammertable
- liststyleposition
- formtag
- wordspacing
- fontweight
- ๊ทธ๋ฃน์ ๋ ํฐ
- captionside
- inlineblock
- ๋นํ๊ทธ
- CDN
- ๋ชจ๋์นํฐํธ
- ์ถ์ฝ
- ํผํ๊ทธ
- ํฅ์ค์ฝ๋
- textshadow
- textdecoration
- ์ ๋๋ฒ์ ์ ๋ ํฐ
- ํ์ ์ ๋ ํฐ
- liststyletype
- selectorslevel4
- ๊ตฌ๊ธํฐํธ
- ํด๋์ค์ ๋ ํฐ
- Today
- Total
็ก์
Hash URL ๋ณธ๋ฌธ
๐ก Hash URL (Fragment Identifier)
URL์์ # ๋ค์ ์ค๋ ๋ถ๋ถ์ ํด์(Hash) ๋๋ ํ๋๊ทธ๋จผํธ ์๋ณ์(Fragment Identifier, Fragment) ๋ผ๊ณ ํ๋ค.
โผ๏ธ ์๋ ์ฉ๋ (์ต์ปค ์ด๋)
Hash๋ ์๋ HTML ๋ฌธ์ ๋ด๋ถ์ ํน์ ์์น๋ก ์ด๋ํ๊ธฐ ์ํด ๋ง๋ค์ด์ก๋ค.
<h2 id="chapter3">3์ฅ</h2>
<a href="#chapter3">3์ฅ์ผ๋ก ์ด๋</a>
https://example.com/page.html#chapter3
- ์ URL์ ์ ์ํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ id="chapter3"์ธ ์์๊น์ง ์๋์ผ๋ก ์คํฌ๋กคํ๋ค. SPA๊ฐ ๋ฑ์ฅํ๋ฉด์ ์ด ๊ธฐ๋ฅ์ ๋ผ์ฐํ ์ฉ๋๋ก ํ์ฉํ๊ฒ ๋ ๊ฒ์ด๋ค.
โผ๏ธ ์ฃผ์ ํน์ง
1๏ธโฃ ์๋ฒ์ ์๋ก์ด ํ์ด์ง๋ฅผ ์์ฒญํ์ง ์์ (Client-Side Routing)
URL์ ํด์(#) ๋ถ๋ถ๋ง ๋ณ๊ฒฝ๋๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์ ์๋ก์ด HTML ๋ฌธ์๋ฅผ ์์ฒญํ์ง ์์ ํ์ด์ง ์ ์ฒด๊ฐ ์๋ก๊ณ ์นจ๋์ง ์๊ณ , ๋ธ๋ผ์ฐ์ ๋จ์์ ํ๋ฉด์ด ์ ํ๋๋ค.
https://example.com/#/home
↓
https://example.com/#/about
- ๋์ ์์:
- URL ๋ณ๊ฒฝ: ์ฌ์ฉ์์ ์ํธ์์ฉ์ผ๋ก URL์ Hash ๊ฐ ๋ณ๊ฒฝ.
- ์ด๋ฒคํธ ๊ฐ์ง: ๋ธ๋ผ์ฐ์ ์์ hashchange ์ด๋ฒคํธ ๋ฐ์.
- ํ๋ฉด ๊ฐฑ์ : JavaScript๊ฐ ๋ณ๊ฒฝ๋ Hash๋ฅผ ์ธ์ํ์ฌ ํด๋นํ๋ ์ปดํฌ๋ํธ(ํ๋ฉด)๋ง ๋ถ๋ถ ๋ ๋๋ง.
- ์ฐธ๊ณ : ํ๋ฉด ์ ํ์ ์ํ HTML ๋ฌธ์ ์์ฒด๋ ๋ค์ ์์ฒญํ์ง ์์ง๋ง, ํ์ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํด JavaScript๊ฐ API ์์ฒญ(Fetch, AJAX ๋ฑ)์ ์ํํ ์๋ ์๋ค.
2๏ธโฃ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ ์ง์
ํด์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ธ๋ผ์ฐ์ ์ History Stack์ ์๋ก์ด ๊ธฐ๋ก์ด ์ถ๊ฐ๋๋ค.
๋ฐ๋ผ์ ์ฌ์ฉ์๋ ๋ค๋ก๊ฐ๊ธฐ, ์์ผ๋ก๊ฐ๊ธฐ ๋ฒํผ์ ์ด์ฉํ์ฌ SPA ๋ด๋ถ์ ํ๋ฉด ์ด๋์ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
3๏ธโฃ ๋ถ๋งํฌ ๋ฐ URL ๊ณต์
ํ์ฌ ํ๋ฉด์ ํด์ ๊ฐ์ ํฌํจํ URL์ ๊ทธ๋๋ก ๋ณต์ฌํ๊ฑฐ๋ ๋ถ๋งํฌํ ์ ์๋ค.
๋ค์ ์ ์ํ๋ฉด JavaScript๊ฐ ํด์ ๊ฐ์ ์ฝ์ด ๋์ผํ ํ๋ฉด์ ๋ค์ ํ์ํ ์ ์๋ค.
4๏ธโฃ ์ ์ ํธ์คํ ํ๊ฒฝ์์ ์ฌ์ฉ ๊ฐ๋ฅ
History API๋ ์๋ฒ ์ค์ ์ด ํ์ํ์ง๋ง, Hash URL์ ์๋ฒ ์ค์ ์์ด๋ ๋ผ์ฐํ ์ด ๊ฐ๋ฅํ๋ค.
๊ทธ๋์ GitHub Pages, ๋จ์ ์ ์ ์น์ฌ์ดํธ, ์๋ฒ ์ค์ ์ ๋ณ๊ฒฝํ ์ ์๋ ํ๊ฒฝ ๋ฑ์์๋ ์ง๊ธ๋ ๋ง์ด ์ฌ์ฉ๋๋ค.
โผ๏ธ History API์์ ์ฐจ์ด
ํ์ฌ ๋๋ถ๋ถ์ React, Vue, Angular ๋ฑ์ SPA๋ Hash ๋ฐฉ์ ๋์ HTML5 History API๋ฅผ ์ฌ์ฉํ๋ค.
- Hash ๋ฐฉ์: https://example.com/#/products/10
- History API ๋ฐฉ์: https://example.com/products/10
History API๋ ์ค์ ์น์ฌ์ดํธ URL์ฒ๋ผ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, SSR(Server Side Rendering), SSG(Static Site Generation) ๋ฑ๊ณผ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ , ๊ฒ์ ์์ง์ด ์ผ๋ฐ URL์ฒ๋ผ ์ธ์ํ๊ธฐ ๋๋ฌธ์ SEO์ ์ ๋ฆฌํ๋ค.
์๋ฒ์์ /products/10์ฒ๋ผ ์ง์ ์ ๊ทผํ ์์ฒญ๋ index.html์ ๋ฐํํ๋๋ก ์ค์ ํด์ผ ํ๋ค.
๐ Hash URL vs HTML5 History API ๐
| ๊ตฌ๋ถ | Hash URL | HTML5 History API |
| URL ํํ | example.com/#/home | example.com/home |
| ์๋ฒ ์์ฒญ | Hash ๋ณ๊ฒฝ ์ ๋ฌธ์ ์ฌ์์ฒญ ์์ | pushState ํธ์ถ ์์ฒด๋ ์๋ฒ ์์ฒญ ์์ |
| ์๋ฒ ์ค์ | ํ์ ์์ | ํ์ํจ (๋ชจ๋ ๊ฒฝ๋ก ์ฒ๋ฆฌ) |
| URL ๊ฐ๋ ์ฑ | ์๋์ ์ผ๋ก ๊น๋ํ์ง ์์ | ์ค์ URL์ฒ๋ผ ์์ฐ์ค๋ฌ์ |
| SEO | ์ ํ์ | SSR·SSG์ ํจ๊ป ์ฌ์ฉ ์ ์ ๋ฆฌ |
| ํ์ฌ ์ฌ์ฉ | ์ ์ ํธ์คํ , ๋ ๊ฑฐ์ SPA | ๋๋ถ๋ถ์ ์ต์ SPA |
'<React>' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| React Router (react-router-dom) (0) | 2026.07.14 |
|---|---|
| React์์ map ํจ์ ์ฌ์ฉํ๊ธฐ (0) | 2026.07.14 |
| State (์คํ ์ดํธ) (0) | 2026.07.08 |
| Event (์ด๋ฒคํธ) (0) | 2026.07.08 |
| Props (Properties, ํ๋กญ์ค) (0) | 2026.07.07 |
