UI/UX
UI (USER INTERFACE)
- UI๋ ์ฌ์ฉ์๊ฐ ์ ํ์ด๋ ์๋น์ค๋ฅผ ์ฌ์ฉํ ๋ ๋ง์ฃผํ๊ฒ ๋๋ ๋ฉด
- ์ฆ, ์ฌ์ฉ์๊ฐ ์ ํ์ด๋ ์๋น์ค์ ์ํธ์์ฉํ ์ ์๋๋ก ๋ง๋ค์ด์ง ๋งค๊ฐ์ฒด์ธ ๊ฒ์ด์ง์
- UI ๋์์ธ์ ํฐํธ, ์นผ๋ผ, ๋ ์ด์์๊ณผ ๊ฐ์ด ์ฌ์ฉ์๊ฐ ๋ง์ฃผํ๊ฒ ๋ ์๊ฐ์ ์ธ ๋์์ธ
UX (USER EXPERIENCE)
- UX๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ฝ์๋ก, ์ฌ์ฉ์๊ฐ ์ด๋ ํ ์๋น์ค๋ ์ ํ์ ์ง๊ฐ์ ์ ์ผ๋ก ์ด์ฉํ๋ฉด์ ๋๋ผ๋ ์ข ํฉ์ ์ธ ๋ง์กฑ์ ์๋ฏธ
- UX ๋์์ธ์ด๋ ์ฌ์ฉ์์๊ฒ ๋ง์กฑ์ค๋ฌ์ด ๊ฒฝํ์ ์ ๊ณตํ๋ UI๋ฅผ ๋์์ธ ํ๋ ๊ฒ์ ๋๋ค.
- ์ฆ, ์ฌ์ฉ์๊ฐ ๋ง์กฑํ ์ ์๋๋ก ์ฌ์ฉ์ ์ค์ฌ์ ์ผ๋ก ์ค๊ณ๋ ๋์์ธ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
CSR (client-side rendering)
- spa(์ฑ๊ธ ํ์ด์ง ์ดํ๋ฆฌ์ผ์ด์ )์ ๋ ๋๋ง ๋ฐฉ์์ผ๋ก ์ฑํํจ
- ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ ํ์ํ ๋ถ๋ถ๋ง ์๋ต ๋ฐ์ ๋ ๋๋งํ๋ ๋ฐฉ์
- ํด๋ผ์ด์ธํธ์์ ์ด๊ธฐํ๋ฉด์ ๋ก๋ํ๊ธฐ ์ํด ์๋ฒ์ ์์ฒญ
- ์ด๊ธฐ ๋ก๋ฉ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆผ
SSR (server-side rendering)
- SSR์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋งคํ๋ ์๋น์ค ํ์ด์ง๋ฅผ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์๊ฒ ๋ฐ๋ก ๋ณด์ฌ์ค ์ ์๋ค.
- ์๋ฒ๋ฅผ ์ด์ฉํด์ ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ์์ ๊ตฌ์ฑํ๋ CSR(client-side rendering)๋ณด๋ค ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ๋ ์๋๋ ๋ฆ์ด์ง์ง๋ง ์ ์ฒด์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ์ฝํ ์ธ ๊ตฌ์ฑ์ด ์๋ฃ๋๋ ์์ ์ ๋นจ๋ผ์ง๋ค๋ ์ฅ์ ์ด ์๋ค.
- ๋ฐ๋ฉด CSR์ SSR๋ณด๋ค ์ด๊ธฐ ์ ์ก๋๋ ํ์ด์ง์ ์๋๋ ๋น ๋ฅด์ง๋ง ์๋น์ค์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ฆ)์์ ์ถ๊ฐ๋ก ์์ฒญํ์ฌ ์ฌ๊ตฌ์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ฒด์ ์ธ ํ์ด์ง ์๋ฃ ์์ ์ SSR๋ณด๋ค ๋๋ ค์ง๋ค.
ย
SEO(๊ฒ์์์ง ์ต์ ํ)
- ๊ฒ์์์ง์ด ์น ํฌ๋กค๋ง ํ๋ฉด์ ํ์ด์ง์ ์ปจํ ์ธ ์์ธ์ ์์ฑํ๋ ๊ณผ์
SPA (single-page application)
- ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก, ํ์ฌ์ ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ์์ฑํจ์ผ๋ก์จ ์ฌ์ฉ์์ ์ํตํ๋ ์น ์ํ๋ฆฌ์ผ์ด์ ์ด๋ค.
- ์ฐ์๋๋ ํ์ด์ง ๊ฐ์ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๊ณ , ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ฒ๋ผ ๋์ํ๋๋ก ๋์์ค๋ค.
Reverse Proxy
- ์ฌ์ฉ์์ ์์ฒญ์ด ํ๋ก์ ์๋ฒ๋ฅผ ํตํด ์น ์๋ฒ์ ์ ๋ฌ๋๊ณ ์น ์๋ฒ๊ฐ ์ฒ๋ฆฌํ ์๋ต์ด ๋ค์ ํ๋ก์ ์๋ฒ๋ฅผ ํตํด ํด๋ผ์ด์ธํธ๋ก ์ ๋ฌ๋๋ค.
- reverse proxy๋ ์ฃผ๋ก ๋ด๋ถ ๋คํธ์ํฌ์ ์ธ๋ถ ๋คํธ์ํฌ ์ฌ์ด๋ฅผ ๋ถ๋ฆฌํด ๋ณด์ ์ด์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉ๋์ง๋ง ๋ธ๋ก๊ทธ์์๋ ์ ์ง์ ์ธ URL ๋จ์ ๋ฐฐํฌ๋ฅผ ์ํด ์ด๋ฅผ ์ด์ฉ
API
- Application Programming Interface, ์์ฉ ํ๋ก๊ทธ๋จ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค
- ์์ฉํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์ ์๋๋ก, ์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ ์ดํ ์ ์๊ฒ ๋ง๋ ์ธํฐํ์ด์ค
- UI๊ฐ ์ฌ์ฉ์์ ์ฌ์ฉ์๊ฐ ๋ค๋ฃฐ ๋์์ ํ๋ค๋ฉด, API๋ ํ๋ก๊ทธ๋จ๊ณผ ๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ฐ๊ฒฐํด์ฃผ๋ ์ผ์ข ์ ๋ค๋ฆฌ๋ผ๊ณ ๋ณผ ์ ์๋ค.
- ๋ด๊ฐ ๋ง๋ ์๋น์ค๊ฐ ๊ฐ์ธ ๊ฐ๋ฐ์,๊ธฐ์ ,๊ธฐ๊ด์ด ์ ๊ณตํ๋ ๊ธฐ๋ฅ, ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ ์๊ฒ๋ ๋์์ฃผ๋ ์ค๊ฐ ๋งค๊ฐ์ฒด๋ผ๊ณ ์ดํดํ๋ฉด ๋จ
Rest
- Representational State Transfer
- ์์์ ํํ(์ด๋ฆ)์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น ์์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ชจ๋ ๊ฒ์ ์๋ฏธ
- ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ ๋ฐ์ดํฐ๊ฐ ์์ฒญ๋์ด์ง๋ ์์ ์์ ์์์ ์ํ(์ ๋ณด)๋ฅผ ์ ๋ฌ
- ์ฆ json ํน์ xml๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ผ๋ก ์๊ฐํ์
REST API
- REST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค API๋ฅผ ๊ตฌํํ ๊ฒ
- REST๋ HTTP ํ์ค์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ๊ณ , HTTP๋ฅผ ์ง์ํ๋ ํ๋ก๊ทธ๋จ ์ธ์ด๋ก ํด๋ผ์ด์ธํธ. ์๋ฒ๋ฅผ ๊ตฌํํ ์ ์๋ค.
- ์ฆ, REST API๋ฅผ ์ ์ํ๋ฉด ๋ธํ์ด ํด๋ผ์ด์ธํธ ๋ฟ ์๋๋ผ, ์๋ฐ, C#์น ๋ฑ์ ์ด์ฉํด ํด๋ผ์ด์ธํธ๋ฅผ ์ ์ํ ์ ์๋ค.
CORS
- CORS(Cross-Origin Resource Sharing)๋ ?
- ์ถ๊ฐย
HTTP
ํค๋๋ฅผ ์ฌ์ฉํ์ฌ,ยํ ์ถ์ฒ(origin)
์์ ์คํ ์ค์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ดย๋ค๋ฅธ ์ถ์ฒ(origin)
์ย์ ํํ ์์์ ์ ๊ทผํ ์ ์๋ ๊ถํ
์ ๋ถ์ฌํ๋๋ก ๋ธ๋ผ์ฐ์ ์ ์๋ ค์ฃผ๋ ์ฒด์
- ํด๊ฒฐ
- package.json ํ์ผ์
โproxyโ : โhttp://localhost:8080"
์ถ๊ฐ
ESLint
ES(javascript) + Lint(์ค๋ฅ๊ฒ์ฌ๊ธฐ)
javascript ์ฝ๋๋ฅผ ์คํํ์ง ์๊ณ ๋, ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํด ์๋ ค์ฃผ๋ Node.js ํจํค์ง
Prettier
ํ์ผ์ ์ ์ฅํ ๋๋ง๋ค, ์ฝ๋๋ฅผ ์ฌ์ฉ์๊ฐ ์ํ๋ ํ์์ผ๋ก ๋ชจ์์ ์์๊ฒ ๋ง๋ค์ด์ฃผ๋ Node.js ํจํค์ง