본문으로 건너뛰기

MDC 규칙 모범 사례

MDC(Model-Driven Code) 규칙은 Cursor에서 코드 생성과 수정을 제어하는 강력한 도구입니다. 이 가이드에서는 효과적인 MDC 규칙을 작성하기 위한 모범 사례를 설명합니다.

MDC 규칙 기본

규칙 구조

name: "규칙 이름"
description: "규칙 설명"
pattern: "검색 패턴"
replacement: "대체 텍스트"
constraints:
- type: "제약 조건 유형"
value: "제약 조건 값"

기본 문법

  1. 패턴 매칭

    pattern: "function\\s+\\w+\\s*\\([^)]*\\)"
  2. 변수 사용

    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

2. 리소스 관리

resources:
- type: "memory"
limit: "512MB"
- type: "cpu"
limit: "50%"

보안 고려 사항

1. 입력 검증

security:
- type: "input_validation"
rules:
- "no_exec"
- "no_file_access"

2. 접근 제어

access_control:
- type: "user_roles"
allowed: ["admin", "developer"]

결론

MDC 규칙을 효과적으로 작성하고 관리하면 코드 변환과 생성을 자동화할 수 있습니다. 이 가이드의 모범 사례를 따르면 안정적이고 유지보수가 용이한 규칙을 만들 수 있습니다.

추가 리소스: