6 Tools Deep Dive

AI 코딩 도구별 설정 파일

Cursor, Copilot, Windsurf, Aider, Continue, Gemini CLI —
각 도구의 설정 파일 구조와 실전 예제를 상세 비교

Cursor Rules GitHub Copilot Windsurf Aider Continue Gemini CLI
Cu
Cursor Rules
.cursor/rules/*.mdc · 구 .cursorrules

Cursor IDE의 AI 컨텍스트 시스템. 레거시 .cursorrules (프로젝트 루트 단일 파일)에서 모듈화된 .cursor/rules/ 디렉토리로 진화했다. 파일별로 트리거 조건을 설정할 수 있어 상황에 맞는 규칙만 로드된다.

파일 형식
MDC (Markdown + Config)
위치
.cursor/rules/*.mdc
Glob 스코핑
지원 (Minimatch 패턴)
레거시 호환
.cursorrules (하위 호환)

4가지 트리거 타입

타입
동작
설명
Always On
항상 적용
모든 AI 상호작용에 포함. 글로벌 코딩 컨벤션에 적합.
Auto-attached
Glob 매칭
열린/편집 중인 파일이 glob 패턴에 매칭되면 자동 활성화.
Model Decision
AI 판단
AI가 description을 읽고 관련성을 판단해서 로드 여부를 결정.
Manual
@mention
사용자가 @규칙이름으로 명시적으로 호출할 때만 활성화.

실전 예제

# .cursor/rules/react-components.mdc
---
description: React 컴포넌트 작성 규칙
globs: src/components/**/*.tsx
alwaysApply: false
---

- 함수형 컴포넌트만 사용 (class 컴포넌트 금지)
- Props 인터페이스는 컴포넌트 바로 위에 정의
- named export만 사용 (default export 금지)
- 스타일은 CSS Modules 사용
- 컴포넌트 파일명은 PascalCase
# .cursor/rules/testing.mdc
---
description: 테스트 파일 작성 컨벤션
globs: **/*.test.{ts,tsx}
alwaysApply: false
---

- vitest 사용 (jest 구문 호환)
- describe > it 구조 (test 대신 it 사용)
- 모킹은 vi.mock() 사용
- 테스트 데이터는 fixtures/ 디렉토리에 분리
- 스냅샷 테스트보다 assertion 우선
# 디렉토리 구조
.cursor/
└── rules/
    ├── global.mdc              # alwaysApply: true
    ├── react-components.mdc   # globs: src/components/**
    ├── api-routes.mdc         # globs: src/api/**
    ├── testing.mdc            # globs: **/*.test.*
    └── deployment.mdc         # Manual (@deployment)
마이그레이션 팁: .cursorrules를 아직 쓰고 있다면 .cursor/rules/global.mdc로 내용을 옮기고 alwaysApply: true를 설정하면 동일하게 동작한다. 이후 도메인별로 파일을 분리하면 된다.
GH
GitHub Copilot Instructions
.github/copilot-instructions.md · .github/instructions/*.instructions.md

GitHub Copilot Chat의 커스텀 지시 시스템. 레포지토리, 파일 경로, 조직 3단계 범위를 지원한다. 저장 즉시 반영되며 별도 리로드가 필요없다.

레포지토리 레벨
.github/copilot-instructions.md
스코프 레벨
.github/instructions/*.instructions.md
조직 레벨
GitHub 관리자 설정 (GA 2026.04)
특징
저장 즉시 반영, 리로드 불필요

실전 예제

# .github/copilot-instructions.md
# 모든 Copilot Chat 대화에 자동으로 추가됨

이 프로젝트는 TypeScript + Next.js 14 App Router를 사용합니다.

## 코드 스타일
- 함수형 프로그래밍 스타일을 선호합니다
- 타입 추론이 가능한 경우 명시적 타입 생략 가능
- zod를 사용한 런타임 검증을 선호합니다
- 에러 처리: neverthrow의 Result 패턴 사용

## 테스트
- vitest 사용
- 유닛 테스트보다 통합 테스트 우선
- MSW로 API 모킹
# .github/instructions/react.instructions.md
# applyTo 패턴으로 특정 파일에만 적용
---
applyTo: "src/components/**/*.tsx"
---

React 컴포넌트 규칙:
- Server Components가 기본
- 'use client'는 이벤트 핸들러나 hooks가 필요할 때만
- Suspense 바운더리를 적극 활용
# 디렉토리 구조
.github/
├── copilot-instructions.md          # 전체 레포 적용
└── instructions/
    ├── react.instructions.md        # components/**/*.tsx
    ├── api.instructions.md          # app/api/**
    └── testing.instructions.md      # **/*.test.*
W
Windsurf Rules
.windsurf/rules/*.md · Cascade Agent

Codeium의 Windsurf IDE가 Cascade 에이전트에 주입하는 규칙 시스템. YAML frontmatter로 트리거 조건을 정의하며, Global/Workspace/System 3단계 범위를 지원한다.

Global
~/.codeium/windsurf/memories/global_rules.md (6K)
Workspace
.windsurf/rules/*.md (12K/파일)
System (Enterprise)
OS별 시스템 디렉토리 (읽기 전용)
무시 파일
.codeiumignore (.gitignore 형식)

4가지 트리거 타입

trigger 값
동작
설명
always_on
항상 적용
모든 메시지의 시스템 프롬프트에 포함.
model_decision
AI 판단
모델이 description을 보고 관련성을 판단. 관련 있으면 전체 내용 로드.
glob
패턴 매칭
globs 필드의 패턴과 매칭되는 파일을 편집할 때 자동 활성화.
manual
@mention
@규칙이름으로 명시적 호출할 때만 활성화.

실전 예제

# .windsurf/rules/typescript-style.md
---
trigger: always_on
---

TypeScript 프로젝트 전역 규칙:
- strict 모드 사용
- any 금지, unknown 사용
- enum 대신 const object + as const
- 함수 오버로드보다 유니온 타입 선호
# .windsurf/rules/test-patterns.md
---
trigger: glob
globs: **/*.test.ts
---

테스트 파일 규칙:
- arrange-act-assert 패턴 사용
- 테스트 이름은 "should ~" 형식
- beforeEach에서 공통 setup, afterEach에서 cleanup
- 비동기 테스트는 반드시 await
Ai
Aider
CONVENTIONS.md · .aider.conf.yml

Aider는 YAML 설정 파일(.aider.conf.yml)과 마크다운 컨벤션 파일(CONVENTIONS.md)을 조합해서 사용한다. CONVENTIONS.md는 --read 옵션으로 읽기 전용으로 로드되어 AI에게 프로젝트 맥락을 제공한다.

설정 파일
.aider.conf.yml
컨벤션 파일
CONVENTIONS.md (read-only)
로드 순서
홈 → git root → 현재 디렉토리
AGENTS.md 지원
지원 (fallback)
# .aider.conf.yml
model: claude-sonnet-4-20250514
read:
  - CONVENTIONS.md     # 읽기 전용으로 컨벤션 로드
  - docs/architecture.md
auto-commits: true
lint-cmd: pnpm eslint --fix
test-cmd: pnpm vitest run
# CONVENTIONS.md
# Aider가 --read로 로드하는 코딩 컨벤션

## 코드 스타일
- 들여쓰기: 2칸 스페이스
- 세미콜론 필수
- trailing comma 사용
- import 순서: 외부 패키지 → 내부 모듈 → 상대 경로

## 커밋 메시지
- Conventional Commits 형식 (feat:, fix:, refactor:)
- 본문은 한국어로 작성
- 제목은 50자 이내
Prompt Caching: Aider는 CONVENTIONS.md를 읽기 전용으로 로드하기 때문에 LLM의 프롬프트 캐시를 활용할 수 있다. 파일이 변경되지 않으면 캐시가 유지되어 비용을 절약한다.
Co
Continue.dev
.continue/rules/*.md · config.yaml

Continue.dev는 YAML frontmatter가 있는 마크다운 규칙 파일을 사용한다. Hub, 레퍼런스, 로컬, 글로벌 4단계 우선순위를 지원하며, 파일명에 숫자 프리픽스를 붙여 로드 순서를 제어할 수 있다.

워크스페이스
.continue/rules/*.md
글로벌
~/.continue/rules/*.md
스코핑
Glob + Regex 패턴
로드 순서
숫자 프리픽스 (01-xx.md)
# .continue/rules/01-general.md
---
name: General Project Rules
alwaysApply: true
---

이 프로젝트는 Python 3.12 + FastAPI를 사용합니다.
타입 힌트를 항상 사용하고, Pydantic v2 모델을 선호합니다.
# .continue/rules/02-frontend.md
---
name: Frontend Rules
globs: ["src/frontend/**/*.tsx", "src/frontend/**/*.ts"]
alwaysApply: false
---

React 18 + TypeScript + Tailwind CSS 환경입니다.
Server Components 기반, 클라이언트 상태는 Zustand 사용.
# 디렉토리 구조
.continue/
├── rules/
│   ├── 01-general.md      # 항상 적용 (숫자 순서 1)
│   ├── 02-frontend.md     # 프론트엔드 파일에만
│   ├── 03-backend.md      # 백엔드 파일에만
│   └── 04-testing.md      # 테스트 파일에만
└── config.yaml            # Continue 메인 설정
G
Gemini CLI
GEMINI.md · Google

Google의 Gemini CLI가 사용하는 설정 파일. CLAUDE.md와 유사한 계층 구조를 가지며, /memory 명령어로 실시간으로 메모리를 관리할 수 있다. @file.md 문법으로 외부 파일을 import할 수 있다.

글로벌
~/.gemini/GEMINI.md
프로젝트
./GEMINI.md (+ 상위 디렉토리)
메모리 명령
/memory show, add, reload
무시 파일
.geminiignore + .gitignore
# GEMINI.md

## 프로젝트
Go 1.22 + HTMX를 사용하는 웹 애플리케이션.
SQLite로 데이터를 저장하고, Tailwind CSS로 스타일링.

## 빌드
- dev: go run ./cmd/server
- build: go build -o bin/server ./cmd/server
- test: go test ./...

## 컨벤션
- 에러 처리: errors.Wrap 사용, bare return 금지
- 구조체 메서드: 포인터 리시버 사용
- 테스트: testify 사용, 테이블 드리븐 테스트 선호

@docs/api-spec.md    # 외부 파일 import
@docs/db-schema.md   # DB 스키마 문서 참조
/memory 활용법: 대화 중에 /memory add "이 프로젝트는 Docker Compose를 사용한다"로 메모리를 추가하면 GEMINI.md에 자동 기록된다. /memory show로 현재 메모리를 확인할 수 있다.

어떤 설정 파일을 선택할까?

상황별 추천

도구 하나만 쓴다면

해당 도구의 전용 설정 파일을 사용하라. Claude Code만 쓴다면 CLAUDE.md, Cursor만 쓴다면 .cursor/rules/를 쓰면 된다. 전용 기능을 온전히 활용할 수 있다.

여러 도구를 섞어 쓴다면

AGENTS.md를 공통 기반으로 두고, 각 도구의 전용 파일에는 해당 도구에서만 가능한 기능(glob 트리거, Skills 등)만 넣어라.

오픈소스 프로젝트라면

AGENTS.md를 우선 추가하라. 기여자들이 어떤 AI 도구를 쓸지 알 수 없으므로 범용 표준이 최선이다.

기업 환경이라면

조직 레벨 설정이 있는 도구(Copilot Org Instructions, Windsurf System Rules)를 활용해서 전사 표준을 강제할 수 있다.

공식 자료 및 참고 링크

Cursor Rules
docs.cursor.com
Copilot Instructions
docs.github.com
Windsurf Rules
docs.windsurf.com
Aider Conventions
aider.chat
Continue.dev Rules
docs.continue.dev
Gemini CLI
geminicli.com