개요
Cursor의 Rules 기능은 에이전트 모델의 행동을 프로젝트별 또는 사용자별로 일관되게 제어할 수 있도록 도와주는 시스템 레벨의 지침입니다. 이 글에서는 Rules의 개념, 종류, 작성 및 활용 방법, 그리고 실무에서의 적용 사례를 단계별로 설명합니다.
Rules란?
Rules는 AI가 코드 생성, 편집, 워크플로우 지원 등 다양한 상황에서 일관된 맥락과 지침을 따르도록 하는 지속적이고 재사용 가능한 컨텍스트입니다. 대형 언어 모델이 세션 간 기억을 유지하지 못하는 한계를 보완해, 프로젝트별/개인별로 원하는 스타일이나 규칙을 항상 적용할 수 있습니다.
Rules의 종류
- Project Rules:
.cursor/rules
폴더에 저장되며, 코드베이스에 버전 관리됩니다. - User Rules: Cursor 환경 전체에 적용되는 글로벌 규칙으로, 설정에서 관리합니다.
- .cursorrules (Legacy): 이전 방식으로, 앞으로는 Project Rules 사용을 권장합니다.
Rule 종류 | 저장 위치 | 적용 범위 |
---|---|---|
Project Rules | .cursor/rules | 해당 프로젝트 |
User Rules | Cursor Settings | 모든 프로젝트 |
.cursorrules | 프로젝트 루트 | 해당 프로젝트 (구방식) |
Rules의 동작 방식
- Rules는 프롬프트의 시작 부분에 항상 포함되어, AI가 일관된 지침을 따르도록 합니다.
- Chat, Cmd-K 등 다양한 기능에서 동일하게 적용됩니다.
- 필요에 따라 수동(@ruleName), 자동, 항상 포함 등 다양한 방식으로 적용할 수 있습니다.
Project Rules 작성 및 구조
- MDC(
.mdc
) 포맷을 사용하며, 메타데이터와 내용을 한 파일에 작성합니다. - Rule Type(Always, Auto Attached, Agent Requested, Manual)과 globs(적용 범위) 등 메타데이터를 지정할 수 있습니다.
예시 MDC Rule
---
description: RPC Service boilerplate
globs:
alwaysApply: false
---
- 내부 RPC 패턴을 서비스 정의에 사용
- 서비스명은 항상 snake_case로 작성
@service-template.ts
Rules의 계층 구조 및 네스팅
.cursor/rules
폴더를 프로젝트 내 여러 위치에 둘 수 있어, 도메인별/컴포넌트별로 세분화된 규칙 관리가 가능합니다.- 하위 폴더의 규칙은 해당 디렉토리 내 파일이 참조될 때 자동으로 적용됩니다.
Rules 생성 및 관리 방법
Cmd + Shift + P
→ "New Cursor Rule" 명령으로 빠르게 생성 가능- Cursor Settings > Rules에서 전체 규칙 목록과 상태 확인 가능
- 대화 중
/Generate Cursor Rules
명령으로도 규칙 생성 가능
Rules 작성 Best Practice
- 규칙은 간결하고, 구체적이며, 적용 범위가 명확해야 합니다.
- 500줄 이하로 유지, 큰 개념은 여러 규칙으로 분리
- 예시나 참조 파일(@filename.ts) 활용 권장
- 반복되는 프롬프트는 규칙으로 재사용
실제 사용 사례
1. 도메인별 코드 스타일 표준화
- 프론트엔드 컴포넌트 디렉토리: Tailwind, Framer Motion, 네이밍 규칙 등 일관성 유지
- API 디렉토리: zod 기반 검증, 타입 정의 등
2. 템플릿 및 보일러플레이트 자동화
- Express 서비스, React 컴포넌트 등 반복되는 구조를 규칙으로 정의해 자동화
3. 워크플로우 자동화
- 앱 분석, 문서화 등 반복 작업을 규칙으로 정의해 효율화
FAQ 요약
- 규칙이 적용되지 않는 경우: Rule Type, globs, description 등 메타데이터 확인 필요
- 규칙에서 파일 참조 가능:
@filename.ts
형식으로 파일을 규칙 컨텍스트에 포함 가능 - 대화에서 규칙 생성 가능: "이 프롬프트로 규칙 만들어줘" 등으로 요청 가능
- 규칙은 Agent와 Cmd-K에만 적용: Tab 등 다른 기능에는 영향 없음
참고 자료
반응형