Skip to content

Latest commit

ย 

History

History
executable file
ยท
101 lines (61 loc) ยท 3.31 KB

File metadata and controls

executable file
ยท
101 lines (61 loc) ยท 3.31 KB

๐Ÿ“Š M-DEENO Prop-Logicโ„ข

"์ •๋น„์‚ฌ์—… ์‚ฌ์—…์„ฑ ๋ฆฌ์Šคํฌ๋ฅผ ์ •๋Ÿ‰ํ™”ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„ ์—”์ง„" > ๋„์‹œ๊ณตํ•™ ์‹œ๋‚˜๋ฆฌ์˜ค์™€ ๊ณต์‚ฌ๋น„ ๋ณ€์ˆ˜๋ฅผ ๊ฒฐํ•ฉํ•œ ์‹ค์‹œ๊ฐ„ ์‚ฌ์—…์„ฑ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ

Next.js Supabase Render


๐Ÿš€ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

Prop-Logic์€ ์ •๋น„์‚ฌ์—…(์žฌ๊ฑด์ถ•/์žฌ๊ฐœ๋ฐœ) ๊ณผ์ •์—์„œ ์กฐํ•ฉ์›์ด ๊ฒช๋Š” ๋ถ„๋‹ด๊ธˆ ๋ถˆํ™•์‹ค์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์ˆ˜์‹์„ ๋ฐฐ์ œํ•˜๊ณ  ํ•ต์‹ฌ ๋ณ€์ˆ˜์ธ **'๊ณต์‚ฌ๋น„'**์™€ **'์ž์‚ฐ๊ฐ€์น˜'**๋ฅผ ์ œ์–ดํ•˜์—ฌ ๋ˆ„๊ตฌ๋‚˜ ์ง๊ด€์ ์œผ๋กœ ์‚ฌ์—… ์•ˆ์ •์„ฑ์„ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ํ”Œ๋žซํผ์€ ์กฐํ•ฉ์› ๋‹จ์œ„ ๋ฆฌ์Šคํฌ ์ง„๋‹จ๊ณผ ๋™์‹œ์—, ๋‹จ์ง€ ๋‹จ์œ„ ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ•์ ํ•˜๋Š” ๋ฏผ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด ๊ตฌ์ถ•์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงช ์ฃผ์š” ๊ธฐ๋Šฅ

  • ์‹ค์‹œ๊ฐ„ ๊ตฌ์กฐ ๋ถ„์„ ์—”์ง„: ์Šฌ๋ผ์ด๋”๋ฅผ ํ†ตํ•ด ํ‰๋‹น ๊ณต์‚ฌ๋น„ ๋ณ€ํ™”์— ๋”ฐ๋ฅธ ์‚ฌ์—… ์•ˆ์ •์„ฑ(Prop-Logic Index) ์‹ค์‹œ๊ฐ„ ์‚ฐ์ถœ
  • ์‹œ์žฅ ํ™˜๊ฒฝ ์‹œ๋‚˜๋ฆฌ์˜ค: ํ˜„์žฌ ํ‰๊ท , ์ตœ์•… ๊ฐ€์ •, ์ตœ๊ณ  ๊ตฌ๊ฐ„ ๋“ฑ 3๊ฐ€์ง€ ๊ฑฐ์‹œ๊ฒฝ์ œ ์‹œ๋‚˜๋ฆฌ์˜ค ์ ์šฉ
  • ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ฆฌ๋“œ ์ˆ˜์ง‘: ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ „๋ฌธ๊ฐ€ ์ •๋ฐ€ ๊ฒ€์ฆ ๋ณด๊ณ ์„œ ์‹ ์ฒญ ํ”„๋กœ์„ธ์Šค ๊ตฌํ˜„
  • ๋ฐ˜์‘ํ˜• UX: ๋ชจ๋ฐ”์ผ๊ณผ ๋ฐ์Šคํฌํƒ‘ ์–ด๋””์„œ๋“  ์พŒ์ ํ•˜๊ฒŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฐ€๋Šฅํ•œ ๋Œ€์‹œ๋ณด๋“œ UI

๐Ÿ›  Tech Stack

Frontend

  • Framework: Next.js 15 (App Router)
  • Styling: CSS Modules (Custom Laboratory Theme)
  • Deployment: Vercel

Backend & Database

  • Logic Engine: Python FastAPI (Deployed on Render)
  • Database: Supabase (PostgreSQL)
  • Authentication/Security: Supabase RLS (Row Level Security)

๐Ÿ— ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๋ณด์•ˆ (Architecture & Security)

1. API Route Proxying

๋ธŒ๋ผ์šฐ์ €์˜ CORS ์ด์Šˆ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ๋ฐฑ์—”๋“œ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•ด Next.js ๋‚ด๋ถ€ API Route๋ฅผ ํ”„๋ก์‹œ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ (S2S) ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.

2. Debouncing Optimization

์‚ฌ์šฉ์ž์˜ ๋นˆ๋ฒˆํ•œ ์ž…๋ ฅ ๋ณ€ํ™”(Slider ๋“œ๋ž˜๊ทธ ๋“ฑ)๋กœ ์ธํ•œ ๋ถˆํ•„์š”ํ•œ API ํ˜ธ์ถœ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด 500ms ๋””๋ฐ”์šด์‹ฑ ๋กœ์ง์„ ์ ์šฉ, ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ตœ์†Œํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

3. Supabase RLS (Row Level Security)

expert_requests ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ์ต๋ช… ์‚ฌ์šฉ์ž์˜ INSERT ๊ถŒํ•œ๋งŒ ํ—ˆ์šฉํ•˜๊ณ , ์™ธ๋ถ€์—์„œ์˜ SELECT๋ฅผ ์›์ฒœ ์ฐจ๋‹จํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ ๋“ฑ ๋ฆฌ๋“œ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.


โš™๏ธ ์‹คํ–‰ ๋ฐฉ๋ฒ• (Local Development)

  1. ์ €์žฅ์†Œ ํด๋ก 

    git clone [https://github.com/mdeeno/mdeeno-platform.git](https://github.com/mdeeno/mdeeno-platform.git)
  2. ํŒจํ‚ค์ง€ ์„ค์น˜

    pnpm install
  3. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ธํŒ… (.env.local)

    NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
  4. ๋กœ์ปฌ ์„œ๋ฒ„ ์‹คํ–‰

    pnpm dev

๐Ÿ‘ค Author

  • M-DEENO Official (mdeeno.com)
  • ์ •๋น„์‚ฌ์—… ๋ฐ ๋ถ€๋™์‚ฐ ์˜์‚ฌ๊ฒฐ์ • ๊ตฌ์กฐ ์—ฐ๊ตฌ์†Œ

ยฉ 2026 M-DEENO. All rights reserved.