μ¬μ©μμκ² λ΄μ€ μμ½ λ° λΆμ, κΈμ΅ μ 보λ₯Ό μ 곡νλ SNS μλΉμ€μ λλ€. λ΄μ€ λ° κΈμ΅ λ°μ΄ν° APIμ ν΅ν©λμ΄ μ¬μ©μ λ§μΆ€ν μ 보λ₯Ό μ 곡ν©λλ€.
- μ΅μ λ΄μ€ μμ½ μ 곡
- κΈμ΅ μ 보 μκ°ν λ° λΆμ
- μ¬μ©μ λ§μΆ€ν μΆμ² κΈ°λ₯
- λ΄μ€ λ° κΈμ΅ μ 보λ₯Ό 곡μ νκ³ ν λ‘ ν μ μλ SNS κΈ°λ₯
- Node.js: λ²μ 22
- Next.js: λ²μ 14
- NPM: μμ‘΄μ± κ΄λ¦¬λ₯Ό μν΄ μ¬μ©
νλ‘μ νΈμ μμ‘΄μ±μ npmμ ν΅ν΄ κ΄λ¦¬λ©λλ€. λ€μ λͺ
λ Ήμ΄λ‘ νμν ν¨ν€μ§λ₯Ό μ€μΉν μ μμ΅λλ€:
npm installμμ‘΄μ± λ¦¬μ€νΈλ package.json νμΌμ μ μλμ΄ μμ΅λλ€.
νκ²½ λ³μλ νλ‘μ νΈ λ£¨νΈ ν΄λμ μμΉν .env.local νμΌμμ κ΄λ¦¬λ©λλ€. λ€μκ³Ό κ°μ νκ²½ λ³μλ₯Ό μ€μ ν μ μμ΅λλ€:
ALPHA_VANTAGE_API_KEY=demo
HUGGINGFACE_API_KEY=demo
ALPHA_VANTAGE_BACKEND_URL=demo
npm run devκ°λ° μλ²λ₯Ό μμνκ³ , μ½λ λ³κ²½ μ μλμΌλ‘ 리λ‘λλλ λͺ λ Ήμ΄μ λλ€.
src/
βββ app/
β βββ layout.js
β βββ page.js
βββ news/
β βββ page.js
βββ stock/
β βββ page.js
βββ coin/
β βββ page.js
βββ components/
β βββ news/
β βββ stock/
β βββ coin/
β βββ layout/
βββ hooks/
βββ pages/
β βββ api/
βββ store/
βββ styles/
β βββ globals.css
βββ utils/
app/: μ£Όμ μ ν리μΌμ΄μ νμ΄μ§μ λ μ΄μμ νμΌμ΄ ν¬ν¨λ©λλ€.components/: κ³΅ν΅ μ»΄ν¬λνΈμ λ μ΄μμ κ΄λ ¨ νμΌλ€μ΄ ν¬ν¨λ©λλ€.hooks/: 컀μ€ν React ν μ΄ ν¬ν¨λ©λλ€.pages/: API λΌμ°νΈμ κΈ°ν νμ΄μ§ κ΄λ ¨ νμΌλ€μ΄ ν¬ν¨λ©λλ€.store/: μν κ΄λ¦¬ κ΄λ ¨ νμΌλ€μ΄ ν¬ν¨λ©λλ€.styles/: μ μ μ€νμΌ νμΌμ΄ ν¬ν¨λ©λλ€.utils/: μ νΈλ¦¬ν° ν¨μλ€μ΄ ν¬ν¨λ©λλ€.