1. Routing
Last updated
Last updated
๋ผ์ฐํ (routing)์ ์ด๋ค ๋คํธ์ํฌ ์์์ ํต์ ๋ฐ์ดํฐ(ํจํท)๋ฅผ ๋ณด๋ผ ๋ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ ํํ๋ ๊ณผ์ โ ๋ผ์ฐํฐ๊ฐ ์ด๋ฅผ ์ํ ์ต์ ์ ๊ฒฝ๋ก๋ ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ์งง์ ๊ฑฐ๋ฆฌ๋ก ๋๋ ๊ฐ์ฅ ์ ์ ์๊ฐ ์์ ์ ์กํ ์ ์๋ ๊ฒฝ๋ก
โก ๏ธ๊ฐ์ฅ ๋น ๋ฅธ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์์ฒญ์ ๋น ๋ฅด๊ฒ ์ ๋ฌ ๋ฐ์ดํฐ๋ ๋ณดํต ์ถ๋ฐ์ง์์ ๋ชฉ์ ์ง๋ก ๊ฐ๋ ๋์ ์ฌ๋ฌ๊ฐ์ ๋ผ์ฐํฐ๋ฅผ ๊ฑฐ์น๋ฉฐ ์ฌ๋ฌ๋ฒ์ ๋ผ์ฐํ ์ ์ํ(๋ผ์ฐํ ์ ๋ณดํต ์ด๋น ์๋ฐฑ๋ง๋ฒ ๋ฐ์) Ex. ๐ ๋์ค๊ตํต ์ต์ ๋ฐฉ๋ฒ ์ ํ
๐ ์ค์ต ๋งํฌ : Home, About Page ๋ถ๋ฆฌ ๋ฐ ๋ผ์ฐํ ์ฒ๋ฆฌ ๊ตฌํ
์ผ๋ฐ์ ์ธ ์น ์ฌ์ดํธ๋ URL์ ๋ฐ๋ผ ๋ค๋ฅธ ์น ํ์ด์ง๋ฅผ ๋ณด์ฌ์ค ํ๋์ ์น ํ์ด์ง๋ฅผ ํ๋์ ์ปดํฌ๋ํธ๋ก ๋ง๋ค๊ณ , URL์ ๋ฐ๋ผ ์ ์ ํ ์ปดํฌ๋ํธ๊ฐ ๋ณด์ด๊ฒ ํจ์ผ๋ก์จ ๊ตฌํ (์ปดํฌ๋ํธ๋ฅผ ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋ ์, ์ฃผ์์ ๋ฐ๋ผ ์กฐ๊ฐ์ ๋ณด์ฌ์ฃผ๋๋ก ํ๋ ๊ฒ)
location.pathname
์ ๋ฐ๋ผ ๊ฐ๊ธฐ ๋ค๋ฅธ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒ
HTML์ ๊ฐ ์์์ ๊ธฐ๋ฅ์ ์ ์ํ๋ ์ธํฐํ์ด์ค์, ์ด๋ค์ด ์์กดํ๋ ์ง์ ํ์ ๋ฐ ์ธํฐํ์ด์ค๋ก ๊ตฌ์ฑ
DOM์ ํตํ HTML ์์ ์ ๊ทผ ๋ฐ ์ ์ด
์์(form) ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ ๋ฐ ์กฐ์
2D ์ด๋ฏธ์ง์ ์ฝํ
์ธ ๋ฐ HTML ์ปจํ
์คํธ(<canvas>
)์ ์ํธ ์์ฉํ์ฌ ๊ทธ ์์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๊ธฐ
HTML ๋ฏธ๋์ด ์์(<audio>
๋ฐ <video>
)์ ์ฐ๊ฒฐ๋ ๋ฏธ๋์ด ๊ด๋ฆฌ
์น ํ์ด์ง์์ ์ฝํ ์ธ ๋์ด์ ๋๊ธฐ(Drag and drop)
๋ธ๋ผ์ฐ์ ํ์ ๊ธฐ๋ก์ ๋ํ ์ ๊ทผ
Web Components, Web Storage, Web Workers, WebSocket ๋ฐ Server-sent events์ ๊ฐ์ ๋ค๋ฅธ API์ ๋ํ ์ง์ ๋ฐ ์ฐ๊ฒฐ ์ธํฐํ์ด์ค
HTML DOM API ์ค ํ์ด์ง ๊ธฐ๋ก ์ธํฐํ์ด์ค ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ก์ ๋ํ ์ ๋ณด์ ์ก์ธ์คํ๊ณ ํด๋น ๊ธฐ๋ก์ ํตํด ๋ธ๋ผ์ฐ์ ์ ํ์ฌ ํญ์ ์๋ค๋ก ์ด๋ํ ์ ์์
Location ์ธํฐํ์ด์ค๋ ๊ฐ์ฒด๊ฐ ์ฐ๊ฒฐ๋ ์ฅ์(URL)๋ฅผ ํํ
Location ์ธํฐํ์ด์ค์ ๋ณ๊ฒฝ์ ๊ฐํ๋ฉด ์ฐ๊ฒฐ๋ ๊ฐ์ฒด์๋ ๋ฐ์๋๋๋ฐ, Document์ Window ์ธํฐํ์ด์ค๊ฐ ์ด๋ฐ Location์ ๊ฐ์ง๊ณ ์์
๊ฐ๊ฐ Document.location
๊ณผ Window.location
์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅ
Window.location ํ๋กํผํฐ์ ์ ๊ทผํ๋ฉด ์ฝ๊ธฐ ์ ์ฉ์ธ Location ์ค๋ธ์ ํธ๋ฅผ ์ป์ด์ฌ ์ ์์ ์ด๋ ํ์ฌ ๋ํ๋จผํธ์ ๋ก์ผ์ด์ ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์
๐ฆ https://github.com/ShinjungOh ํ์ด์ง์์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ
โถ๏ธ location Location {ancestorOrigins: DOMStringList, href: 'https://github.com/ShinjungOh', origin: 'https://github.com', protocol: 'https:', host: 'github.com', โฆ}
'/' ๋ฌธ์ ๋ค URL์ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ผ๋ก ํ๋ DOMString pathname ์ธํฐํ์ด์ค์ ์์ฑ์ Location์ ๋ํ URL์ ๊ฒฝ๋ก๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด
๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด pathname์ด ๋น์ด์์
๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด pathname ์ฟผ๋ฆฌ ๋ฌธ์์ด์ด๋ ์กฐ๊ฐ์ ํฌํจํ์ง ์๊ณ URL์ ๊ฒฝ๋ก๊ฐ ๋ค์ ์ค๋ ์ด๊ธฐ '/'๋ฅผ ํฌํจ
๐ฆ https://github.com/ShinjungOh ํ์ด์ง์์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ
โถ๏ธ location.pathname '/ShinjungOh'
'#' ๋ฌธ์ ๋ค URL์ ํ๋๊ทธ๋จผํธ ์๋ณ์๋ฅผ ๊ฐ์ผ๋ก ํ๋ DOMString
๐ฆ https://developer.mozilla.org/ko/docs/Web/API/Location#์์ ํ์ด์ง์์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ
โถ๏ธ location.hash '#%EC%98%88%EC%A0%9C'