๐ Supabase + Cursor์ ํจ๊ป ์ฒซ CRUD ๊ฐ๋ฐ ์ํ์ฐฉ์ค
Cursor ์คํฐ๋์ Supabase + MCP ๊น์ง ๋ฐฐ์ ์ง๋ง
์คํฐ๋ ๊ธฐ๊ฐ ์ค, ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํ์ง ์์ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋๋ผ
์ด์ ์์ผ Supabase + MCP ์ฌ์ฉํ๋ฉฐ ์ํ์ฐฉ์ค๋ฅผ ๊ฒฝํํ๋ค์ ๐คฃ๐ค
๋น๊ฐ๋ฐ์ + LLM 1๊ฐ์์ฐจ์ ๊ท์ฌ์ด ์ํ์ฐฉ์ค๋ฅผ ๊ธ๋ก ๋ด์์ผ๋ ๊ฐ๋ณ๊ฒ ์ฝ์ด์ฃผ์ธ์ ๐
๐ ๋ฐฐ๊ฒฝ
๐งโ๐ป ๊ฐ์ธ ๋ธ๋ก๊ทธ ๊ฐ๋ฐ ํ๋ก์ ํธ ์ค CRUD ๊ธฐ๋ฅ ๊ตฌํ ์๋
๐ค Cursor AI์ Supabase MCP๋ฅผ ํ์ฉํ ๊ฐ๋ฐ ๊ณผ์ ๊ธฐ๋ก
๐ ์ฒ์ ํด๋ณด๋ ๋ธ๋ก๊ทธ CRUD ๊ธฐ๋ฅ ๊ตฌํ์ ์ํ์ฐฉ์ค
๐ฏ ๋ชฉํ
โ ๋ธ๋ก๊ทธ ํฌ์คํ ๊ธฐ๋ฅ ๊ตฌํ (CRUD ์์ฑ)
๐๏ธ Supabase๋ฅผ ๋ฐฑ์๋๋ก ํ์ฉํ ๋ฐ์ดํฐ ๊ด๋ฆฌ
'home'and'tag iting์ ๋ํด ํฐ์๊ณผ ์ฃผํฉ์ ๋ฐฐ๋
๐ ๊ฐ๋ฐ ๊ณผ์
1๏ธโฃ ํ์ด์ง ๊ตฌ์กฐ ์ค๊ณ
๐ ํ์ฌ ๋ธ๋ก๊ทธ ํฌ์คํธ์๋ ์ํ ๋ฐ์ดํฐ๋ง ์กด์ฌ
๊ฒ์ ๋ฐฐ๊ฒฝ์ด์๋ ์น ์ฌ์ดํธ์ ์คํฌ๋ฆฐ ์ท
โ ๊ฒ์๋ฌผ ์์ฑ ๊ธฐ๋ฅ ํ์
๐๏ธ Cursor๋ฅผ ํตํ ์น ํ์ด์ง ๊ตฌ์กฐ ์ค๊ณ
๐ ์ฒด๊ณ์ ์ธ ํด๋ ๊ตฌ์กฐ ํ์์ฑ ์ธ์
๐ ์ด์์ ์์ ํ๋ฆ ์ ๋ฆฝ:
์ฒ์ ๊ฐ๋ฐ์ด๋ผ ์ค๊ตฌ๋๋ฐฉ + Auto Run ์ผ๋ก ํด๋๊ตฌ์กฐ๊ฐ ๋๋ฆฌ์ ๋๋ค ๐คฃ
๋ค์์ ์๋์ ๊ฐ์ ํ๋ก์ธ์ค๋ก ๊ฐ๋ฐ ์๋ํด์ผ๊ฒ ์ด์!
๐ ๏ธ Cursor๋ก ๊ตฌ์กฐ ์ค๊ณ
๐จ Stitch๋ก ๋์์ธ ๊ตฌํ
โ๏ธ React ๋ณํ
2๏ธโฃ Supabase MCP ์ฐ๊ฒฐ
๐ Supabase ํ๋ก์ ํธ ์์ฑ
๊ฒ์ ๋ฐฐ๊ฒฝ์ด์๋ ์น ์ฌ์ดํธ์ ์คํฌ๋ฆฐ ์ท
๐งฉ MCP๋ฅผ ํตํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ์๋ ์ค๊ณ
ํ๊ตญ์ด ํ ์คํธ๊ฐ์๋ ํ๋ฉด ์คํฌ๋ฆฐ ์ท
๐ ํ ์ด๋ธ ๊ตฌ์กฐ์ ๊ด๊ณ ์ ์
ํญ๋ชฉ ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ์ ํ๋ฉด
๐ฑSupabase MCP ์์์ผ๋ฉด ์ด๋ฐ ๋ถ๋ถ์์ ๋๋ฌด ๊ณ ์ํ์ ๊ฒ ๊ฐ์์ ๐
3๏ธโฃ ๊ถํ ๋ฌธ์ ๋ฐ์
๐ Supabase ์ ์ฑ (Policy) ์ค์ ๋ฌธ์ ๋ฐ๊ฒฌ
๐ซ ๊ธ์ฐ๊ธฐ ๊ถํ ์ค์ ์์ ์ด๋ ค์ ๊ฒฝํ
๐ ์ ์ฑ ๊ถํ ์ค์ ์ ์ค์์ฑ ๊นจ๋ฌ์
Supabase ๊ถํ์ค์ ์บก์ฒ
4๏ธโฃ MCP ๋นํ์ฑํ ๋ฌธ์ ํด๊ฒฐ
โ ๏ธ Supabase MCP๊ฐ ๋นํ์ฑํ๋๋ ์ํฉ ๋ฐ์
์ ํ ํ๋ฉด์ ์ค์ ์คํฌ๋ฆฐ ์ท
์์ธํ ์๋ ๊ฒ์ ์๋์ง๋ง,
MCP ๋ ์๋ฒ๋ก ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ์๋ฒ ์ด์์, ๋์ ํ์!
๊ณต์์ด ์๋, ์ค๋ฏธ๋๋ฆฌ : https://smithery.ai/ ๋
์์ฒด ์๋ฒ MCP ๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์, ์ค๋ฏธ๋๋ฆฌ ์๋ฒ ์์กด๋๋ ์ฌ๋ผ๊ฐ!
๐ ์์ฒด ์ฐ๊ฒฐ ๋ฐฉ์์ผ๋ก ์ ํ
๐
.env.localํ๊ฒฝ๋ณ์ ์ค์
๐ป CLI๋ฅผ ํตํ ์๋ ํ ์ด๋ธ ์์ฑ (MCP๋ก ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ ํด๊ฒฐ)
โ ์ฐ๊ฒฐ ์ํ ํ์ธ
5๏ธโฃ CRUD ๊ธฐ๋ฅ ๊ตฌํ
๐ Create ๊ธฐ๋ฅ ๊ตฌํ ์ฑ๊ณต
โ Supabase ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์ถ๊ฐ ํ์ธ
๐ ํ๋ก ํธ์๋ ์ฐ๋ ์์
๐ Next.js, React ๊ธฐ๋ฐ ์ฝ๋ ์์
Next.js , React ๊ธฐ๋ฐ ํ์ผ์ด๋ผ ์ง์ ๋ฐ์์ค๋ ค๋ฉด ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋๋ด์
๊ฐ๋ฐ ์ค๋ ฅ์ ๋๋ฆฌ๋ ค๋ฉด, ๋ฐฐ๊ฒฝ์ง์์ ๋ฐฐ์ฐ๋ ค๋ ๋ง์์ด ์ค์ํ ๊ฒ ๊ฐ์์ (Feat. ์ฑ์ฅํผํฐ๋)
๐ฅ๏ธ ๋ฐ์ดํฐ ํธ์ถ ๋ฐ ํ์ ๋ก์ง ๊ตฌํ
๐ ๋ชฉํ ๋ฌ์ฑ ๊ณํ
๐ CRUD ๊ธฐ๋ฅ ์ค Create ๊ตฌํ ์๋ฃ
ํ๊ตญ์ด ์น ์ฌ์ดํธ์ ์คํฌ๋ฆฐ ์ท
์ด์ ๋ CRUD ์ค Update, Delete ๋ฅผ ๊ตฌํํด์ผ๊ฒ ์ฃ !
Supabase + Table ์ฐ๋๋ง ์๋ฃ๋๋ฉด ๋๋จธ์ง ์์ ์ ๊ธ๋ฐฉ ๋ ๊ฒ ๊ฐ์์
Create ๊ธฐ๋ฅ๊ตฌํ ์๋ฃ๋๊ณ ์ํ์ฐฉ์ค ๊ธ ์์ฑํ์ต๋๋ค.
๐ก ์ธ์ฌ์ดํธ
๐ง ๊ธฐ์ ์ ์ธ์ฌ์ดํธ
๐ MCP์ ์๋ฒ ์์กด์ฑ ์ธ์
๐ช ๋ก์ปฌ ๊ตฌํ ๋ฅ๋ ฅ์ ์ค์์ฑ
๐ ๏ธ ์๋ฒ ๋นํ์ฑํ ์ ๋์ ๋ฐฉ๋ฒ ํ์ต
๐ ํ๊ฒฝ์ค์ ๊ด๋ จ ์ง์ ์ต๋
๐
.env์.env.local์ฐจ์ด์ ๐ slug, React vs Next.js ๊ฐ๋ ์ดํด
๐งช ๋ชฉ์ ๋ฐ์ดํฐ์ ํ๋์ฝ๋ฉ์ ๊ฐ๋
๐ ๊ฐ๋ฐ ํ๋ก์ธ์ค ๊ฐ์ ์
๐งฉ ๊ตฌ์กฐ ์ค๊ณ โ ๋์์ธ โ ๊ตฌํ ์์๋ก ์งํ
๐ฟ Git ๋ธ๋์น ๊ด๋ฆฌ๋ฅผ ํตํ ์ธ์ด๋ธ ํฌ์ธํธ ํ์ฉ
๐ฅ๏ธCursor/Rule ์ปค์คํ ์ ํ ์ํ์ฐฉ์ค (๋จ์ถํค ๋ง๋ค๊ธฐ)
ํ๊ตญ์ด ๋ฉ๋ด์ ์คํฌ๋ฆฐ ์ท
๐จ ์๋ฌ ๋ฉ์์ง์ ์นํด์ง๊ธฐ
๐ ์๋ฌ ๋ณํ๋ ์๋ฏธ๊ฐ ์์์ ์ธ์
๐ ํจ์จ์ ์ธ ๊ฐ๋ฐ ๋ฐฉ๋ฒ
๐ Cursor ํ์ฉ ๊ตฌ์กฐ ์ค๊ณ โ Stitch ๋์์ธ โ Figma MCP ์ ๋ฆฌ ํ๋ฆ
Figma MCP ์ฌ์ฉํ์ง ์์๋๋ฐ ์ฌ์ฉํ๊ณ ํ๊ธฐ ์ ๊ฒ ์ต๋๋ค..!
๐๏ธ ํ์ด์ง ๊ตฌํ์ ๊ตฌ์กฐ ์ก๊ธฐ โ ์์น์ ๋ง๋ ํ์ด์ง ๊ตฌํ ์์ผ๋ก ์งํ
๐ ๊ฐ๋ฐ ์ค๋ ฅ ํฅ์์ ์ํ ๋ฐฐ๊ฒฝ์ง์ ํ์ต์ ์ค์์ฑ
๐ ์ฉ์ด ์ ๋ฆฌ
โ๏ธ React: ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ตฌ์ถ์ ์ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๐ JSX: React์ ํ์ฅ ๋ฌธ๋ฒ
๐ฅ๏ธ Next.js: React ๊ธฐ๋ฐ ์น ํ๋ ์์ํฌ
๐ ts vs tsx: TypeScript vs TypeScript + JSX
๐งช ๋ชฉ์ ๋ฐ์ดํฐ: UI/๊ธฐ๋ฅ ํ ์คํธ์ฉ ๊ฐ์ง ๋ฐ์ดํฐ
๐ป ํ๋์ฝ๋ฉ: ์์ค ์ฝ๋์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ ๋ ฅํ๋ ๋ฐฉ์
๐ ์ฌ๋ฌ๊ทธ(Slug): URL์ ์ฌ์ฉ๋๋ ์ฌ๋์ด ์ฝ์ ์ ์๋ ํํ์ ์๋ณ์
๐ ๋ค์ ๋จ๊ณ
โ๏ธ Update, Read, Delete ๊ธฐ๋ฅ ๊ตฌํ
๐จ ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์
๐งน ์ฝ๋ ๋ฆฌํฉํ ๋ง ๋ฐ ์ต์ ํ
๐ค ํ๊ณ
๐ฏ ์ฒซ CRUD ๊ตฌํ์ ์ด ๋ ค์๊ณผ ์ฑ์ทจ
Request(์์ฒญ) <-> Response(์๋ต) ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ค์!
(ํ๋ก์ ํธ ํด๋ณด๋ฉด์ ์์์ผ ํจ!)
๐ ๏ธ MCP ์์กด์ฑ ์ค์ด๊ธฐ ์ํ ๊ธฐ๋ณธ๊ธฐ ์ค์์ฑ
๐ ํ๋ก์ ํธ ๊ฒฝํ์ ํตํ ์ค์ง์ ํ์ต ๊ฐ์น
โ๏ธ ์์ฝ๋ฉ์ ํตํ ํ์ต์ ์ฌ๋ฏธ ๋ฐ๊ฒฌ
์๋์น ์์๋๋ฐ Cursor Pro ํ ํฐ์ ์ ๋ถ ์ฌ์ฉํด์ ์์ฝ๋ฉ ํด๋ณด๋
ํ์คํ ๋ฐฐ์ฐ๋ฉด์ ๊ฐ๋ฐํ๊ฒ ๋๋๋ผ๊ตฌ์! (๋์์ง์์๋ค..?! ๐คฃ)
์ถ๊ฐ๋ก Auto-Run ํ๋ฉด ๊ฐ๋ฐ ์ค๋ ฅ๋ ์๋๊ณ , ํ ํฐ๋ ๋ง์ด ์ฌ์ฉํ๋ ์ด ์ ์ ์ํ์ธ์!