Cursor + MCP's | Docker | Strapi v5 | Next JS | Render
Source: Dev.to
Overview
๐ ์ค๋ ์ ๋ชฉํ๋ ํฌํธํด๋ฆฌ์ค ์น์ฌ์ดํธ์ ์ฝํ ์ธ ๋ฅผ ๋ด๋นํ Strapi CMS๋ฅผ ๋ฐฐํฌํ๋ ๊ฒ์ด์์ต๋๋ค. ๊ฐ์ฅ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ๋ง๋ค๊ณ ์ถ์ด์, ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ Docker ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๊ณ ๋ฐฐํฌํ ์ ์๋ ํด๋ผ์ฐ๋ ์๋ฃจ์ ์ ์ฐพ์์ต๋๋ค.
Using Render
โ๏ธ ์ ๋ Render๋ผ๋ ํด๋ผ์ฐ๋ ํ๋ซํผ์ ๋ฐ๊ฒฌํ์ต๋๋ค. Render๋ GitHub ์ ์ฅ์์์ ์ง์ Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ก์ปฌ๊ณผ ํ๋ก๋์ ์์ ์ ํํ ๊ฐ์ ๋ฒ์ ์ ์คํํ ์ ์์ต๋๋คโ์ ๊ฒฝ์ฐ๋ Strapiโฏv5์ PostgreSQLโฏ16์ด์์ต๋๋ค.
๐ฌ ํ์ฅ์ค์ ์์ xAi์ Grok๊ณผ ๋ช ์ฐจ๋ก ๋ํ๋ฅผ ๋๋ ๋ค, Render ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํด Render๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋์ต๋๋ค. ์ด ํ์ผ์ ์๋ฒ ๊ตฌ์กฐ๋ฅผ ๊น๋ํ๊ณ ์กฐ์ง์ ์ผ๋ก ์ ์ํฉ๋๋ค. Dockerfile๊ณผ ๋น์ทํ์ง๋ง Render ์ ์ฉ์ผ๋ก ๋ง๋ค์ด์ก์ผ๋ฉฐ, GitHub์์ ์ง์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฒญ์ฌ์ง์ ๋ง๋ค ์ ์๊ฒ ํด์ค๋๋ค.
Generating the Strapi Project with Cursor
โ๏ธ ์ํฌํ๋ก์ฐ๋ฅผ ์ดํดํ ๋ค, ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ์ ์ข์ ์น๊ตฌ Cursor์๊ฒ Docker ์ด๋ฏธ์ง์ ํจ๊ป ์ ์ฒด Strapiโฏv5 ํ๋ก์ ํธ๋ฅผ ์์ฑํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ต๋๋ค. Opusโฏ4.5๋ฅผ ์ฌ์ฉํด Cursor๋ ๋ช ์ด ๋ง์ ์ ์ฒด ์ค์บํด๋๋ฅผ ๋ง๋ค์๊ณ , ์๋ ๊ฒ์์ ์ ํ ํ์ํ์ง ์์์ต๋๋ค. ํ์ผ์ ๋ก๋ํ๊ณ Google์ ํ ๋ฒ๋ ์ด์ง ์์์ต๋๋ค.
Debugging and Deployment
๐ณ Cursor๊ฐ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ค, ๋๋ฒ๊น ์ ์์ํ์ต๋๋ค. ๋ก๊ทธ๋ฅผ ํ์ธํ๊ณ Docker ์ปจํ ์ด๋๊ฐ ์ ์์ ์ผ๋ก ์คํ๋๋์ง ๊ฒ์ฆํ์ต๋๋ค. ์ฝ๊ฐ์ ํ๋กฌํํธ์ ์กฐ์ ์ผ๋ก 10๋ถ๋ ์ ๋์ด Dockerfile๊ณผ Render ๊ตฌ์ฑ ํ์ผ์ด ํฌํจ๋ ์์ ํ Strapiโฏv5 ์ค์ ์ ๋ง๋ค ์ ์์์ต๋๋ค.
๐ Pro tip: ๊ธฐ์ ์คํ ๋ฌธ์๋ฅผ Cursor์ ๊ฐ์ ธ์์ ๋ ๋ง์ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ์ธ์ (Render ๋ฌธ์, Strapiโฏv5 ๋ฌธ์ ๋ฑ). ๋ชจ๋ ๊ฒ์ ์ ๋ ฅํด ์ฃผ์ธ์.
๐ฆ ๋ก์ปฌ์์ ๋ชจ๋ ๊ฒ์ ํ ์คํธํ ๋ค, ์ฒญ์ฌ์ง์ Render์ ์ ๋ก๋ํ์ต๋๋ค. ๋ฐฐํฌ๊ฐ ์์๋๋ฉด์ ๋ช ๊ฐ์ง ์ค๋ฅ๊ฐ ๋ํ๋ฌ์ต๋๋ค. ๋ณดํต์ ๋ก๊ทธ๋ฅผ ์๋์ผ๋ก Cursor์ ๋ณต์ฌํ ์ ์์ง๋ง, Render๋ MCP ์๋ฒ๋ฅผ ์ ๊ณตํด ์ง์ Cursor์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. Cursor๊ฐ ๋ฐฐํฌ ๋ก๊ทธ๋ฅผ ์๋์ผ๋ก ๊ฐ์ ธ์ ๋ฌธ์ ๋ฅผ ์๋ณํ์ต๋๋ค.
๐คฏ ์์ฃผ ์ ์๋ํ๊ณ , ๋ช ๋ฒ์ ํ๋กฌํํธ๋ง์ผ๋ก ํ๋ก๋์ Dockerfile์ด ์์ ๋์์ต๋๋ค. MCP ์๋ฒ๋ ์ ๋ง ๋ฐ์ด๋ฉ๋๋ค. ์ํ ์์๊ฐ ์ฝ๊ฐ ์๊ธด ํ์ง๋ง, ํ์ฌ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ณ ์์ง ์์ผ๋ ๊ด์ฐฎ์ต๋๋ค.
Integrating with Next.js
๐งฑ Render๊ฐ ์ Strapiโฏv5 CMS๋ฅผ ์คํํ๋ฉด์ ๋ณธ๊ฒฉ์ ์ธ ์์ ์ด ์์๋์์ต๋๋ค. ์ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ๊ธฐ์กด NextโฏJS ํฌํธํด๋ฆฌ์ค์ ์ฐ๊ฒฐํ์ต๋๋ค. ํ์ฌ ์ฌ์ดํธ ๊ตฌ์กฐ(ํ๋ก์ ํธ, ์ง๋ฌด, ๊ธฐ์ ์คํ, About ๋ฐ Home ๊ฐ์ ๋จ์ผ ํ์ด์ง)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ ๋ฆฌํ์ต๋๋ค.
๐ ๊ทธ ๋ค์ ์๋ก์ด ๊ณผ์ ๊ฐ ์ฐพ์์์ต๋๋ค: ํฌํธํด๋ฆฌ์ค์ฉ API ํตํฉ ๊ตฌ์ถ. ๋ชจ๋ ์๋ํฌ์ธํธ๋ฅผ ์๋์ผ๋ก ํ์ธํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ์ต๋๋ค. ์ ๋ ๋ก์ปฌ Strapi ์ธ์คํด์ค์ ์ค์นํ๊ณ ๋ค๋ฅธ ํ๋ก์ ํธ์ ๋ ธ์ถํ ์ ์๋ Strapiโฏv5 MCP ์๋ฒ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ด ์๋ฒ๋ localhost์์ ๋์ํ๋ฉฐ Cursor์๊ฒ API ํตํฉ์ ๊ตฌ์ถํ ์ ์ฒด ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ์ต๋๋ค.
๐ง ์ด๋ฅผ ํตํด ํฌํธํด๋ฆฌ์ค๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๊ฒ ๋์์ต๋๋ค. MCP ์๋ฒ๊ฐ ๋ชจ๋ ์ํธ๋ฆฌ์ ํ์ด์ง๋ฅผ ์๊ณ ์์ด ์ํํ ๋ฐ์ดํฐ ํ์นญ์ด ๊ฐ๋ฅํ์ต๋๋ค.
Conclusion
๐ ์ค๋ ๋น ๋ฅด๊ฒ ์์ง์ด๊ณ ์ถ๋ค๋ฉด Cursor์ MCP ์๋ฒ๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ํตํฉ๋๋ ํด๋ผ์ฐ๋ ํ๋ซํผ์ ์ ํํ์ธ์. ๊ฐ๋ฐ์๋ก์ ์์ ํ ์ ์ด๊ถ์ ์ ์งํ๋ฉด์ ์ต์ ๋๊ตฌ๋ฅผ ํ์ฉํด ๋ชฉํ๋ฅผ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ํฌ์คํธ์ด์ง๋ง, ์์ผ๋ก ๋ช ๋ฌ ๋์ ์ด ํ์ต ์ฌ์ ์ ๋ํด ๋ ๋ง์ด ์์ฑํ ์์ ์ ๋๋ค!