๋ชจ๋์์ปค์๋ Cursor IDE ๊ด๋ จ ์ ๋ณด๋ฅผ ๊ณต์ ํ๊ธฐ ์ํ GitHub ํ์ด์ง์
๋๋ค.
๋ณธ ์ ์ฅ์๋ Cursor ์ค์ , ์ฌ์ฉ๋ฒ, ๊ด๋ จ ๊ฐ๋ฐ ์ง์์ฌํญ(์: FastAPI ๊ฐ๋ฐ ํ์ค, PRD ๋ฌธ์ ์์ฑ ์ง์์ฌํญ) ๋ฐ ์ฝ๋ฉ ๊ท์น์ ํฌํจํฉ๋๋ค.
- Cursor IDE ์ฌ์ฉ ๊ฐ์ด๋ ๋ฐ ํ ๊ณต์
- ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ๋ฌธ์
- PRD(Product Requirements Document) ๊ด๋ฆฌ
- ์ฝ๋ฉ ๊ท์น ๋ฐ ์คํ์ผ ๊ฐ์ด๋ ์ ๊ณต
Cursor์ AI ๋์ ์ปค์คํฐ๋ง์ด์ง์ ๊ดํ ์์ธํ ๋ด์ฉ์ Cursor ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
- Global Rules:
- Cursor Settings > General > Rules for AI์์ ์ ์ญ ์ค์ ์ผ๋ก ๋ฑ๋กํ ์ ์์ต๋๋ค.
- Project Rules (๊ถ์ฅ):
- ํ๋ก์ ํธ๋ณ ์ค์ ์
.cursor/rulesํด๋ ๋ด์ ์์นํ๋ฉฐ, glob ํจํด์ ํ์ฉํด ํ์ผ/ํด๋๋ณ ๊ท์น ์ ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ํ๋ก์ ํธ๋ณ ์ค์ ์
- .cursorrules ํ์ผ:
- ๊ธฐ์กด ๋ฐฉ์์ผ๋ก ๋ฃจํธ ํด๋์
.cursorrulesํ์ผ์ ์ฌ์ฉํ ์ ์์ผ๋, ํฅํ ์ง์ ์ค๋จ ์์ ์ด๋ฏ๋ก Project Rules ๋ฐฉ์์ ๊ถ์ฅํฉ๋๋ค.
- ๊ธฐ์กด ๋ฐฉ์์ผ๋ก ๋ฃจํธ ํด๋์
Cursor์์๋ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ปจํ ์คํธ ์ฐฝ ํ ํฐ ์ ํ์ ์ฌ์ฉํฉ๋๋ค.
- Chat๊ณผ Composer: ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ 40,000๊ฐ์ ํ ํฐ์ ์ง์ํฉ๋๋ค. (๋๋ต, ์์ด ๋จ์ด ๊ธฐ์ค ์ฝ 20,000 ๋จ์ด, ์ฑ ์ฝ 80ํ์ด์ง ๋ถ๋)
- Cmd-K: TTFT์ ํ์ง์ ๊ท ํ์ ๋ง์ถ๊ธฐ ์ํด ์ฝ 10,000๊ฐ์ ํ ํฐ์ผ๋ก ์ ํ๋ฉ๋๋ค. (๋๋ต, ์์ด ๋จ์ด ๊ธฐ์ค ์ฝ 5,000 ๋จ์ด, ์ฑ ์ฝ 20ํ์ด์ง ๋ถ๋)
- Agent: 60,000๊ฐ์ ํ ํฐ์์ ์์ํ์ฌ ์ต๋ 120,000๊ฐ์ ํ ํฐ๊น์ง ์ง์ํฉ๋๋ค. (๋๋ต, ์์ด ๋จ์ด ๊ธฐ์ค ์ฝ 60,000 ๋จ์ด, ์ฑ ์ฝ 240ํ์ด์ง ๋ถ๋)
- ๊ธด ๋ํ์ ๊ฒฝ์ฐ, ํ ํฐ ๊ณต๊ฐ์ ๋ณด์กดํ๊ธฐ ์ํด ์ปจํ ์คํธ๋ฅผ ์๋์ผ๋ก ์์ฝํฉ๋๋ค.
์ด๋ฌํ ์๊ณ๊ฐ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ต์ ํํ๊ธฐ ์ํด ์์๋ก ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฏ๋ก, ์ต์ ์ ๋ณด๋ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
์์ธํ ์ฌ์ฉ๋ฒ์ Cursor ์ฌ์ฉ๋ฒ๋ ํ์ธํ์๊ธฐ ๋ฐ๋๋๋ค.
Cursor ๋ด์ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ฌ๋ฌ ์ปค์คํ
rules ๋ฌธ์๋ฅผ ํตํด ๊ด๋ฆฌ๋ฉ๋๋ค.
์๋์ ๊ฐ์ด ๊ฐ ์ง์์ฌํญ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ฌ ๊ฐ๋ฐ ๊ฐ์ด๋๋ผ์ธ์ ์์งํ์๊ธฐ ๋ฐ๋๋๋ค.
-
FastAPI ๊ฐ๋ฐ ์ง์์ฌํญ (ํ๊ธ)
- ๋ฌธ์ ์์น: .cursor/rules/MOAI_FastAPI_kr.mdc
- ์ฃผ์ ๋ด์ฉ:
- ํด๋์ค ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ, RORO ํจํด ์ฌ์ฉ
- ๋น๋๊ธฐ ์์
์
async def์ฌ์ฉ ๋ฐ ์๋ฌ ์ฒ๋ฆฌ(guard clause, try/except ์ฌ์ฉ) - ๋ช ํํ ๋ณ์๋ช ๋ฐ ํจ์๋ช ์ ์ฌ์ฉ
- ํ๊ฒฝ ๋ณ์, ์บ์ฑ, ๋ก๊น , DB ์ฐ๊ฒฐ ๋ฑ ์ธํ๋ผ ๊ด๋ จ ์ค์ ๊ด๋ฆฌ
- ํ๋ก์ ํธ ๋ณ PRD ๋ฌธ์ ์ฐธ์กฐ ๊ฐ๋ฅ
- ์์ ์ ํ๋ก์ ํธ์ ๋ง๊ฒ ์ถ๊ฐ/์์ ์ฌ์ฉ ๊ถ์ฅ
-
FastAPI ๊ฐ๋ฐ ์ง์์ฌํญ (์์ด)
- ๋ฌธ์ ์์น: .cursor/rules/MOAI_FastAPI_en.mdc
- ํต์ฌ ๊ฐ์ด๋๋ผ์ธ์ ์์ ํ๊ธ ๋ฒ์ ๊ณผ ๋์ผํ๋ฉฐ, Context Token ์ ์ฝ์ ์ํ ์์ด ๋ฒ์ ์ถ๊ฐ ์ ๊ณต
-
PRD ๋ฌธ์ ์์ฑ ์ง์์ฌํญ
- ๋ฌธ์ ์์น: .cursor/rules/MOAI_PRD.mdc
- ์ฃผ์ ๋ด์ฉ:
- ํ๋ก์ ํธ ์ ์ฒด ๊ฐ์, ์ํคํ ์ฒ, ๋ฐ์ดํฐ ๋ชจ๋ธ, API ์๋ํฌ์ธํธ, ๋ณ๊ฒฝ ์ด๋ ฅ ๋ฑ ๋ฌธ์ํ
- ๊ฐ ๋๋ฉ์ธ ๋ณ PRD ํ์ผ(@PRD_project.md, @PRD_saju.md ๋ฑ) ๊ด๋ฆฌ
- Git ๋ธ๋์น ์ ๋ต ๋ฐ ์ปค๋ฐ ๋ฉ์์ง ์์ฑ ๊ท์น ํฌํจ
์ฐธ๊ณ : ๊ฐ ๊ฐ๋ฐ ์ง์์ฌํญ ๋ฌธ์์ '@PRD_project.md, @PRD_saju.md' ํํ๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ์ด๋ฅผ ํตํด ํ๋ก์ ํธ ๋ณ PRD ๋ฌธ์๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
๋ณธ ํ๋ก์ ํธ๋ ์ ํ ์๊ตฌ์ฌํญ ๋ฌธ์(PRD)๋ฅผ ํตํด ํ๋ก์ ํธ์ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง, ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ, ๋ฐ์ดํฐ ๋ชจ๋ธ, API ์ค๊ณ, ๋ณด์ ๋ฐ ํ ์คํธ ์ ๋ต ๋ฑ์ ๋ช ํํ ์ ์ํ๊ณ ์์ต๋๋ค.
๊ฐ PRD ๋ฌธ์๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
-
์ ์ฒด ํ๋ก์ ํธ ์๊ตฌ์ฌํญ
- PRD_project.md
ํ๋ก์ ํธ์ ๊ฐ์, ์ฃผ์ ๊ธฐ๋ฅ, ๊ธฐ์ ์คํ ๋ฐ ์ํคํ ์ฒ ๊ฐ์๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ ๋ฐ์ ์ธ ์ ํ ์๊ตฌ์ฌํญ์ ์์ธํ๊ฒ ์ค๋ช ํฉ๋๋ค.
- PRD_project.md
-
ํ๋ก์ ํธ ์ ์ฒด ํด๋ ๊ตฌ์กฐ ๋ฐ ์ญํ
- PRD_project_folders.md
๋๋ฉ์ธ ์ค์ฌ์ ํด๋ ๊ตฌ์กฐ, API ๋ผ์ฐํ , ๋น์ฆ๋์ค ๋ก์ง ๋ฐ ๊ณตํต ๊ธฐ๋ฅ ๋ชจ๋์ ์ญํ ๊ณผ ์์น๋ฅผ ๋ช ํํ ํ์ฌ, ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์ด๋ ์ค๊ณ๋ฅผ ์ ์ํฉ๋๋ค.
- PRD_project_folders.md
-
Git ๋ธ๋์น ๋ฐ ์ปค๋ฐ ๋ฉ์์ง ์ ๋ต
- PRD_git_branch.md
Git ๋ธ๋์น ์ ๋ต๊ณผ ์ปค๋ฐ ๋ฉ์์ง ์์ฑ ๊ท์น์ ์ ์ํ์ฌ, ์์ ์ ์ด๊ณ ์ผ๊ด๋ ํ์ ๊ด๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค.
- PRD_git_branch.md
-
๋๋ฉ์ธ๋ณ ์ ํ ์๊ตฌ์ฌํญ ๋ฌธ์
- PRD_order.md
์ฃผ๋ฌธ(Order) ๋๋ฉ์ธ์ ์๊ตฌ์ฌํญ๊ณผ ๋น์ฆ๋์ค ๋ก์ง, API ์๋ํฌ์ธํธ ๋ฑ์ ์์ธํ๊ฒ ๊ธฐ์ ํฉ๋๋ค. - PRD_product.md
์ํ(Product) ๋๋ฉ์ธ์ ๋ํ ๋ฑ๋ก, ์กฐํ, ์์ , ์ญ์ ๋ฐ ๊ด๋ จ ๋น์ฆ๋์ค ๋ก์ง์ด ํฌํจ๋ฉ๋๋ค. - PRD_user.md
์ฌ์ฉ์(User) ๋๋ฉ์ธ์ ํ์๊ฐ์ , ๋ก๊ทธ์ธ, ํ๋กํ ๊ด๋ฆฌ ๋ฑ์ ๊ธฐ๋ฅ๊ณผ ๋ณด์ ์๊ตฌ์ฌํญ์ ๋ค๋ฃน๋๋ค.
- PRD_order.md
๋ชจ๋ ํ์์ ์ต์ PRD ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ฌ, ์ฝ๋ ๋ณ๊ฒฝ ์ ํด๋น ๋ฌธ์์ ๋๊ธฐํ๋ฅผ ์งํํจ์ผ๋ก์จ ์ผ๊ด๋ ๊ฐ๋ฐ ๊ธฐ์ค๊ณผ ํ์ ๊ด๋ฆฌ๋ฅผ ์ ์งํด์ผ ํฉ๋๋ค.
์์ง ๊ฐ์ ํด์ผ ํ ๋ถ๋ถ์ด ๋ง์ต๋๋ค๋ง ์๊ฐ์ด ํ๋ฝ์ด ๋๋๋ฐ๋ก ๊ณ์ํด์ ์ ๋ฐ์ดํธ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
