# SPA๋?
์ฐธ๊ณ ๋ธ๋ก๊ทธ (opens new window)
SPA ์ค์ฌ์๋ ๋ํ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ/ํ๋ก ํธํ๋ ์์ํฌ React, Vue/Angular๊ฐ ์๋ค.
# 1. SPA
SPA๋ Single Page Application์ ์ฝ์์ด๋ค.
๋จ์ผ ํ์ด์ง ์ดํ๋ฆฌ์ผ์ด์ (SPA)๋ ํ์ฌ ์น๊ฐ๋ฐ์ ํธ๋๋์ด๋ค.
๊ธฐ์กด ์น ์๋น์ค๋ ์์ฒญ์๋ง๋ค ์๋ฒ๋ก๋ถํฐ ๋ฆฌ์์ค๋ค๊ณผ ๋ฐ์ดํฐ๋ฅผ ํด์ํ๊ณ ํ๋ฉด์ ๋ ๋๋งํ๋ ๋ฐฉ์์ด๋ค. SPAํํ๋ ๋ธ๋ผ์ฐ์ ์ ์ต์ด์ ํ๋ฒ ํ์ด์ง ์ ์ฒด๋ฅผ ๋ก๋ํ๊ณ , ์ดํ๋ถํฐ๋ ํน์ ๋ถ๋ถ๋ง Ajax๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ๋ ๋ฐฉ์์ด๋ค.
# 2. ์ ํต์ ์ธ ํ์ด์ง vs ๋จ์ผ ํ์ด์ง ์ดํ๋ฆฌ์ผ์ด์ ๋น๊ต
(https://linked2ev.github.io/devlog/2018/08/01/WEB-What-is-SPA/)
์์ ๋ถํฐ ๊ฐ๋ฐ์๋ค์ ์ง์์ ์ผ๋ก ์น์๋น์ค์ ๊ฐ๋ฐ๋ฐฉ์์ ๋ฐ์ ์์ผ์๋ค. CSS, JS ๋ฆฌ์์ค ๋ฑ์ cdnํํ๋ก ์บ์ฑ ๋ฐ ์์ถํ๊ณ , View์์ ํ ํ๋ฆฟ์์ง (opens new window) ๋ค์ ์ฌ์ฉํ๊ณ , ์ด๊ธฐ์ SPA ๊ฐ๋ ์ธ Backbone.js, Angular.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๋์๊ณ , ์ง๊ธ์ ํ ํ๋ฆฟ ๊ฐ๋ ์ ์ง๋ ์ปดํฌ๋ํธ ๊ฐ๋ ์ธ React.js, Vue.js, Angular2 ๋ฑ ์ด๋ ๊ฒ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๊ฐ ๋ฑ์ฅํ๊ณ ์์ง๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฐ์ ํด๊ฐ๊ณ ์๋ค.
# 3. ์ปดํฌ๋ํธ ๊ฐ๋
(https://linked2ev.github.io/devlog/2018/08/01/WEB-What-is-SPA/)
์์ ์ด๋ฏธ์ง ์ฒ๋ผ ์ปดํฌ๋ํธ๋ค์ด ๋ชจ์ฌ ํ ํ์ด์ง๋ฅผ ์์ฑํ๊ณ , ํน์ ๋ถ๋ถ๋ง ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ๋ ๊ฐ๋ ์ด๋ค.
SPA ๊ตฌํ์ ์ฝ๊ฒ ๋งํ๋ฉด jspํ์ผ ์์ด index.htmlํ์ผ ํ๋์์ js, css๋ฑ ๋ฆฌ์์ค ํ์ผ๋ค๊ณผ ๋ชจ๋๋ค์ ๋ก๋ํด์ ํ์ด์ง ์ด๋ ์์ด ํน์ ์์ญ๋ง ์๋ก ๋ชจ๋์ ํธ์ถํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ๋ ๊ฐ๋ ์ด๋ค.
๋ฌผ๋ก ์ด์ ๊ฐ์ด ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ ์ํด์๋ ES6, Node.js์ npm ๊ทธ๋ฆฌ๊ณ webpack, Babel ๊ฐ์ ๋ฒ๋ค๋ฌ ๋ฑ ๊ฐ๋ ์ ํ๋ฒ ์ ๋๋ ์ก๊ณ ์ ๊ทผํด์ผ ํ ๊ฒ ๋ง๋ค.
# 4. SPA ์ค์ฌ์ Vue, Angular, React
(https://linked2ev.github.io/devlog/2018/08/01/WEB-What-is-SPA/)
์ง์์ ์ธ ๋ฐ์ ์ผ๋ก ๋ํ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ/ํ๋ก ํธํ๋ ์์ํฌ React, Vue/Angular๊ฐ ์๋ค.
- Javascript๋ ์ง์์ ์ผ๋ก ๋ฐ์ ํ๊ณ ์๋ค. (opens new window)
- React, Vue, Angular๋ ํ๊ฒฝ๊ณผ ๋ชฉ์ ์ ๋ง๊ฒ ์ฌ์ฉํด์ผ ํ๋ค. (opens new window)
# Reference
- https://linked2ev.github.io/devlog/2018/08/01/WEB-What-is-SPA/
- SPA๋ ๋ฌด์์ธ๊ฐ? (opens new window)
- SPA์ ๋จ์ (opens new window)
- SPA ๋ผ์ฐํ ์๋ฆฌ (opens new window)