์์ด๋ฆฌ๋ ์ฌ์ฉ์์ ๋ฐฐ๋ณ ํ๋์ ๊ธฐ๋กํ๊ณ , ๊ฑด๊ฐํ ์ต๊ด์ ์ ์งํ ์ ์๋๋ก ๋์์ฃผ๋ ์ค๋งํธํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
- ์๊ฐ ๊ธฐ๋ก: ๋ฐฐ๋ณ ์๊ฐ์ ์์ฝ๊ฒ ๊ธฐ๋กํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ํ ์ฒดํฌ: ๋ฐฐ๋ณ ์ํ๋ฅผ
๋ฌฝ์
,๋ฑ๋ฑํจ
,์ ์
์ผ๋ก ๊ตฌ๋ถํ์ฌ ๊ธฐ๋กํฉ๋๋ค. - ๋ฉ๋ชจ ๊ธฐ๋ฅ: ๋ฐฐ๋ณ๊ณผ ๊ด๋ จ๋ ๋ฉ๋ชจ๋ฅผ ๋จ๊ฒจ ๊ฑด๊ฐ ์ํ๋ฅผ ์์ธํ ๊ธฐ๋กํ ์ ์์ต๋๋ค.
- ์ผ์ผ ์๋ฆผ: ๋ฐฐ๋ณ๊ณผ ๊ด๋ จ๋ ๊ฑด๊ฐ ํ์ด๋ ์ํ ์ต๊ด ๊ฐ์ ์ ์ํ ์ ์ฉํ ์ ๋ณด๋ฅผ ๋งค์ผ ์ ๊ณตํฉ๋๋ค.
- ๋ชฉํ ๊ด๋ฆฌ: ๊ท์น์ ์ธ ๋ฐฐ๋ณ ์ต๊ด์ด๋ ํ๋ฃจ ๋ฌผ ์ญ์ทจ๋ ๊ฐ์ ๊ฑด๊ฐ ๋ชฉํ๋ฅผ ์ค์ ํ๊ณ , ์ด๋ฅผ ๋ฌ์ฑํ๋์ง ์ถ์ ํ ์ ์์ต๋๋ค.
- ํจํด ์๊ฐํ: ์ฃผ๊ฐ ๋ฐ ์๊ฐ ๋จ์๋ก ๋ฐฐ๋ณ ๋น๋๋ฅผ ์๊ฐ์ ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ์ธ์ ๋ฐฐ๋ณ ํจํด์ ํ์ ํ๊ณ , ๊ฑด๊ฐ ๊ด๋ฆฌ์ ๋์์ ๋ฐ์ ์ ์์ต๋๋ค.
- Next.js 14: ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR)๊ณผ ์ ์ ์ฌ์ดํธ ์์ฑ(SSG)์ ์ง์ํ๋ React ๊ธฐ๋ฐ ํ๋ ์์ํฌ
- TypeScript: ์ ์ ํ์ ์ ์ง์ํ๋ JavaScript์ ์ํผ์ ์ผ๋ก, ์์ ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ ํฅ์
- Vanilla Extract: CSS์ ํ์ ์์ ์ฑ์ ์ ๊ณตํ๋ ์คํ์ผ๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Zustand: ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ธ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Supabase: ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์ธ์ฆ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์คํ ์์ค ๋ฐฑ์๋ ์๋น์ค
- Next.js API Routes: Next.js์ ์๋ฒ๋ฆฌ์ค API ๋ผ์ฐํธ๋ฅผ ํ์ฉํ์ฌ, ๊ฐ๋จํ ์๋ฒ ๊ธฐ๋ฅ๊ณผ API๋ฅผ ๊ตฌํ
- GitHub Actions: ์๋ํ๋ ์ํฌํ๋ก์ฐ ๊ด๋ฆฌ ๋ฐ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ฌ, ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์ต์ ํ
- ECR (Elastic Container Registry): ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ AWS ์๋น์ค. ์ ํ๋ฆฌ์ผ์ด์ ์ Docker ์ด๋ฏธ์ง๋ฅผ ์ด๊ณณ์ ์ ์ฅ
- ECS (Elastic Container Service) - Fargate: AWS์์ ์ ๊ณตํ๋ ์๋ฒ๋ฆฌ์ค ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์๋น์ค
- PNPM: ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ํจํค์ง ๋งค๋์ ๋ก, ์ค๋ณต๋ ํจํค์ง๋ฅผ ๋งํฌ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ์ฌ ์ค์น ์๋๊ฐ ๋น ๋ฅด๊ณ ๋์คํฌ ์ฌ์ฉ๋์ ์ค์ฌ์ค
-
๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํฉ๋๋ค:
git clone https://github.com/yourusername/eungeori.git
-
์์กด์ฑ์ ์ค์นํฉ๋๋ค:
cd eungeori pnpm install
-
๊ฐ๋ฐ ์๋ฒ๋ฅผ ์์ํฉ๋๋ค:
pnpm run dev
-
๋ธ๋ผ์ฐ์ ์์
http://localhost:3000
์ ์ด์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ธํฉ๋๋ค.
์๋๋ ์ฐธ๊ณ ํ ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํฌ๋ฆฐ์ท์ ๋๋ค.
์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด ์บ๋ฆฐ๋๋ก์ ์๋ฆฌ ํ๋ ๊ธฐ๋ก๊ณผ ๋ถ์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ฐธ๊ณ ํ์ฌ, ์ ์ฌํ UX/UI๋ฅผ ์ ๊ณตํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.