๐ฅ SPA
Single Page Application (์ฑ๊ธ ํ์ด์ง ์ดํ๋ฆฌ์ผ์ด์
) ์ ์ฝ์๋ก์จ, ๋ง ๊ทธ๋๋ก, ํ์ด์ง๊ฐ 1๊ฐ์ธ ์ดํ๋ฆฌ์ผ์ด์
์ ์๋ฏธํฉ๋๋ค.
SPA๋ ๋ธ๋ผ์ฐ์ ์ ์ต์ด์ ํ๋ฒ ํ์ด์ง ์ ์ฒด๋ฅผ ๋ก๋ํ๊ณ , ์ดํ๋ถํฐ๋ ํน์ ๋ถ๋ถ๋ง Ajax๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ๋ ๋ฐฉ์์ด๋ฉฐ, ์น ์ฌ์ดํธ์ ์ ์ฒด ํ์ด์ง๋ฅผ ํ๋์ ํ์ด์ง์ ๋ด์ ๋์ ์ผ๋ก ํ๋ฉด์ ๋ฐ๊ฟ๊ฐ๋ฉฐ ํํํฉ๋๋ค.
์ฃผ๋ก React-router์์ Routing์์ ํ์์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์
๋๋ค.
๐ฅ ๊ณผ๊ฑฐ์ ์น ์ฌ์ดํธ
์ ํต์ ์ธ ์น ์ฌ์ดํธ๋ ์ง๊ธ๋ณด๋ค ๋ฌธ์ ํ๋์ ์ ๋ฌ๋๋ ํ์ผ์ ์ฉ๋์ด ์ ์์ต๋๋ค. ๊ทธ๋์ ์ด๋ค ์์๋ฅผ ํ๋ฒ ํด๋ฆญํ๋ฉด ์์ ํ ์๋ก์ด ํ์ด์ง๋ฅผ ์๋ฒ์์ ์ ์กํด ์ฃผ๊ณค ํ์ต๋๋ค. ๊ทธ๋๋ ์๊ด ์์์ง๋ง ํ๋์ ์ด๋ฅด๋ฌ ์ ์ฐจ ์น ์ฌ์ดํธ๊ฐ ๊ณ ๋ํ๋จ์ ๋ฐ๋ผ ํ ํ์ด์ง์ ํด๋นํ๋ ํ์ด์ง ์ฉ๋์ด ์ปค์ ธ๊ฐ๊ณ , ๋งค๋ฒ ์๋ก์ด ํ์ด์ง๋ฅผ ์ ๋ฌํ๋ ๊ฒ ์ ์ ๋ฒ๊ฑฐ์์ง๊ฒ ๋์์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ์ด SPA(Single Page Application)์ ๋๋ค. ์ด๋ฆ์์๋ ํ์ ํ ์ ์๋ฏ์ด, ์ด๋ค ์น ์ฌ์ดํธ์ ์ ์ฒด ํ์ด์ง๋ฅผ ํ๋์ ํ์ด์ง์ ๋ด์ ๋์ ์ผ๋ก ํ๋ฉด์ ๋ฐ๊ฟ๊ฐ๋ฉฐ ํํํ๋ ๊ฒ์ด SPA์ ๋๋ค. ๋ญ๊ฐ๋ฅผ ํด๋ฆญํ๊ฑฐ๋ ์คํฌ๋กคํ๋ฉด, ์ํธ์์ฉํ๊ธฐ ์ํ ์ต์ํ์ ์์๋ง ๋ณ๊ฒฝ์ด ์ผ์ด๋ฉ๋๋ค. ํ์ด์ง ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ค๊ณ ๋ณด์ฌ์ง๋ ๊ฒ ๋ํ ์ต์ด ๋ก๋๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ๋ฏธ๋ฆฌ ๋ธ๋ผ์ฐ์ ์ ์ฌ๋ผ๊ฐ ํ ํ๋ฆฟ๋ง ๊ต์ฒด๋๋ ๊ฒ์ ๋๋ค.
๐ฅ SPA ๋ผ์ฐํ
HTML 5์ history api๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ์ ํต์ ์ธ ์น์ฌ์ดํธ์ ๋ฐ์ฐฌ๊ฐ์ง๋ก ๋ธ๋ผ์ฐ์ง์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋ฒ๋ก ์์ฒญ์ ์ ๋ฌํ์ง ์๊ณ ์๋ฐ์คํฌ๋ฆฝํธ ์์ญ์์ history api๋ฅผ ํตํด ํ์ฌ ํ์ด์ง ๋ด์์ ํ๋ฉด ์ด๋์ด ์ผ์ด๋ ๊ฒ์ฒ๋ผ ์๋ํ๊ฒ ํ๋ ๊ฒ์ ๋๋ค.
๐ฅ ๋ผ์ฐํ
์ฌ์ฉ์๊ฐ ์์ฒญํ URL์ ๋ฐ๋ผ ํด๋น URL์ ๋ง๋ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์
๋๋ค. ๋ฆฌ์กํธ์์ ๋ง์ ๋ผ์ฐํฐ ์ค ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๊ฒ์ ๋ฆฌ์กํธ ๋ผ์ฐํฐ(React Router)์
๋๋ค.
React-Router๋ ์ ๊ท ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค์ง ์๋ ์ํฉ์์ ๊ฐ๊ฐ์ url์ ๋ฐ๋ผ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋์ ํ์ด์ง์์ ๋ ๋๋ง ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
'Elice > Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ๋๋จธ์ง ๋งค๊ฐ ๋ณ์์ ๊ตฌ๋ฌธ (0) | 2024.03.21 |
---|---|
[JavaScript] ํด๋ก์ (Closure) (0) | 2024.03.21 |
[JavaScript/React] ํ๋กํ ํ์ (0) | 2024.03.15 |
[React] ๋ฆฌ์กํธ ๋์ ์๋ฆฌ (0) | 2024.03.15 |
[JavaScript] ์ค์ฝํ (0) | 2024.03.14 |