"ํด๋ฆญ ํ ๋ฒ์ผ๋ก ๊ฒฐ์ ๋๋ ์ด๋ช !" ์ธ๋ จ๋ ๋ฌผ๋ฆฌ ์์ง ๊ธฐ๋ฐ์ ์ ๋น๋ฝ๊ธฐ ์ถ์ฒจ๊ธฐ์ ๋๋ค. ํ ๋๋๊ธฐ, ์ ๋ ์ ๊ธฐ, ๋ฉ๋ด ๊ฒฐ์ ๋ฑ ๊ณต์ ํ ์ ํ์ด ํ์ํ ๋ชจ๋ ์๊ฐ์ ์ฌ์ฉํ์ธ์.
| ๋ฉ์ธ ์ถ์ฒจ ํ๋ฉด | ๋น์ฒจ์ ๋ฐํ ๋ชจ๋ฌ |
|---|---|
![]() |
![]() |
- ๋ฌผ๋ฆฌ ์์ง ๊ธฐ๋ฐ ์ถ์ฒจ: Matter.js๋ฅผ ์ด์ฉํ ์ค์ ๋ก๋ ๋จธ์ ๊ฐ์ ์ญ๋์ ์ธ ๊ณต์ ์์ง์.
- ๋ชฐ์ ๊ฐ ๋์น๋ ์ฌ์ด๋: Web Audio API๋ฅผ ํ์ฉํ์ฌ ๊ณต์ด ๋ถ๋ชํ๊ณ ์์ด๋ ์๋ฆฌ๋ฅผ ์ค์๊ฐ์ผ๋ก ๊ตฌํ.
- ๋น์ฒจ ์ถํ ์๊ฐ ํจ๊ณผ: Canvas Confetti๋ฅผ ์ฌ์ฉํ์ฌ ๋น์ฒจ์ ๋ฐํ ์๊ฐ์ ํ๋ คํ ์ฐ์ถ.
- ์ค์๊ฐ ์ฐธ๊ฐ์ ๊ด๋ฆฌ: ์ฐธ๊ฐ์ ์ด๋ฆ์ ์ ๋ ฅํ๊ณ ์ฆ์ ์ถ์ฒจ ๋ฆฌ์คํธ์ ๋ฐ์.
- ๋น์ฒจ ๋ด์ญ ์ ์ฅ (History): ๋ธ๋ผ์ฐ์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ฅผ ์ด์ฉํด ์๋ก๊ณ ์นจ ํ์๋ ๊ธฐ๋ก ์ ์ง. (๊ฐ๋ณ ์ญ์ ๋ถ๊ฐ๋ก ๊ณต์ ์ฑ ํ๋ณด)
- ๊ณ ํด์๋ ํ๋น์ฝ & SEO: Next.js App Router์ ๋์ ์์ด์ฝ ๋ฐ ๋ฉํ๋ฐ์ดํฐ ์ต์ ํ.
- ๋ชจ๋ฐ์ผ ์ต์ ํ & ํ ํ๋ฉด ์์ด์ฝ: ๋ฐ์ํ ๋์์ธ๊ณผ ์ค๋งํธํฐ ์ ์ฉ ์์ด์ฝ(
apple-icon) ์ง์. - ๊ฐ๋ฐ์ ์์ (Support): ์นด์นด์คํ์ด QR ์ฝ๋๋ฅผ ํตํ ๋ฐ๋ปํ ์ปคํผ ํ ์์ ํ์ ๊ธฐ๋ฅ.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- State Management: Zustand
- Physics Engine: Matter.js
- Animation: Framer Motion & Canvas Confetti
- Audio Logic: Web Audio API
- Styling: Tailwind CSS
- ๋ฌธ์ : ๋ธ๋ผ์ฐ์ ์ฐฝ ํฌ๊ธฐ๊ฐ ๋ณํ ๋ ์บ๋ฒ์ค ํฌ๊ธฐ๋ ์กฐ์ ๋์ง๋ง, ๋ด๋ถ ๋ฌผ๋ฆฌ ์์ง(
Matter.World)์ ๊ฒฝ๊ณ(Boundary) ์ขํ๊ฐ ๊ฐฑ์ ๋์ง ์์ ๊ณต์ด ํ๋ฉด ๋ฐ์ผ๋ก ํ์ถํ๋ ํ์ ๋ฐ์. - ํด๊ฒฐ:
useEffect๋ด์์ ๋ฆฌ์ฌ์ด์ฆ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๊ณ ,Matter.Body.setPosition์ ํตํด ๋ฐ๋ฅ๊ณผ ๋ฒฝ๋ฉด ๊ฐ์ฒด์ ์์น๋ฅผ ๋์ ์ผ๋ก ์ฌ๊ณ์ฐํ๋๋ก ๋ก์ง ์์ .
- ๋ฌธ์ : ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR) ๊ฒฐ๊ณผ๋ฌผ๊ณผ ํด๋ผ์ด์ธํธ์ ๋ก์ปฌ์คํ ๋ฆฌ์ง ๋ฐ์ดํฐ๋ฅผ ํฌํจํ UI๊ฐ ์ผ์นํ์ง ์์
Hydration failed์๋ฌ ๋ฐ์. - ์์ธ: Next.js๋ ์๋ฒ์์ ๋จผ์ HTML์ ์์ฑํ๋๋ฐ, ์ด๋ ์๋ฒ๋ ๋ธ๋ผ์ฐ์ ์
localStorage์ ์ ๊ทผํ ์ ์์ด ๋ฐ์ดํฐ๊ฐ ๋น์ด์๋ ์ํ๋ก ๋ ๋๋งํจ. ๋ฐ๋ฉด ํด๋ผ์ด์ธํธ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ค ํ๋ฉด์ ์ถฉ๋ ๋ฐ์. - ํด๊ฒฐ:
useState์useEffect๋ฅผ ์กฐํฉํ์ฌ ์ปดํฌ๋ํธ ๋ง์ดํธ ์ดํ์๋ง ๋ก์ปฌ์คํ ๋ฆฌ์ง ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋งํ๋๋ก ์ ์ด.- Zustand์
persist๋ฏธ๋ค์จ์ด๋ฅผ ์ฌ์ฉํ ๋skipHydration: true์ต์ ์ ์ ์ฉํ๊ฑฐ๋,hasHydrated์ํ ๋ณ์๋ฅผ ๋์ ํ์ฌ ํ์ด๋๋ ์ด์ ์๋ฃ ์ ๊น์ง ๋ ๋๋ง์ ์ ์(Suppress)ํ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐ.
# ์์กด์ฑ ์ค์น
npm install
# ๋ก์ปฌ ๊ฐ๋ฐ ์๋ฒ ์คํ
npm run dev
# ํ๋ก๋์
๋น๋
npm run buildThis project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2026 yunsuper

