MDC 고급 활용 기법: Cursor Rules를 마스터하는 전문가 가이드




MDC(Markdown Cursor) 포맷의 기본적인 사용법을 익혔다면, 이제 한 단계 더 나아가 고급 기법을 활용할 때입니다. 이 가이드에서는 조건부 규칙 적용, 규칙 체이닝, 컨텍스트 우선순위 관리, 그리고 글롭 패턴 고급 사용법 등 실무에서 활용할 수 있는 전문가 수준의 기법들을 상세히 다룹니다.

1. 조건부 규칙 적용: 스마트한 컨텍스트 관리

파일 경로 기반 조건부 적용

MDC의 globs 속성을 활용하면 특정 파일 패턴에서만 규칙이 적용되도록 세밀하게 제어할 수 있습니다.

---
description: Frontend specific TypeScript rules
globs: ["src/components/**/*.{ts,tsx}", "src/pages/**/*.{ts,tsx}"]
alwaysApply: false
---

Frontend TypeScript 파일에서는:
- React 컴포넌트는 PascalCase로 명명
- Props 인터페이스는 컴포넌트명 + Props 형식 (예: ButtonProps)
- 상태 관리는 useState나 useReducer 활용
- 이벤트 핸들러는 handle + 동작명 형식 (예: handleClick)

@component-template.tsx
---
description: Backend API validation rules
globs: ["src/api/**/*.ts", "src/controllers/**/*.ts", "src/middleware/**/*.ts"]
alwaysApply: false
---

Backend API 파일에서는:
- 모든 입력값은 Zod 스키마로 검증
- 에러 응답은 standardized error format 사용
- 비즈니스 로직과 데이터 레이어 분리
- 적절한 HTTP 상태 코드 반환

@api-response-template.ts
@error-handler-template.ts

환경별 조건부 규칙

개발, 스테이징, 프로덕션 환경에 따른 다른 규칙을 적용할 수 있습니다.

---
description: Development environment rules
globs: ["**/*.dev.{ts,js}", "src/dev/**/*", "**/*.local.*"]
alwaysApply: false
---

개발 환경에서는:
- console.log 사용 허용하되 명확한 prefix 사용
- 상세한 에러 메시지와 스택 트레이스 출력
- 개발용 데이터 시딩 코드 포함 가능
- Hot reload 최적화를 위한 코드 구조 권장

---
description: Production readiness rules
globs: ["src/build/**/*", "dist/**/*", "**/*.prod.{ts,js}"]
alwaysApply: false
---

프로덕션 환경에서는:
- console.log 절대 사용 금지
- 모든 에러는 로깅 시스템으로 전송
- 성능 최적화 우선 (번들 크기, 메모리 사용량)
- 보안 헤더 및 검증 필수

@production-checklist.md

2. 규칙 체이닝: 복합적인 워크플로우 구성

순차적 규칙 실행

여러 규칙을 연결하여 복잡한 개발 워크플로우를 자동화할 수 있습니다.

---
description: Full-stack feature development workflow
globs: ["features/**/*"]
alwaysApply: false
---

새로운 기능 개발 시 다음 순서로 진행:

1. **데이터 모델 설계** (@data-model-template)
   - TypeScript 인터페이스 정의
   - 데이터베이스 스키마 설계
   - API 엔드포인트 명세

2. **백엔드 구현** (@backend-workflow)
   - 컨트롤러 생성
   - 서비스 레이어 구현
   - 테스트 케이스 작성

3. **프론트엔드 구현** (@frontend-workflow)
   - 컴포넌트 구조 설계
   - 상태 관리 설정
   - UI/UX 구현

4. **통합 테스트** (@integration-test-workflow)
   - E2E 테스트 시나리오 작성
   - API 통합 테스트
   - 성능 테스트 실행

@data-model-template.ts
@backend-workflow.mdc
@frontend-workflow.mdc
@integration-test-workflow.mdc

의존성 기반 규칙 체이닝

---
description: Database migration with API update chain
globs: ["migrations/**/*", "src/models/**/*"]
alwaysApply: false
---

데이터베이스 변경 시 체이닝 워크플로우:

**Phase 1: 스키마 변경**
- 마이그레이션 파일 생성
- 롤백 스크립트 준비
- 인덱스 최적화 검토

**Phase 2: 모델 업데이트** (Phase 1 완료 후)
- TypeScript 타입 정의 업데이트
- ORM 모델 수정
- 검증 로직 조정

**Phase 3: API 계층 업데이트** (Phase 2 완료 후)
- 컨트롤러 메서드 수정
- API 문서 업데이트
- 버전 호환성 검토

각 Phase는 이전 단계가 완료되어야 진행 가능합니다.

@migration-template.sql
@model-update-checklist.md
@api-version-guide.md

3. 컨텍스트 우선순위 관리

규칙 간 충돌 해결

여러 규칙이 적용될 때의 우선순위를 명확하게 정의합니다.

---
description: Global TypeScript standards (Priority: Low)
alwaysApply: true
priority: 1
---

모든 TypeScript 파일의 기본 규칙:
- strict 모드 사용
- 명시적 타입 선언 권장
- any 타입 사용 금지

이 규칙은 더 구체적인 규칙에 의해 오버라이드될 수 있습니다.
---
description: React component specific rules (Priority: Medium)
globs: ["src/components/**/*.{ts,tsx}"]
alwaysApply: false  
priority: 5
---

React 컴포넌트에서는:
- Props에 대해서는 인터페이스보다 타입 별칭 사용
- 함수형 컴포넌트 우선
- 이 규칙은 전역 TypeScript 규칙을 오버라이드합니다.

우선순위: 전역 규칙 < 컴포넌트 규칙
---
description: Critical security rules (Priority: Maximum)
globs: ["src/auth/**/*", "src/security/**/*", "**/*auth*", "**/*security*"]
alwaysApply: true
priority: 10
---

🚨 보안 관련 파일에서는 다른 모든 규칙보다 우선:
- 모든 입력값 검증 필수
- 민감한 정보 로깅 절대 금지
- 에러 메시지에서 시스템 정보 노출 금지
- 이 규칙은 다른 모든 규칙을 오버라이드합니다.

@security-checklist.md
@auth-best-practices.md

컨텍스트 크기 최적화

---
description: Smart context loading
globs: ["**/*"]
alwaysApply: false
contextOptimization: true
---

컨텍스트 크기 관리 전략:

**높은 관련성 (항상 포함)**:
- 현재 작업 중인 파일과 직접 관련된 규칙
- 보안 및 성능 관련 필수 규칙

**중간 관련성 (조건부 포함)**:
- 파일 타입별 특화 규칙
- 프레임워크별 가이드라인

**낮은 관련성 (필요시에만 포함)**:
- 일반적인 코딩 스타일 규칙
- 선택적 최적화 제안

AI가 컨텍스트 토큰 제한을 고려하여 적절한 규칙만 선택하도록 가이드합니다.

4. 글롭 패턴 고급 사용법

복잡한 파일 매칭 패턴

---
description: Advanced glob pattern examples
globs: [
  "src/**/components/**/*.{ts,tsx,js,jsx}",
  "!src/**/components/**/*.test.{ts,tsx,js,jsx}",
  "!src/**/components/**/*.stories.{ts,tsx,js,jsx}",
  "src/**/hooks/use[A-Z]*.{ts,tsx}"
]
alwaysApply: false
---

복잡한 글롭 패턴 활용:

✅ **포함할 파일들**:
- 모든 컴포넌트 파일 (components 디렉토리 하위)
- 커스텀 훅 파일 (use로 시작하는 파일)

❌ **제외할 파일들**:
- 테스트 파일 (*.test.*)
- 스토리북 파일 (*.stories.*)

이 규칙은 프로덕션 코드에만 적용됩니다.

동적 패턴 매칭

---
description: Dynamic pattern matching for micro-services
globs: [
  "services/*/src/**/*.{ts,js}",
  "packages/*/lib/**/*.{ts,js}",
  "apps/*/components/**/*.{ts,tsx}"
]
alwaysApply: false
---

마이크로서비스 아키텍처 지원:

각 서비스/패키지/앱별로 독립적인 규칙 적용:
- 서비스 간 일관된 API 인터페이스 유지
- 공통 타입 정의 재사용 권장
- 서비스별 특화 기능은 해당 디렉토리 규칙 따름

**서비스 구조 예시**:
services/
  user-service/src/
  order-service/src/
  payment-service/src/
packages/
  shared-types/lib/
  common-utils/lib/
apps/
  admin-dashboard/components/
  customer-portal/components/

@microservice-standards.md

조건부 글롭 패턴

---
description: Conditional glob patterns based on project structure
globs: [
  "src/**/*.{ts,tsx}",
  "{lib,dist,build}/**/*.{ts,js}",
  "?(*.)config.{ts,js,json}",
  "**/{index,main,app}.{ts,tsx,js,jsx}"
]
alwaysApply: false
---

프로젝트 구조에 따른 조건부 매칭:

**표준 src 구조**: `src/**/*.{ts,tsx}`
**빌드 출력물**: `{lib,dist,build}/**/*.{ts,js}`
**설정 파일**: `?(*.)config.{ts,js,json}` (config.ts, webpack.config.js 등)
**엔트리 포인트**: `**/{index,main,app}.{ts,tsx,js,jsx}`

각 파일 유형별로 다른 검증 기준 적용:
- 소스 코드: 엄격한 타입 검사
- 빌드 파일: 성능 최적화 중심
- 설정 파일: 보안 및 환경 분리
- 엔트리 포인트: 초기화 및 오류 처리 중심

5. 고급 메타데이터 활용

규칙 메타데이터 확장

---
description: Advanced rule with comprehensive metadata
author: "DevOps Team"
version: "2.1.0"
lastUpdated: "2024-01-15"
dependencies: ["security-base.mdc", "typescript-standards.mdc"]
tags: ["security", "api", "validation"]
applicableFrameworks: ["express", "fastify", "koa"]
minimumNodeVersion: "18.0.0"
globs: ["src/api/**/*.ts"]
alwaysApply: false
---

**API 엔드포인트 보안 규칙 v2.1.0**

이 규칙은 다음 종속성을 가집니다:
- security-base.mdc (기본 보안 규칙)
- typescript-standards.mdc (타입스크립트 표준)

**적용 조건**:
- Node.js 18.0.0 이상
- Express, Fastify, 또는 Koa 프레임워크
- API 디렉토리 내 TypeScript 파일

**보안 체크리스트**:
1. 입력 검증 (Joi, Zod 등)
2. 인증/인가 미들웨어
3. Rate limiting 적용
4. CORS 설정 검토
5. 민감한 데이터 로깅 방지

**변경 이력**:
- v2.1.0: OWASP Top 10 2023 반영
- v2.0.0: 새로운 인증 방식 지원
- v1.x: 레거시 (사용 중단)

@security-middleware-template.ts
@rate-limiting-config.ts
@cors-config.ts

규칙 상속 및 확장

---
description: Base development rules
extends: ["global-standards.mdc"]
globs: ["src/**/*"]
alwaysApply: true
abstract: true
---

기본 개발 규칙 (추상 규칙 - 다른 규칙에서 상속용):

**코드 품질**:
- 린터 경고 0개 유지
- 테스트 커버리지 80% 이상
- 순환 종속성 금지

**문서화**:
- 공개 API는 JSDoc 주석 필수
- README 파일 최신 상태 유지
- 복잡한 로직에는 설명 주석

이 규칙은 다른 구체적인 규칙들이 상속받아 사용합니다.
---
description: React development rules
extends: ["base-dev-rules.mdc"]
globs: ["src/components/**/*.{ts,tsx}"]
alwaysApply: false
---

React 개발 규칙 (기본 규칙 상속):

**기본 규칙 상속** + **React 특화 규칙**:

**컴포넌트 설계**:
- 단일 책임 원칙 적용
- Props 드릴링 5단계 초과 시 Context 사용 검토
- 메모이제이션은 성능 이슈 확인 후 적용

**상태 관리**:
- 로컬 상태는 useState
- 복잡한 상태는 useReducer
- 전역 상태는 Context API 또는 Zustand

부모 규칙의 모든 조건 + React 특화 조건 모두 적용됩니다.

@react-component-template.tsx
@context-template.tsx

6. 성능 최적화 기법

지연 로딩 규칙

---
description: Lazy-loaded performance optimization rules
globs: ["src/features/**/*", "src/pages/**/*"]
alwaysApply: false
loadOnDemand: true
triggers: ["performance", "optimization", "lazy", "bundle"]
---

성능 최적화 규칙 (키워드 기반 지연 로딩):

이 규칙은 다음 키워드가 언급될 때만 로드됩니다:
- "performance", "optimization", "lazy", "bundle"

**번들 최적화**:
- 동적 import()를 활용한 코드 스플리팅
- 라우트 레벨에서 컴포넌트 지연 로딩
- 써드파티 라이브러리 트리 쉐이킹

**런타임 최적화**:
- React.memo, useMemo, useCallback 적절한 사용
- 이미지 지연 로딩 및 최적화
- 무한 스크롤링에서 가상화 적용

@performance-monitoring.ts
@bundle-analyzer-config.js

조건부 컨텍스트 로딩

---
description: Context-aware rule loading
globs: ["**/*"]
alwaysApply: false
contextConditions: {
  "fileSize": "< 1000 lines",
  "complexity": "< high",
  "lastModified": "< 7 days"
}
---

컨텍스트 인식 규칙 로딩:

**로딩 조건**:
- 파일 크기 1000줄 미만
- 복잡도 낮음-중간 수준
- 최근 7일 내 수정된 파일

**간단한 파일용 규칙**:
- 기본적인 코딩 스타일만 체크
- 복잡한 아키텍처 패턴 제안 생략
- 빠른 피드백 우선

대용량 파일이나 복잡한 로직에는 별도의 전용 규칙 적용.

@simple-file-rules.mdc
@complex-file-rules.mdc

실전 활용 시나리오

대규모 프로젝트에서의 규칙 조합

---
description: Enterprise project rule orchestration
globs: ["**/*"]
alwaysApply: true
ruleOrchestration: {
  "phases": ["security", "architecture", "quality", "performance"],
  "parallelizable": ["quality", "performance"],
  "sequential": ["security", "architecture"]
}
---

엔터프라이즈 프로젝트 규칙 오케스트레이션:

**1단계: 보안 검증** (필수, 순차 실행)
- 인증/인가 검증
- 입력값 검증
- 민감 정보 보호

**2단계: 아키텍처 검증** (필수, 순차 실행)
- 레이어 간 의존성 확인
- 설계 패턴 준수
- 모듈 경계 검증

**3단계: 품질 + 성능 검증** (병렬 실행 가능)
- 코드 품질 지표
- 성능 최적화 제안
- 테스트 커버리지

각 단계별 통과 기준을 만족해야 다음 단계 진행.

@security-rules/*.mdc
@architecture-rules/*.mdc
@quality-rules/*.mdc
@performance-rules/*.mdc

이러한 고급 기법들을 활용하면 MDC를 단순한 규칙 정의를 넘어서 지능적이고 효율적인 개발 워크플로우 자동화 도구로 활용할 수 있습니다. 프로젝트의 규모와 복잡성에 따라 적절한 기법을 선택하여 적용해보시기 바랍니다.




Leave a Comment