ํฌํธํด๋ฆฌ์ค์ฉ ์จ๋ธ์จ์ด ์น์ฑ ๋ฆฌ๋ด์ผ ํ๋ก์ ํธ์ ๋๋ค.
- ์ธ์: ๊ฐ์ธํ๋ก์ ํธ(1์ธ)
- ์ญํ : ๊ธฐํยท๋์์ธยทํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ ๋ฐ ๋ด๋น
Figma ๋์์ธ ยท ๊นํ๋ ํฌ ยท ๋ฐฐํฌ ๋งํฌ
[ ๊ธฐ์ ์คํ ] React, React-Router, Redux, TailwindCSS, TypeScript
[ ์ฃผ์์์ ]
- CRA -> Vite์ ํ: CRA์ ๋๋ฆฐ ๋น๋์๋์ ์ง์ ์ค๋จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Vite๋ก ๋ง์ด๊ทธ๋ ์ด์ , CRA ํ๋ก์ ํธ ๋๋น ๋น๋ ์๋ 36.7% ๋จ์ถ(7.9sโ5.0s). - ๋ํ, ๋น ๋ฅธ HMR ์๋์ ์ค์ ๋จ์ํ๋ก ์ธํด ๊ฐ๋ฐ์ ๊ฒฝํ์ด ๊ฐ์ ๋จ
- TailwindCSS ๋์ : Styled-Components์ SSR ๋์ ์ด์์ ๊ธฐ๋ฅ ํ๊ณ๋ฅผ ํด์ํ๊ณ , npm trends์ ๊ทผ๊ฑฐํ์ฌ ํ๋ฐํ ์ํ๊ณ๋ฅผ ํ์ฉํ๊ธฐ ์ํด ์ ํ
- Google Lighthouse์ Rollup-Plugin-Visualizer ๋ถ์์ ํตํด, ํผํฌ๋จผ์ค์ ์ฑ๋ฅ ์ ํ ์์ธ์ ํ์
- Terser ๋์ ์ผ๋ก ๋ฐ๋ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๊ณ , Lazy Loading ์ ์ฉ์ผ๋ก ์ด๊ธฐ ๋ก๋ฉ ์๋๊ฐ์ ์ ์งํ
- ์ด ๊ณผ์ ์์ SEO ์ ์๊ฐ ๋จ์ด์ ธ ๊ฒ์์์ง ๋ ธ์ถ์ ๋ถ๋ฆฌํด์ ธ์ SSR(์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง) ๋ฐฉ์์ ๋์ โ ์ต์ข ์ ์ผ๋ก ํผํฌ๋จผ์ค 100์ ๋ฐ SEO 92์ ๋ฌ์ฑ
- ์ด๋ฏธ์ง ๋ฆฌ์์ค๋ S3 + CloudFront๋ก ์ ๊ณตํ์ฌ ์ ์ก ์๋๋ฅผ ์ต์ ํ
- TypeScript ๋์ : Mock ๋ฐ์ดํฐ ํ์ ๋ถ์ผ์น ๋ฐ ๋ก์ง ์ค๋ฅ๋ฅผ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌ โ ์ฝ๋ ํ์ง ํฅ์
- FSD ๊ตฌ์กฐ ์ ์ฉ: pagesยทfeaturesยทshared ๋จ์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌํ์ฌ, ๊ธฐ๋ฅ ํ์ฅ ๋ฐ ์ ์ง๋ณด์ ์ฉ์ด์ฑ ํ๋ณด
- GitHub Actions ์๋ํ: PR ๋ณํฉ ์ ESLintยทPrettier ์๋ ๊ฒ์ฌ โ ์ฝ๋ ์คํ์ผ ์ผ๊ด์ฑ ๋ฐ ํ์ง ์ ์ง
- ๋ฐฐํฌ ํ๊ฒฝ ์ ํ (Vercel โ AWS EC2): SSR ํ๋ก์ ํธ๋ฅผ Vercel์์ ์ด์ํ๋ค๊ฐ, ์ค๋ฌด ์ด์ ํ๊ฒฝ๊ณผ ์ ์ฌํ ๊ฒฝํ์ ์๊ธฐ ์ํด EC2 ๊ธฐ๋ฐ ๋ฐฐํฌ๋ก ์ด์
- ๋๋ฉ์ธ ๊ตฌ๋งค, DNS ์ค์ , SSL ์ธ์ฆ ์ ์ฉ ๋ฑ ๋ฐฐํฌ ๊ณผ์ ์ ์ง์ ๊ฒฝํํ๋ฉฐ ์ด์ ํ๊ฒฝ์ ๊ฐ๊น์ด ๋ฐฐํฌ ๊ณผ์ ์ ํ์ต
[ ๊ธฐ์ ์คํ ] React, React-Router, Redux, Styled-Components, JavaScript
[ ๋งํฌ ]
[ ์ฃผ์์์ ]
- ์ฃผ๋ฌธ ํ์ด์ง: ์นด์นด์ค๋งต API๋ฅผ ์ฌ์ฉํ์ฌ ์ง๋์ ๋งค์ฅ ์ฐพ๊ธฐ ๋ฐ ์ ๋ณด ํ์
- ํ์๊ฐ์ ํ์ด์ง: ์ด๋ฉ์ผ, ๊ตฌ๊ธ, ์นด์นด์ค ๊ณ์ ์ผ๋ก OAuth ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ
- ์ ์ญ ์ํ ๊ด๋ฆฌ: Redux๋ฅผ ํ์ฉํ ์ฅ๋ฐ๊ตฌ๋ ๋ฐ ๋ก๊ทธ์ธ ์ํ ๊ด๋ฆฌ
- Google Lighthouse ๋ถ์์ ํตํด ์ฑ๋ฅ ์ ํ ์์ธ์ ํ์ ํ์ฌ, ๋ก๋ฉ ์ง์ฐ ์ ์ฌ์ฉ์์๊ฒ ๋๊ธฐ ์ํฉ์ ์๋ดํ๊ธฐ ์ํด ๋ก๋ฉ ์คํผ๋๋ฅผ ๋์
- ๋ํ, png ์ด๋ฏธ์ง๋ฅผ webp ํ์์ผ๋ก ๋ณํํ์ฌ, ๊ทผ๋ณธ์ ์ธ ์ด๋ฏธ์ง ๋ก๋ฉ ์๋ ๊ฐ์
- ๊ฒฐ๊ณผ์ ์ผ๋ก ํผํฌ๋จผ์ค ์ ์ ๊ฐ์ (80์ โ 90์ )
- ๊ธฐํ/๋์์ธ: Figma ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉด ๊ธฐํ ๋ฐ UI ๋์์ธ ์งํ
- ๊ตฌ๋งค ํ๋ก์ฐ ๋จ์ํ: ์ ํ ์ต์ ์ ํ ๋จ๊ณ ์ถ์ โ ์ฌ์ฉ์ ๋ง์ถคํ ์ต์ ์ ๊ณต (๋ชจ๋ ์ต์ ์ ํ ํ๋ฉด์์ ์ ํ ๊ฐ๋ฅ)
- ๋ฒํผ ์ํ ๊ฐ์ํ: ์ฃผ๋ฌธ ํ์ด์ง ํ๋จ ๋ฒํผ์ ์์์ผ๋ก ํ์ฑํ/๋นํ์ฑํ ์ํ ํ์
yarn install๋ก์ปฌ ์คํ ์ .env.local ํ์ผ์ ์์ฑํ์ฌ ์นด์นด์ค๋งต ์๋ฐ์คํฌ๋ฆฝํธ API Key๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. (.env.sample ์ฐธ๊ณ )