๋ณด์ ๋งํฌ : 0x00F4B00์ํธํ: AES-256-GCM์ฌ์ ์: ๊ฑฐ์ง
๋ฐ์ดํฐ ์คํธ๋ฆผ : ๋ฒํผ๋ง ์์คํ
๋ฉ๋ชจ๋ฆฌ : 0.0MB
VRAM : 0.0MB
๋
ธ๋ : ์จ๋ผ์ธ
๋๊ธฐ์๊ฐ : 14ms
> ๋ถํ
์์ : ์ปค๋ ๋ก๋... ํ์ธ
์์คํ
์ด๊ธฐํ ์ค...
[000%]
4momentary: ์ผํ์ฉ ์ค์๊ฐ ํต์ ํ๋กํ ์ฝ ๋ฐ 3D ์คํ์ด์ค ๋ฆด๋ ์ด
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ ์๋ ๋ฌด๋ง์ฐฐ ์ผํ์ฉ ์ฑํ
ํ๋กํ ์ฝ. ํ๋ฐฑ ๋ธ๋ฃจํ๋ฆฌ์ฆ ๋ฏธํ, 3D ์ขํ ๊ณต๊ฐ ํ
๋ ๋ฉํธ๋ฆฌ, BYOK AI ์ปดํจ๋์ธ์ ๊ฒฐํฉ.
๋ผ์ด๋ธ ๋ฐ๋ชจ โข [๋น๊ณต๊ฐ ์ ์ฅ์]
ํ๋ก์ ํธ ๊ฐ์
- ์ญํ : ๋จ๋
๊ฐ๋ฐ์ ๋ฐ ๋ฆฌ๋ ํ์คํ ์ํคํ
ํธ (์ฒ์๋ถํฐ 100% ๋
์ ๊ฐ๋ฐ)
- ๋ผ์ด๋ธ ๋ฐ๋ชจ: 4momentary.vercel.app
- ์ ์ฅ์: ๋น๊ณต๊ฐ ์ ์ฅ์
- ๊ธฐ์ ์คํ: Next.js 16 (App Router, Turbopack), React 19, TypeScript, Tailwind CSS v4, Lucide React, Upstash Redis, PeerJS (WebRTC), DeepSeek AI API, Web Audio API, Canvas API
- ํต์ฌ ์ฑ๊ณผ: 1์ด ๋ฏธ๋ง์ ์ผํ์ฉ ์ฑํ
๋ฐฉ ์์ฑ ์๋, ์๊ตฌ ์ถ์ 0๊ฑด, ์ฌ์ฉ์ ๊ณ์ 0๊ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฉ์์ง ์ ์ฅ 0๊ฑด, ๋ฃธ ๋ง๋ฃ ์์ (T)์ ์์ ํ ๋ฐ์ดํฐ ํ๊ธฐ๋ฅผ ๋ณด์ฅ.
- ์์ฝ: 4momentary๋ Next.js 16, React 19, Tailwind CSS v4๋ก ์ ์๋ ๋ธ๋ฃจํ๋ฆฌ์ฆ ์คํ์ผ์ ๋ฌด๋ง์ฐฐ ์ผํ์ฉ ํต์ ํ๋กํ ์ฝ์
๋๋ค. ๋ฃธ ๋ง๋ฃ ์์ (T)์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์๋ฉธํ๋ค๋ ์ํ์ ์ค๊ณ๋ฅผ ๋ฐํ์ผ๋ก ์ผํ์ฉ ๋ฉํฐ์ฑ๋ ๋ก๋น, ๋ธ๋ผ์ฐ์ ์บ๋ฒ์ค ๊ธฐ๋ฐ 1MB ์ด๋ฏธ์ง ๊ณต์ , WebRTC P2P ๋ฆด๋ ์ด, ์ธํฐ๋ํฐ๋ธ 3D ๊ณต๊ฐ ๋ ์ด๋ ์ง๋, ๊ทธ๋ฆฌ๊ณ ํ๋ฅด์๋ ์ง์นจ๊ณผ ์น ๋๊ตฌ๋ฅผ ๊ฐ์ถ ํด๋ผ์ด์ธํธ ์ธก BYOK AI ์ปดํจ๋์ธ(The Moth)์ ์ ๊ณตํฉ๋๋ค.
์ํ์ ๊ธฐ์ด ๋ฐ ์ ํ ์ฒ ํ
์์คํ
์ ์ฒด์ ์ํคํ
์ฒ๋ ๋ค์๊ณผ ๊ฐ์ ์๋ฐํ ์ํ ๊ณต์์ผ๋ก ์ ์๋ฉ๋๋ค:
4momentary(T) = โซโแต ( peers โ messages ) dt โ accounts โ archive โ tracking
room'(t) = peers(t) โ messages(t) [0 โค t < T]
lim (t โ Tโป) room(t) = โ
ํต์ฌ ์ฉ์ด ์ ์:
- room (๋ฃธ): ์ด๋ฆ๊ณผ ๊ณต์ ์นด์ดํธ๋ค์ด ์๊ณ๋ฅผ ๊ฐ์ถ ๋
๋ฆฝ ๊ณต๊ฐ. ์ถ๊ฐ ์ค์ ๋ถํ์.
- channel (์ฑ๋): ๋ฃธ ๋ด๋ถ์ ๋ฌด์ ํ ํ์ ์คํธ๋ฆผ์ผ๋ก, ๊ฐ ์ฑ๋๋ง๋ค ๋
๋ฆฝ๋ ๋ํ ๊ธฐ๋ก์ ์ ์ง.
- category (์นดํ
๊ณ ๋ฆฌ): ์ฑ๋ ์ด๋ฆ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋
๋ฆฝ์ ์ผ๋ก ๊ตฌ์ฑ๋๋ ๋
ผ๋ฆฌ์ ํด๋ ๊ทธ๋ฃน.
- link (๋งํฌ): ๋จ ํ๋์ ๊น๋ํ URL. ์ด๋ ์๋ฝ, ํ์๊ฐ์
, ์ฑ ์ค์น ๋ถํ์.
- timer (ํ์ด๋จธ): 30๋ถ๋ถํฐ 24์๊ฐ๊น์ง ์๋ฒ ๊ณต์ธ ์นด์ดํธ๋ค์ด. ํธ์คํธ๋ ์ธ์ ๋ ์กฐ๊ธฐ ์ข
๋ฃ ๊ฐ๋ฅ.
- โ (์ถ๊ฐ): ๋์ฐฉํ๋ ์ฆ์ ์ค์๊ฐ์ผ๋ก ์ถ๊ฐ๋๋ ์ฐธ์ฌ์ ๋ฐ ๋ฉ์์ง.
- โ accounts (๊ณ์ ์ ์ธ): ๊ฐ์
์๋ ๋ก๊ทธ์ธ๋ ์์.
- โ archive (์์นด์ด๋ธ ์ ์ธ): T ์ดํ์๋ ์ด๋ค ๋ฉ์์ง๋ ์ฒจ๋ถํ์ผ๋ ๋จ์ง ์์.
- โ tracking (์ถ์ ์ ์ธ): ์ฟ ํค, ์ ๋๋ฆฌํฑ์ค, ์ฌ์ฉ์ ํ๋กํ์ผ๋ง, ๊ด๊ณ ํฝ์
์์.
- T (๋ง๋ฃ ์์ ): ๋ฃธ๊ณผ ํ ๋น๋ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ ํ ์๋ฉธํ๋ ๋ถ๋ณ์ ํ์์คํฌํ.
- โ
(๊ณต์งํฉ/์๋ฉธ): ๋จ์ํ '์ํํธ ์ญ์ '๊ฐ ์๋๋ผ, ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ญ์ ํ ๋ฐ์ดํฐ์กฐ์ฐจ ๋จ์ง ์๋ ์ํ.
ํด๊ฒฐํ๊ณ ์ ํ ๋ฌธ์ ์ ์ ๋ต์ ๊ธฐํ
- ๊ฐ์์ ์๊ตฌ ์์นด์ด๋ธ์ ๋ถ๋ด: ํ๋ ๋ฉ์ ์ (Discord, Slack, Telegram, WhatsApp)๋ ๋ํ ๋ด์ฉ, ์ฒจ๋ถํ์ผ, ์์
๊ทธ๋ํ, ํ๋ ๋ก๊ทธ๋ฅผ ํด๋ผ์ฐ๋์ ์๊ตฌ ์ ์ฅํฉ๋๋ค. ์งง์ ์์ ํ์์กฐ์ฐจ ์๊ตฌ์ ์ธ ๋์งํธ ํ์ ์ ๋จ๊น๋๋ค.
- ์จ๋ณด๋ฉ ๋ง์ฐฐ: ์คํ ๋์
, ์ฅ์ ๋์, ๋์์ธ ๊ฒํ , ์ธํฐ๋ทฐ, ๊ฒ์ ์ ๋ ฅ ํ์์ฉ ์์ ๊ณต๊ฐ์ ๋ง๋ค ๋๋ ํ์๊ฐ์
๊ณผ ์ฑ ์ค์น๊ฐ ๊ฐ์ ๋ฉ๋๋ค.
- ๋น๋ํด์ง ์ธํฐํ์ด์ค: ๊ธฐ์กด ํด๋ค์ ํ๋ฉด ๊ฐ๋ ์๋ฆผ ๋ฐฐ์ง์ ํ๋ คํ ์ฅ์์ผ๋ก ๋ํ์ ์ง์ค์ ๋ฐฉํดํฉ๋๋ค.
- ์ฐ๋ฆฌ์ ๊ธฐํ: ํ๋ฐฑ ๋ธ๋ฃจํ๋ฆฌ์ฆ ๋ฏธํ, 1ํด๋ฆญ ๋ฃธ ์์ฑ, ์์ ํ ๋น์๊ตฌ์ฑ ํ๋ผ์ด๋ฒ์ ๋ณด์ฅ, ๊ฒฝ๋ AI ์ง์์ ํตํฉํ ๊ตฐ๋๋๊ธฐ ์๋ ๋๊ตฌ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ.
์ํคํ
์ฒ ๋ฐ ๊ธฐ์ ์ ์์ฌ๊ฒฐ์
1. ์ธ๋ฉ๋ชจ๋ฆฌ ์ฃ์ง ๋ฆด๋ ์ด ๋ฐ Redis TTL ์๋ ์๋ฉธ
- ์ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฝ์ด: ๋ฃธ์ ๋ผ์ดํ์ฌ์ดํด์ ์๋ฒ์ ํ๋ฐ์ฑ ์ธ๋ฉ๋ชจ๋ฆฌ(
/api/room/[roomId])์์ ์์ ํ ๋์ํฉ๋๋ค.
- Redis TTL ์์ ์ฅ์น: Upstash Redis ์ฌ์ฉ ์, ๋จ์ ์๊ฐ๊ณผ ์ผ์นํ๋ ์๊ฒฉํ TTL์ด ๋ถ์ฌ๋ฉ๋๋ค. ์นด์ดํธ๊ฐ 0์ด ๋๋ฉด Redis๊ฐ ์๋ ๊ฐ๋น์ง ์ปฌ๋ ์
์์ด ํค๋ฅผ ์ฆ์ ์๋ ์ ๊ฑฐํฉ๋๋ค.
- ์๋ฒ ๊ถํ์ ์๊ฐ ๋๊ธฐํ: ๋ง๋ฃ ์์ (
expiresAt)์ ์๋ฒ์์ ์๊ฒฉํ ๊ฒ์ฆ๋ฉ๋๋ค. ๋ง๋ฃ ํ์๋ API๊ฐ ์ฆ์ HTTP 403์ ๋ฐํํ์ฌ ์ถ๊ฐ ๋ฉ์์ง ์ ์ก์ ์ฐจ๋จํฉ๋๋ค.
2. ์ง์ WebRTC P2P ๋ฉ์ ๋คํธ์ํฌ
- P2P ์ง์ ๋ฐ์ดํฐ ์ฑ๋: ๋์ผ ๋ฃธ ๋ด์ ๋ธ๋ผ์ฐ์ ๋ PeerJS์ ๊ณต๊ฐ STUN ์๋ฒ๋ฅผ ํตํด ์ง์ WebRTC ์ฐ๊ฒฐ์ ์๋ฆฝํ์ฌ ๊ทน๋๋ก ๋ฎ์ ๋ ์ดํด์๋ฅผ ๊ตฌํํฉ๋๋ค.
- ์ํํ ํด๋ฐฑ: ๊ธฐ์
๋ฐฉํ๋ฒฝ์ด๋ ๋์นญํ NAT๋ก P2P ์ฐ๊ฒฐ์ด ์ฐจ๋จ๋ ๊ฒฝ์ฐ, ํด๋ผ์ด์ธํธ๋ ์๋ฒ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฆด๋ ์ด๋ก ๋งค๋๋ฝ๊ฒ ์ ํ๋ฉ๋๋ค.
- ๋ฉํฐ ํญ BroadcastChannel: ๋์ผ ๊ธฐ๊ธฐ์์ ์ด๋ฆฐ ์ฌ๋ฌ ํญ์
BroadcastChannel API๋ฅผ ํตํด ๋คํธ์ํฌ ๋์ญํญ ๋ญ๋น ์์ด ์ค์๊ฐ ๋๊ธฐํ๋ฉ๋๋ค.
3. ๋ฉํฐ์ฑ๋ ๋ฐ ์นดํ
๊ณ ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ
- ์คํค๋ง ์ค๋ฒํค๋ ์ ๋ก: ์ฑ๋์ ๋ณ๋ DB ํ
์ด๋ธ ์์ด ๋ฉ์์ง์ ๋ถ์ฐฉ๋๋ ๋ฉํ๋ฐ์ดํฐ ํ๊ทธ(
Message.channelId)๋ก ๊ฐ๋ณ๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค.
- ์ ์ ์ ์๋ ์นดํ
๊ณ ๋ฆฌ: ์ฑ๋์ ํด๋(
Message.categoryId)๋ก ๊ทธ๋ฃนํํ์ฌ ๋ฐฑ์๋ ์ค์ ์์ด Discord ์คํ์ผ์ ์ ๋๋ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฑ๋ ๊ฒฉ๋ฆฌ: ๋ํ ๋ชฉ๋ก, ๋ฉ์
, ๊ฒ์์ ์ ํ๋ ์ฑ๋๋ก ์ ํ๋๋ฉฐ, ์ ์ฒด ์์คํ
๊ณต์ง๋ง ๋ชจ๋ ์ฑ๋์ ๊ณตํต ๋
ธ์ถ๋ฉ๋๋ค.
4. 3D ๊ณต๊ฐ ๋ ์ด๋ ์ง๋ ๋ฐ ํ
๋ ๋ฉํธ๋ฆฌ
- 3์ฐจ์ ๊ฐ์ ์ขํ ๋งคํ: ๋ชจ๋ ๋ฃธ์ ๊ณ ์ ํ ๊ฐ์ 3D ๊ณต๊ฐ ์ขํ (X, Y, Z)๋ฅผ ๋ถ์ฌ๋ฐ์ต๋๋ค.
- ์ธํฐ๋ํฐ๋ธ 3D ๋ ์ด๋: ์ฌ์ฉ์๋ 3์ถ ๊ถค๋ ๋ ์ด๋์์ ๊ถค๋ ํ์ , ์ด๋, ์ค, ์ขํ ์ํ๋ฅผ ํตํด ํ์ฑํ๋ ๋ฃธ์ ์์ ๋กญ๊ฒ ํ์ํ ์ ์์ต๋๋ค.
- ๋๋๋ง ๋๋น ์ฌ์ฉ์ ๋ฌด๋ฆฌ: ์ ์ ์ค์ธ ์ ์ ๋ ๊ณต๊ฐ์ ์ ์ํ๋ ์ ๋๋ฉ์ด์
๋๋น ๊ตฐ์ง์ผ๋ก ์๊ฐํ๋์ด ์ค์๊ฐ ํ์ฑ๋๋ฅผ ์ง๊ด์ ์ผ๋ก ๋ณด์ฌ์ค๋๋ค.
5. ํด๋ผ์ด์ธํธ ์ธก 1MB ๋ฏธ๋์ด ํ์ดํ๋ผ์ธ & Beehive ์์ ์ ํ๊ธฐ
- Canvas ์ธ๋ธ๋ผ์ฐ์ ์์ถ: ํด๋ฆฝ๋ณด๋(
Ctrl+V)๋ ํ์ผ ์ ํ์ผ๋ก ์
๋ ฅ๋ ์ด๋ฏธ์ง๋ HTML5 Canvas๋ฅผ ํตํด ์๋์ผ๋ก ๋ค์ด์ํ๋ง๋์ด 1MB ์ฉ๋ ์ ํ์ ์๊ฒฉํ ์ค์ํฉ๋๋ค.
- ์ผํ์ฉ ๋ฏธ๋์ด: ์ ์ก ์ ์ธ๋ค์ผ ๊ฒํ , ๋ธ๋ฃจํ๋ฆฌ์ฆ ํ์คํฌ๋ฆฐ ๋ผ์ดํธ๋ฐ์ค ๋ทฐ์ด๋ฅผ ์ง์ํ๋ฉฐ ๋ฃธ ๋ง๋ฃ ์ ๋ณต๊ตฌ ๋ถ๊ฐ๋ฅํ๊ฒ ์๋ฉธํฉ๋๋ค.
- 39์
Beehive ๋ฒ์งํ ํ๋ ํธ: ๋ง๋ฌผ๋ฆฐ SVG ์ก๊ฐํ ๋์์ธ์ผ๋ก ๋ฐฐ๊ฒฝ ๋ฐ๊ธฐ์ ๋ง์ถฐ ํ
์คํธ ๋๋น(
isLightColor)๋ฅผ ์๋์ผ๋ก ๊ณ์ฐํฉ๋๋ค.
6. The Moth: BYOK AI ์ปดํจ๋์ธ ๋ฐ ๋๋ ํฐ๋ธ ๋ง์ผํ๋ ์ด์ค
- ๊ฐ์ธ ํค ์ฌ์ฉ (BYOK): ์ฌ์ฉ์์ DeepSeek API ํค๋ก ๊ตฌ๋๋๋ฉฐ, ํค๋ ๋ธ๋ผ์ฐ์
sessionStorage์๋ง ์ ์ฅ๋๊ณ ์๋ฒ๋ ๋ํ๋ก์๋ ์ ๋ ๋จ์ง ์์ต๋๋ค.
- ๋๋ ํฐ๋ธ ๋ง์ผํ๋ ์ด์ค: ๋ํ ์ฝ์น(Dotabuff/Dotafury ํจ์น ๋ถ์ ๋ฌธ๋ฒ ๋ด์ฅ), ์คํฌ์ธ ์ ๋๋ฆฌ์คํธ, ์๋ฆฌ๊ณผํ, ๋ฆฌ์์น, ๋น์ฆ๋์ค ๋ฑ ๋ง์ถคํ ์ง์นจ์ ํ์ฌ.
- ์์ ํ ์น ๊ฒ์ ๋๊ตฌ: DuckDuckGo ๊ฒ์ ๋ฐ ์๋ฒ ๊ฒฝ์ ์นํ์ด์ง ์ฝ๊ธฐ๋ฅผ ์ง์ํ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ ์บ์ฑ ๋ฐ ๊ฐ์ธ ์๋ณ์ ๋ง์คํน์ ์ ์ฉ.
- ๋ค๋ฅธ ๋ฃธ ํ์ ์ปดํจ๋์ธ ํ๊ฒฌ: ์ฌ๋ฌ ๋ฃธ์ ๋์์ ์ด์์คํดํธ๋ฅผ ๋ฐฐ์น(
deploy_companion)ํ ์ ์์ต๋๋ค.
7. ๋ธ๋ฃจํ๋ฆฌ์ฆ ๋ฉํฐ ํ
๋ง ์์ง
- 5๊ฐ์ง ๊ฑด์ถํ์ ํ
๋ง:
- 4momentary (Noir): ํ์์ ๋จ์ ๋ธ๋ (
#000000 ๋ฐฐ๊ฒฝ, ์๋ฐฑ์ ์ธ๊ณฝ์ ).
- Stark White: ๊ณ ๋๋น ์ข
์ด ์ง๊ฐ ๋ธ๋ฃจํ๋ฆฌ์ฆ (
#ffffff ๋ฐฐ๊ฒฝ, ์ง์ ๊ฒ์์ ์ค์ ).
- Terminal Phosphor: ๋ ํธ๋ก CRT ๋
น์ ์ธ๊ด (
#050a05 ๋ฐฐ๊ฒฝ, ๋ค์จ ๊ทธ๋ฆฐ ํฐํธ).
- Newsprint: ์ ๋ฌธ ์ฉ์ง์ ๋ชฉํ ์ํฌ ๊ฐ์ฑ (
#f4efe6 ๋ฐฐ๊ฒฝ, #141311 ํ
์คํธ).
- Industrial: ์ฒญ์ฌ์ง ๋๋ฉด ์คํ์ผ์ ์์๊ณผ ์ฌ๋ ์ดํธ (
#091018 ๋ฐฐ๊ฒฝ, #00e5ff ํฌ์ธํธ).
- ๋ชจ๋ฐ์ผ ํผ์คํธ:
100dvh๋ก ๊ณ ์ ๋ ๋ทฐํฌํธ๋ก ๊ฐ๋ก ์คํฌ๋กค์ ๋ฐฉ์งํ๊ณ Web Audio API๋ฅผ ํ์ฉํ ๊ฐ๊ฒฐํ ํ
ํฑ ์ฌ์ด๋๋ฅผ ์ ๊ณต.
ํต์ฌ ์งํ ๋ฐ ์์คํ
์คํ
ํ๋ผ์ด๋ฒ์, ๋ณด์ ๋ฐ ๋ฒ์ ๋ณด์ฅ
- ์ ๋ ์์งํ์ง ์๋ ํญ๋ชฉ: ์ด๋ฉ์ผ ์ฃผ์, ์ ํ๋ฒํธ, ๊ฐ์ธ ๋น๋ฐ๋ฒํธ, ๋ถ์์ฉ ํธ๋ํน ํฝ์
, IP์ ๋ํ๋ก์ ์ฐ๊ฒฐํ๋ ์๊ตฌ ์ ์ ๋ก๊ทธ.
- ๋ธ๋ผ์ฐ์ ์ ๋ณด๊ด๋๋ ํญ๋ชฉ: ํ์ ๋๋ค์, Beehive ์์, ํ
๋ง ์ค์ ์
localStorage์ ์ ์ฅ๋ฉ๋๋ค. DeepSeek API ํค์ ๋น๊ณต๊ฐ ๋ฃธ ํ ํฐ์ sessionStorage์๋ง ๋ณด๊ด๋๋ฉฐ ํญ์ ๋ซ์ผ๋ฉด ์ฆ์ ํ๊ธฐ๋ฉ๋๋ค.
- ๋ฆด๋ ์ด๊ฐ ์ค์๊ฐ์ผ๋ก ๋ณด๊ดํ๋ ํญ๋ชฉ: ํ์ฌ ์ฐธ์ฌ์ ๋ช
๋จ(25์ด ์ฃผ๊ธฐ ํํธ๋นํธ), ๋ฃธ ํ ํฝ, 3D ์ขํ, ์ ์ก ์ค์ธ ๋ฉ์์ง ํจํท.
- ํ์คํ ์๋ฉธ ๋ณด์ฅ: ํ์์คํฌํ T์ ๋๋ฌํ๋ ์ฆ์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฐํ๋ฉ๋๋ค. ๋ง๋ฃ๋ ๋ฃธ ์ ๊ทผ ์ HTTP 404๊ฐ ๋ฐํ๋์ด ์ถ๊ฐ ์ฝ๊ธฐ๋ ์์ฑ์ด ์์ฒ ๋ด์๋ฉ๋๋ค.
ํ๋ก์ ํธ ํ๊ณ ๋ฐ ํฅํ ๊ณผ์
- ํ์ตํ ๊ตํ: ์๊ตฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ด ๋ค์ค ํญ ๋ฐ ๊ธฐ๊ธฐ ๊ฐ ์ค์๊ฐ ๋๊ธฐํ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด
BroadcastChannel๊ณผ ์ธ๋ฉ๋ชจ๋ฆฌ TTL ๋งต์ ๊ฒฐํฉ์ด ๋งค์ฐ ํจ๊ณผ์ ์ด์์ต๋๋ค.
- WebRTC ์์ ์ฑ: PeerJS ๋ฐ์ดํฐ ์ฑ๋๊ณผ ์ฃ์ง ๋ผ์ฐํธ ๊ฐ์ ์ ์ฐํ ์๋ ํด๋ฐฑ ๊ตฌ์กฐ๊ฐ ์ฌ๋ด ํ์๋ง ํ๊ฒฝ์ ์ฌ์ฉ์์๊ฒ ํ์์ ์ด์์ต๋๋ค.
- ํฅํ ๊ณํ: Web Crypto๋ฅผ ์ฌ์ฉํ ์ธ์
๋ณ ์ข
๋จ๊ฐ ์ํธํ ์๋ช
๋์
๋ฐ 3D ๊ณต๊ฐ ์ง๋์ ๋ค์ฐจ์ ํด๋ฌ์คํฐ๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ถ๊ฐํ ์์ ์
๋๋ค.
๊ธฐ์ฌํ ๋ถ๋ถ
- ํ๋กํ ์ฝ ๋ฐ ๋ฐฑ์๋ ์ค๊ณ: ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฃธ ์คํ ์ด, Redis TTL ์๋ฉธ ๋ก์ง, ์๋ฒ ์ฃผ๋ํ ์นด์ดํธ๋ค์ด ๋๊ธฐํ, Edge API ๋ฆด๋ ์ด ๋ผ์ฐํธ ๊ตฌํ.
- ํ๋ก ํธ์๋ ๋ฐ UI/UX ๋์์ธ: ํ๋ฐฑ ๋ธ๋ฃจํ๋ฆฌ์ฆ ๋น์ฃผ์ผ, 5๊ฐ์ง ํ
๋ง ํ๋ ํธ,
100dvh ๋ชจ๋ฐ์ผ ๋ ์ด์์, 39์
Beehive ์์ ์ ํ๊ธฐ ๊ฐ๋ฐ.
- 3D ํ
๋ ๋ฉํธ๋ฆฌ ๋ฐ ๊ณต๊ฐ ๋งต: 3์ฐจ์ ์ขํ ํฌ์, ๊ถค๋ ์นด๋ฉ๋ผ ์ ์ด ๋ฐ ๋๋น ํํฐํด ๋ฌด๋ฆฌ ์ฐ์ถ.
- AI ์ปดํจ๋์ธ ๋ฐ ํด๋ง: BYOK DeepSeek ์ปดํจ๋์ธ(The Moth), ์ง์นจ ๋ง์ผํ๋ ์ด์ค, ๋ํ ํจ์น ๊ตฌ๋ฌธ ๋ถ์ ๋ฐ ์น ๊ฒ์ ๋๊ตฌ ๊ตฌํ.
- ํ์ง ๊ด๋ฆฌ ๋ฐ ๊ฒ์ฆ: Next.js 16 / React 19 ๋น๋ ์๋ฌ 0๊ฑด, ESLint ๊ฒฝ๊ณ 0๊ฑด, Impeccable ํ์ง ๊ท๊ฒฉ ์๋ฒฝ ์ค์.
์ค์๊ฐ ๋ฐฐํฌ ๋ฐ ์ ์ฅ์
- ๋ผ์ด๋ธ ๋ฐฐํฌ: Vercel์์ ํ๋ก๋์
๋ฐฐํฌ ์ค: 4momentary.vercel.appใ
- ์ ์ฅ์ ์ ๊ทผ: ๋น๊ณต๊ฐ ์ ์ฅ์ (์ฒ์๋ถํฐ ๋๊น์ง 100% ๋
์ ๊ตฌ์ถ๋ ๋
๋ฆฝ IP).