Skip to content

jeonbyeongmin/yoty

Repository files navigation

YOTY (Year of the Year) ๐ŸŽ‰

ํ•œ ํ•ด์˜ ๋‹น์‹ ์˜ ํ”ฝ์„ ์„ ํƒํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ํ”Œ๋žซํผ

YOTY๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ ํ•ด๋ฅผ ๋Œ์•„๋ณด๋ฉฐ ๊ฐ€์žฅ ์ธ์ƒ ๊นŠ์—ˆ๋˜ ์Œ์•…, ์˜ํ™”, ๋“œ๋ผ๋งˆ, ์ฑ…์„ ์„ ํƒํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ํ†ตํ•ฉ ๊ฒ€์ƒ‰: Spotify, TMDB, Google Books API๋ฅผ ํ†ตํ•œ ํ†ตํ•ฉ ์ฝ˜ํ…์ธ  ๊ฒ€์ƒ‰
  • ํ”ฝ ์„ ํƒ ๋ฐ ์ €์žฅ: ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋ฒ ์ŠคํŠธ ํ”ฝ ์„ ํƒ ๋ฐ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ์ €์žฅ
  • ๊ฐœ์ธ ํ”„๋กœํ•„: ์„ ํƒํ•œ ํ”ฝ์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฐœ์ธ ํ”„๋กœํ•„ ํŽ˜์ด์ง€
  • ๋ฐ˜์‘ํ˜• ๋””์ž์ธ: ๋ชจ๋ฐ”์ผ๋ถ€ํ„ฐ ๋ฐ์Šคํฌํ†ฑ๊นŒ์ง€ ์™„๋ฒฝํ•œ ๋ฐ˜์‘ํ˜• UI
  • ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰: API ์—ฐ๋™ ๋ฐ Mock ๋ฐ์ดํ„ฐ fallback

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

  • Frontend: Next.js 15, React 19, TypeScript
  • Styling: Tailwind CSS
  • API Integration: Axios
  • External APIs:
    • Spotify Web API
    • The Movie Database (TMDB) API
    • Google Books API

๐Ÿš€ ์‹œ์ž‘ํ•˜๊ธฐ

1. ํ”„๋กœ์ ํŠธ ํด๋ก  ๋ฐ ์˜์กด์„ฑ ์„ค์น˜

git clone <repository-url>
cd yoty
npm install

2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

.env.local ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  API ํ‚ค๋ฅผ ์„ค์ •ํ•˜์„ธ์š”:

SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
TMDB_API_KEY=your_tmdb_api_key
GOOGLE_BOOKS_API_KEY=your_google_books_api_key

์ฐธ๊ณ : API ํ‚ค๊ฐ€ ์—†์–ด๋„ Mock ๋ฐ์ดํ„ฐ๋กœ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

3. ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰

npm run dev

http://localhost:3000์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

src/
โ”œโ”€โ”€ app/                    # Next.js App Router
โ”‚   โ”œโ”€โ”€ page.tsx           # ๋ฉ”์ธ ํŽ˜์ด์ง€
โ”‚   โ”œโ”€โ”€ pick/              # ํ”ฝ ์„ ํƒ ํŽ˜์ด์ง€
โ”‚   โ”œโ”€โ”€ profile/           # ํ”„๋กœํ•„ ํŽ˜์ด์ง€
โ”‚   โ””โ”€โ”€ api/               # API ๋ผ์šฐํŠธ
โ”œโ”€โ”€ components/            # React ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ MainPageClient.tsx # ๋ฉ”์ธ ํŽ˜์ด์ง€ ํด๋ผ์ด์–ธํŠธ
โ”‚   โ”œโ”€โ”€ PickSelector.tsx   # ํ”ฝ ์„ ํƒ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ””โ”€โ”€ SearchTest.tsx     # API ํ…Œ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ
โ”œโ”€โ”€ services/              # ์™ธ๋ถ€ API ์„œ๋น„์Šค
โ”‚   โ”œโ”€โ”€ spotify.ts         # Spotify API
โ”‚   โ”œโ”€โ”€ tmdb.ts           # TMDB API
โ”‚   โ”œโ”€โ”€ googleBooks.ts    # Google Books API
โ”‚   โ”œโ”€โ”€ storage.ts        # ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๊ด€๋ฆฌ
โ”‚   โ””โ”€โ”€ mockData.ts       # Mock ๋ฐ์ดํ„ฐ
โ”œโ”€โ”€ hooks/                 # React Hooks
โ”‚   โ””โ”€โ”€ useAPI.ts         # API ํ›…
โ””โ”€โ”€ types/                 # TypeScript ํƒ€์ž… ์ •์˜
    โ””โ”€โ”€ api.ts

๐ŸŽฏ ์ฃผ์š” ํŽ˜์ด์ง€

  • ๋ฉ”์ธ ํŽ˜์ด์ง€ (/): ํ”Œ๋žซํผ ์†Œ๊ฐœ ๋ฐ ํ”ฝ ํ˜„ํ™ฉ ํ™•์ธ
  • ํ”ฝ ์„ ํƒ (/pick): ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ž‘ํ’ˆ ๊ฒ€์ƒ‰ ๋ฐ ์„ ํƒ
  • ํ”„๋กœํ•„ (/profile): ์„ ํƒํ•œ ํ”ฝ ์กฐํšŒ ๋ฐ ๊ด€๋ฆฌ

๐Ÿ”ง API ์„ค์ • ๊ฐ€์ด๋“œ

Spotify API

  1. Spotify Developer Dashboard์—์„œ ์•ฑ ์ƒ์„ฑ
  2. Client ID์™€ Client Secret ํš๋“
  3. .env.local์— ์ถ”๊ฐ€

TMDB API

  1. TMDB์—์„œ API ํ‚ค ์‹ ์ฒญ
  2. API ํ‚ค๋ฅผ .env.local์— ์ถ”๊ฐ€

Google Books API

  1. Google Cloud Console์—์„œ Books API ํ™œ์„ฑํ™”
  2. API ํ‚ค ์ƒ์„ฑ ํ›„ .env.local์— ์ถ”๊ฐ€

๐ŸŒŸ ํ–ฅํ›„ ๊ณ„ํš

  • ์‚ฌ์šฉ์ž ์ธ์ฆ ์‹œ์Šคํ…œ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ (๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ํ”ฝ ๋‘˜๋Ÿฌ๋ณด๊ธฐ)
  • ์†Œ์…œ ๋ฏธ๋””์–ด ๊ณต์œ  ๊ธฐ๋Šฅ
  • ํ”ฝ ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์—ฐ๊ฐ„ ํŠธ๋ Œ๋“œ ๋ถ„์„

๐Ÿ“ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค ํ•˜์— ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ

  1. Fork ํ”„๋กœ์ ํŠธ
  2. Feature ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ (git checkout -b feature/AmazingFeature)
  3. ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ปค๋ฐ‹ (git commit -m 'Add some AmazingFeature')
  4. ๋ธŒ๋žœ์น˜์— Push (git push origin feature/AmazingFeature)
  5. Pull Request ์—ด๊ธฐ

YOTY - 2025๋…„์„ ํŠน๋ณ„ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋‹น์‹ ๋งŒ์˜ ํ”ฝ์„ ์„ ํƒํ•ด๋ณด์„ธ์š”! ๐ŸŽญโœจ

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

About

Yours Of The Year

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages