JS๋ก ํ๋ก๋ํธ๋ฅผ ๊ฐ๋ฐํ๋ ์ด๊ธ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ์ต์ํ ์ด๊ฒ์ ํด์ผ ํ๋ค.
ํผ๋ธ๋ฆฌ์
๊ฐ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํด์ ์ด๋ค ๊ณต๋ถ๋ฅผ ํด์ผ ํ๋๊ฐ๋ฅผ ํ์ธํ ์ ์๋ค.
์ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ณต๋ถํ๋ ๊ฒ๋ง์ผ๋ก๋ FE ๊ฐ๋ฐ์๊ฐ ๋ ์ ์๋ค.
1. ๊ฐ๋ฐ ํ๊ฒฝ ๋ฐ ํ๋ก์ ํธ ์ค์
node.js ๊ธฐ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ ์ดํด
node_modules์ ๋ํ ์ดํด
ํ์ํ ๋ชจ๋์ ์ค์นํ๊ณ ์ค์ ํ๋ ๋ฐฉ๋ฒ
ํ๊ฒฝ ์ค์
๋ก์ปฌ ์๋ฒ์ ๋ํ ๊ฐ๋
๋ธ๋ผ์ฐ์ ๋์๊ณผ ์ค์ ์ฝ๋
๋์ ๋ฒ์๋ฅผ ์ ํ์ ๋์ ์ค์ , ์ค์ ๋ณ๊ฒฝ ๋ฐฉ๋ฒ
ESLint๋ฅผ ๋ฌด์ํ์ง ์๊ธฐ
2. APIs ๊ตฌํ
REST API ๊ตฌํ์ด ์๋๋ผ REST API๋ฅผ ํธ์ถํ๊ณ ์๋ต์ ์ฒ๋ฆฌํ๋ ํจ์ ๊ตฌํ
index.js์ ์์ฑํ๋ ๊ฒ ์๋๋ผ ๋ถ๋ฅํ๊ณ ๋ชจ๋ํํด์ dir์ file ๊ตฌ์ฑํ ์ง ์ค๊ณ ๋ฐ ๊ตฌํ
API ํธ์ถ์์ header ์กฐ์
API ์๋ต ์คํจ์ app crash ๋ฐฉ์ง
์๋ต ๋ฐ์ดํฐ ๊ฐ๊ณต
(HTTP)header, status code, methods, ๋น๋๊ธฐ ํต์ , ๋น๋๊ธฐ ์ฒ๋ฆฌ, CORS
3. assets(static) ์ค๊ณ
์ฐจ์ด๋ฅผ ์ดํดํด์ผ static์ ๋ ์ ์๋ค.
SCSS(or stylus)๋ variables, functions, mixins ๋ฑ์ผ๋ก ๋ถ๋ฅํด ๊ด๋ฆฌํ๋ค.
css ์ ์ฒ๋ฆฌ๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ํ webpack์ ํ์ํ loader ์ค์
โ ๋จ์ํ ๋ฐ๋ผ์น๋ ์์ค์ผ๋ก ํ์ตํ๋ฉด ํ์ํ loader๋ฅผ ์ค์ ํ์ง ๋ชปํ ๊ฒ์ด๋ค.
Components, layout, pages ์ค๊ณ ๋ฐ ๊ตฌํ
Component based development
ํ
ํ๋ฆฟ, ์คํ์ผ, ๋ฐ์ดํฐ, ๊ธฐ๋ฅ ๊ฐ๋ฐ
์ปดํฌ๋ํธ ๋จ์ ํผ๋ธ๋ฆฌ์ฑ
ํ
ํ๋ฆฟ ์ธ์ด
DOM ์ ์ด๋ฟ๋ง ์๋๋ผ data ์ ์ด๋ฅผ ํด์ UI๋ฅผ ๊ฐ๋ฐํ ์ค ์์์ผ ํ๋ค.
โ FE Framework๋ DOM์ ์ ์ดํ์ง ์๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๊ณ ๊ทธ ๋ฐ์ดํฐ๊ฐ ํ
ํ๋ฆฟ์ ๋ฐ์๋๋ค.
์ด๋ค ์ปดํฌ๋ํธ๋ฅผ ์๋ฒ์์ ๋ ๋๋งํ ์ง ํด๋ผ์ด์ธํธ์์ ๋ ๋๋งํ ์ง
์ปดํฌ๋ํธ์ ์ปดํฌ๋ํธ ๊ฐ์ ๋ฐ์ดํฐ/์ด๋ฒคํธ๋ฅผ ์ด๋ป๊ฒ ๊ณต์ ํ ๊ฒ์ธ์ง ์ค๊ณ ๋ฐ ๊ตฌํ
โ data, props, computed , watch , ๋ฐ์ดํฐ๋ฅผ ์ธ์ ์ฑ์ธ์ง, ์ด๋ฒคํธ ํธ๋ค๋ง์ ์์์์ ์ฒ๋ฆฌํ ์ง
Nuxt๋ layout ์ปดํฌ๋ํธ๋ ์ค๊ณ, ๋ผ์ฐํฐ ๊ตฌ์ฑ์ ๋ฐ๋ฅธ page ๊ตฌ์ฑ
middleware ๊ตฌํ
๋ธ๋ผ์ฐ์ ์์ ์ผ์ด๋๋ ์ผ์ด ํ๋ฉด์ ๋ณด์ด๋ ๊ฒ๋ง ํ๋ ๊ฒ์ด ์๋๋ค.
middleware์ ๋ํ์ ์ธ ์ฌ๋ก๋ authorization ๋ชจ๋์ด๋ค.
์ด๋ ํ๋ฉด์ ๋ณด์ด์ง ์๊ณ server/client-side ๋ชจ๋์์ ์ํ๋๋ ํ๋ก์ธ์ค๋ค.
Store ์ค๊ณ ๋ฐ ๊ตฌํ
store๋ฅผ ๋ชจ๋ํํด ๋ถ๋ฆฌ์์ผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ค๊ณ
โ flux ํจํด์ ๋ํ ํ์ต
SSR์ ๊ฒฝ์ฐ store๊ฐ ์๋ฒ์์ ๋ฏธ๋ฆฌ ์ฑ์์ ธ์ ํด๋ผ์ด์ธํธ์ ๋์ผํ๊ฒ ์ ์ฉ๋์ด์ผ ํ๋ค.
โ ์ด๋ป๊ฒ ํ ์ง์ ๋ํ ์ค๊ณ