MDC 규칙 모범 사례
MDC(Model-Driven Code) 규칙은 Cursor에서 코드 생성과 수정을 제어하는 강력한 도구입니다. 이 가이드에서는 효과적인 MDC 규칙을 작성하기 위한 모범 사례를 설명합니다.
MDC 규 칙 기본
규칙 구조
name: "규칙 이름"
description: "규칙 설명"
pattern: "검색 패턴"
replacement: "대체 텍스트"
constraints:
- type: "제약 조건 유형"
value: "제약 조건 값"
기본 문법
-
패턴 매칭
pattern: "function\\s+\\w+\\s*\\([^)]*\\)"
-
변수 사용
replacement: "const ${1} = async () => {"
모범 사례
1. 명확한 규칙 이름
# 좋은 예
name: "React 함수형 컴포넌트 변환"
# 피해야 할 예
name: "변환 규칙 1"
2. 상세한 설명
description: |
클래스 컴포넌트를 함수형 컴포넌트로 변환합니다.
- 상태 관리를 hooks로 변환
- 생명주기 메서드를 useEffect로 변환
- props 구조 분해 할당 적용
3. 정확한 패턴
# 좋은 예
pattern: "class\\s+\\w+\\s+extends\\s+React\\.Component"
# 피해야 할 예
pattern: "class.*Component"
4. 제약 조건 활용
constraints:
- type: "file_extension"
value: [".jsx", ".tsx"]
- type: "max_file_size"
value: 10000
고급 기법
1. 조건부 변환
replacement: |
${1:componentName} = () => {
${2:state} = useState(${3:initialValue});
${4:effect} = useEffect(() => {
${5:effectCode}
}, [${6:dependencies}]);
return ${7:jsx};
}
2. 컨텍스트 인식
constraints:
- type: "context"
value:
- "React"
- "hooks"
3. 성능 최적화
optimization:
- type: "cache"
duration: 3600
- type: "parallel"
max_threads: 4
규칙 테스트
1. 단위 테스트
tests:
- input: |
class MyComponent extends React.Component {
render() {
return <div>Hello</div>;
}
}
expected: |
const MyComponent = () => {
return <div>Hello</div>;
}
2. 통합 테스트
integration_tests:
- files:
- "src/components/*.jsx"
expected_changes: 5
규칙 관리
1. 버전 관리
version: "1.0.0"
changelog:
- version: "1.0.0"
changes:
- "초기 규칙 구현"
- "기본 변환 지원"
2. 규칙 그룹화
group: "react-migration"
dependencies:
- "react-hooks"
- "typescript-conversion"
문제 해결
1. 일반적인 오류
error_handling:
- type: "pattern_not_found"
action: "skip"
- type: "invalid_syntax"
action: "report"
2. 디버깅
debug:
enabled: true
level: "verbose"
output: "mdc-debug.log"
성능 고려 사항
1. 규칙 최적화
performance:
- type: "pattern_complexity"
max: 3
- type: "replacement_size"
max: 1000