Skip to content

Latest commit

ย 

History

History
112 lines (82 loc) ยท 5.99 KB

File metadata and controls

112 lines (82 loc) ยท 5.99 KB

์ง€์›๊ฐ PoC

์ง€์›๊ฐ์€ ์ฑ„์šฉ๊ณต๊ณ , ๊ธฐ์—… ์ •๋ณด, ์žฌ๋ฌด/๋ฌธํ™” ์‹ ํ˜ธ, ์‚ฌ์šฉ์ž ์ด๋ ฅ์„œ๋ฅผ ์—ฐ๊ฒฐํ•ด ์ง€์› ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ์ปค๋ฆฌ์–ด ๋ฆฌ์„œ์น˜ ์›น ์„œ๋น„์Šค PoC์ž…๋‹ˆ๋‹ค.

๊ตฌํ˜„ ๋ฒ”์œ„

  • Supabase Auth ๊ธฐ๋ฐ˜ ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์›Œํฌ์ŠคํŽ˜์ด์Šค
  • ํ™ˆ, ํ”„๋กœํ•„, ์ฑ„์šฉ๊ณต๊ณ  ๋ถ„์„, ๊ธฐ์—… ๋ฆฌ์„œ์น˜, ๋ฆฌํฌํŠธ, Markdown ๋‚ด๋ณด๋‚ด๊ธฐ ์ฆ‰์‹œ ์‚ฌ์šฉ
  • ์‚ฌ์šฉ์ž ํ”„๋กœํ•„, ๊ธฐ์ˆ ์Šคํƒ, ์„ ํ˜ธ ๋ฌธํ™”, ํšŒํ”ผ ์กฐ๊ฑด, ์ด๋ ฅ์„œ ํ…์ŠคํŠธ ์ €์žฅ
  • ์ฑ„์šฉ๊ณต๊ณ  URL ๊ธฐ๋ฐ˜ ์ž๋™ ์ถ”์ถœ ๋˜๋Š” ๋ณธ๋ฌธ ์ง์ ‘ ์ž…๋ ฅ
  • ์ง๋ฌด๋ช…, ๊ธฐ์ˆ ์Šคํƒ, ๊ฒฝ๋ ฅ ์š”๊ฑด, ์šฐ๋Œ€์‚ฌํ•ญ, ๋ชจํ˜ธํ•œ ํ‘œํ˜„ ์ถ”์ถœ
  • ๊ธฐ์—…๋ช…๋งŒ์œผ๋กœ ๋ฆฌ์„œ์น˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ƒ์„ฑ ๋ฐ ์ €๋น„์šฉ LLM ๊ณต๊ฐœ ๊ฒ€์ƒ‰/์š”์•ฝ
  • ์ž๋™ ์ถ”์ถœ๋กœ ๋ถ€์กฑํ•œ ๊ธฐ์—… ๊ธฐ๋ณธ์ •๋ณด, ์ฐธ๊ณ  ๋งํฌ, ๋ฆฌ์„œ์น˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๋ณด๊ฐ•
  • ์ง€์› ์ ํ•ฉ๋„, ์„ฑ์žฅ์„ฑ, ์•ˆ์ •์„ฑ, ์ปฌ์ฒ˜ํ•, ์ปค๋ฆฌ์–ด ๋ ˆ๋ฒ„๋ฆฌ์ง€ ์ ์ˆ˜ ์‚ฐ์ •
  • ์ง€์› ํŒ๋‹จ ๋ฆฌํฌํŠธ ์ƒ์„ฑ, ์ €์žฅ, ์ƒ์„ธ ์กฐํšŒ
  • ๋ฆฌํฌํŠธ Markdown ๋‚ด๋ณด๋‚ด๊ธฐ
  • ๊ฒ€์ •, ํฐ์ƒ‰, ๋ธ”๋ฃจ ๊ณ„์—ด ์ค‘์‹ฌ์˜ Flutter ๋””์ž์ธ ์‹œ์Šคํ…œ ์ ์šฉ

ํ˜„์žฌ PoC์—์„œ ํ† ํฐ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๋Š” ์˜์—ญ์€ ํšŒ์› ๋กœ๊ทธ์ธ ํ›„ ์‹คํ–‰๋˜๋Š” ๊ธฐ์—…๋ช… ๊ธฐ๋ฐ˜ ๋ฆฌ์„œ์น˜ ๊ฒ€์ƒ‰/์š”์•ฝ API๋ฟ์ž…๋‹ˆ๋‹ค. ์ด๋ ฅ์„œ, ํ”„๋กœํ•„, ์ฑ„์šฉ๊ณต๊ณ  ์ ์ˆ˜ ๊ณ„์‚ฐ์€ ๋กœ์ปฌ ๊ทœ์น™ ๊ธฐ๋ฐ˜ ๋ถ„์„์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ ์šฉ ์ •์ฑ…์€ docs/system_policies.md์— ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ๊ทธ์ธ ์„ค์ •

์นด์นด์˜ค ๋กœ๊ทธ์ธ์€ Supabase Auth์˜ Kakao Provider๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Flutter Web ๋นŒ๋“œ์—๋Š” Supabase URL๊ณผ publishable key๊ฐ€ ํ•„์š”ํ•˜๊ณ , Vercel ์„œ๋ฒ„๋ฆฌ์Šค API๋„ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ์ž ์„ธ์…˜์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

SUPABASE_URL=https://<project>.supabase.co
SUPABASE_PUBLISHABLE_KEY=sb_publishable_...
SUPABASE_SERVICE_ROLE_KEY=...
TOSS_PAYMENTS_CLIENT_KEY=test_ck_...
TOSS_PAYMENTS_SECRET_KEY=test_sk_...

Supabase ๋Œ€์‹œ๋ณด๋“œ์—์„œ Kakao Provider๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ , Kakao Developers์—๋Š” Supabase callback URL์„ redirect URI๋กœ ๋“ฑ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ ˆ์ฐจ๋Š” docs/auth_setup.md์— ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉค๋ฒ„์‹ญ, ๊ฒฐ์ œ ์ฃผ๋ฌธ, AI ๋ฆฌ์„œ์น˜ ํฌ๋ ˆ๋”ง ์ฐจ๊ฐ ํ…Œ์ด๋ธ”์€ docs/supabase_billing_schema.sql์„ Supabase SQL editor์—์„œ ์‹คํ–‰ํ•ด ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.

ํšŒ์› ํ”Œ๋žœ

ํ”Œ๋žœ ์ •์ฑ…์€ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๋Š” ์ƒˆ AI ๊ธฐ์—… ๋ฆฌ์„œ์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.

  • Free: ๋กœ์ปฌ ๋ถ„์„, ๋ฆฌํฌํŠธ, ๊ฒ€์ƒ‰ ๋ฏธ์…˜, ์บ์‹œ๋œ ๊ธฐ์—… ๊ทผ๊ฑฐ ์กฐํšŒ
  • Starter: ์›” 9,900์›, ์ƒˆ AI ๊ธฐ์—… ๋ฆฌ์„œ์น˜ 30ํšŒ
  • Starter ์˜คํ”ˆ์ด๋ฒคํŠธ: ์›” 2,900์›, ์ƒˆ AI ๊ธฐ์—… ๋ฆฌ์„œ์น˜ 30ํšŒ
  • Pro: ์›” 19,900์›, ์ƒˆ AI ๊ธฐ์—… ๋ฆฌ์„œ์น˜ 100ํšŒ
  • Team: ์›” 49,000์›, ์ƒˆ AI ๊ธฐ์—… ๋ฆฌ์„œ์น˜ 300ํšŒ

์ดˆ๊ธฐ ๊ณต๊ฐœ ๋ฒ„์ „์€ Free์™€ Starter๋งŒ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ์ œ์‚ฌ๋Š” Toss Payments๋กœ ๊ณ ์ •ํ•˜๊ณ , ์„ธ๋ถ€ ์ •์ฑ…์€ docs/membership_plans.md์— ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ์ œ๋Š” Toss Payments SDK v2 ๊ฒฐ์ œ์ฐฝ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ , /api/confirm-payment์—์„œ paymentKey, orderId, amount๋ฅผ ๊ฒ€์ฆํ•œ ๋’ค Starter ํฌ๋ ˆ๋”ง์„ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

LLM ์„ค์ •

๊ธฐ์—… ๋ฆฌ์„œ์น˜๋Š” Vercel ์„œ๋ฒ„๋ฆฌ์Šค ํ•จ์ˆ˜์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ๋กœ๊ทธ์ธ ํ† ํฐ ๊ฒ€์ฆ ํ›„ API ํ‚ค๊ฐ€ ์žˆ์œผ๋ฉด LLM์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. API ํ‚ค๊ฐ€ ์—†์œผ๋ฉด LLM ํ˜ธ์ถœ ์—†์ด ๊ธฐ์กด ์›Œํฌ์ŠคํŽ˜์ด์Šค์™€ ๊ฒ€์ƒ‰ ๋ฏธ์…˜๋งŒ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

# OpenAI ๊ธฐ๋ณธ๊ฐ’
OPENAI_API_KEY=...
JIWONGAK_LLM_PROVIDER=openai
JIWONGAK_OPENAI_MODEL=gpt-5.4-mini

# Kimi ์„ ํƒ ์‚ฌ์šฉ
MOONSHOT_API_KEY=...
JIWONGAK_LLM_PROVIDER=kimi
JIWONGAK_KIMI_MODEL=kimi-k2.5

# ๋น„์šฉ ์ƒํ•œ
JIWONGAK_MAX_OUTPUT_TOKENS=1800

๊ธฐ์—… ๋ฆฌ์„œ์น˜ LLM ์š”์ฒญ์—๋Š” ๊ธฐ์—…๋ช…๋งŒ ์ „์†กํ•˜๋ฉฐ, ์ด๋ ฅ์„œ ์›๋ฌธ๊ณผ ํ”„๋กœํ•„์€ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋””์ž์ธ ์‹œ์Šคํ…œ

๋””์ž์ธ ํ† ํฐ์€ lib/design_system/jiwongak_design.dart์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒ‰์ƒ: ๊ฒ€์ •, ํฐ์ƒ‰, ๋ธ”๋ฃจ ๊ณ„์—ด์„ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๋…ธ๋ž€์ƒ‰์€ ์ฃผ์˜/์„ ํƒ ๋ณด์กฐ ํฌ์ธํŠธ๋กœ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ„๊ฒฉ: 8px ๊ธฐ๋ฐ˜ ๋ฐฐ์ˆ˜ ์ฒด๊ณ„(JwSpace)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ˜•ํƒœ: ์นด๋“œ, ์ž…๋ ฅ, ๋ฒ„ํŠผ, ๋ฐฐ์ง€์— ์ผ๊ด€๋œ ๋ฐ˜๊ฒฝ(JwRadius)๊ณผ ๊ทธ๋ฆผ์ž(JwShadow)๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ์…˜: ํ™”๋ฉด ์ „ํ™˜๊ณผ ์„ ํƒ ์ƒํƒœ ๋ณ€ํ™”๋Š” JwMotion ํ† ํฐ์œผ๋กœ ์†๋„์™€ ๊ณก์„ ์„ ํ†ต์ผํ•ฉ๋‹ˆ๋‹ค.
  • ์ปดํฌ๋„ŒํŠธ ๊ทœ๊ฒฉ: ๋ฆฌ์ŠคํŠธ ํ–‰, ์‚ฌ์ด๋“œ๋ฐ” ํ•ญ๋ชฉ, ํŒจ๋„ ํ—ค๋”์˜ ์ตœ์†Œ ๋†’์ด๋Š” JwComponent์—์„œ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ํ…Œ๋งˆ: Flutter ThemeData๋Š” JwTheme.light์—์„œ ๋‹จ์ผ ์ง„์ž…์ ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋””์ž์ธ ๋ ˆํผ๋Ÿฐ์Šค ์ ์šฉ

ํ† ์Šค, ์˜์นด, ๋ฌด์‹ ์‚ฌ, ๋ฑ…ํฌ์ƒ๋Ÿฌ๋“œ์˜ ๊ณต๊ฐœ ์ž๋ฃŒ์™€ ์ตœ๊ทผ UI ํŠธ๋ Œ๋“œ๋ฅผ ์ง์ ‘ ๋ณต์ œํ•˜์ง€ ์•Š๊ณ , ๋‹ค์Œ ์›์น™๋งŒ ์ง€์›๊ฐ์— ๋งž์ถฐ ์žฌํ•ด์„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ขŒ์ธก ๋ฉ”๋‰ด๋Š” ์„ค๋ช… ํฌํ•จ/์•„์ด์ฝ˜ ์ถ•์†Œ ํ† ๊ธ€์„ ์ œ๊ณตํ•˜๊ณ , ์ƒ๋‹จ ๋ธŒ๋žœ๋“œ ์˜์—ญ๊ณผ ์ค‘์•™ ์ฝ˜ํ…์ธ  ์…ธ์„ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ™ˆ์€ ํžˆ์–ด๋กœ, ์ž‘์—… ํ๋ฆ„, ๋ฉ”ํŠธ๋ฆญ ์นด๋“œ๊ฐ€ ์ด์–ด์ง€๋Š” bentoํ˜• ๋ฐœ๊ฒฌ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ๋ฆฌ๊ฐ ์žˆ๋Š” ์นด๋“œ, ์•ฝํ•œ ์™ธ๊ณฝ์„ , ๊ฐ€๋ฒผ์šด ๊ทธ๋ฆผ์ž, ์งง์€ ์ „ํ™˜ ๋ชจ์…˜์œผ๋กœ ๋ฌด๊ฒ์ง€ ์•Š์€ ํ‘œ๋ฉด๊ฐ์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ๋Š” ๊ณผํ•œ ๋Œ€ํ˜• ํ—ค๋“œ๋ผ์ธ๋ณด๋‹ค ์ •๋ณด ๊ตฌ์กฐ์™€ ๊ฐ€๋…์„ฑ์„ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ ‘๊ทผ์„ฑ ๋ณด๊ฐ•์„ ์œ„ํ•ด ๋ฆฌ์ŠคํŠธ์™€ ๋‚ด๋น„๊ฒŒ์ด์…˜ ์„ ํƒ ์ƒํƒœ๋ฅผ Semantics๋กœ ํ‘œ์‹œํ•˜๊ณ , ์šฐ์ธก ์•„์ด์ฝ˜์—๋Š” ๊ธฐ๋Šฅ ๊ธฐ์ค€ ๋ผ๋ฒจ์„ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰

flutter pub get
flutter run -d chrome

๊ฒ€์ฆ

flutter analyze
flutter test
flutter build web

PoC ํ•œ๊ณ„

  • ํ˜„์žฌ ๊ตฌํ˜„์€ Flutter Web๊ณผ SharedPreferences Web ๋กœ์ปฌ ์ €์žฅ์†Œ ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ๊ตฌํ˜„์€ Supabase Auth ์นด์นด์˜ค ๋กœ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ํ”„๋กœํ•„/๋ฆฌํฌํŠธ ์„œ๋ฒ„ ๋™๊ธฐํ™”๋Š” ๋‹ค์Œ ๋‹จ๊ณ„ ๋ฒ”์œ„์ž…๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ๊ตฌํ˜„์˜ ์ฑ„์šฉ๊ณต๊ณ  ๋ถ„์„๊ณผ ๋ฆฌํฌํŠธ ์ ์ˆ˜ ๊ณ„์‚ฐ์€ ํ‚ค์›Œ๋“œ, ์ •๊ทœ์‹, ์ ์ˆ˜ ์‚ฐ์‹ ๊ธฐ๋ฐ˜์˜ ๋กœ์ปฌ ์ž๋™ ๋ถ„์„์ž…๋‹ˆ๋‹ค.
  • PRD์˜ Spring Boot, PostgreSQL, Redis, Worker, ์™ธ๋ถ€ API ์—ฐ๋™์€ ๋‹ค์Œ ๋‹จ๊ณ„์˜ ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ ๋ฒ”์œ„๋กœ ๋‚จ๊ฒจ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์žฌ๋ฌด/๋‰ด์Šค/๋ฌธํ™” ๋ฐ์ดํ„ฐ๋Š” ๋ฌด๋‹จ ํฌ๋กค๋งํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ทผ๊ฑฐ์™€ ๋งํฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.