본문으로 건너뛰기

AI 코딩 도구 및 Cursor 세션 간 컨텍스트 관리

Cursor Context Management

AI 코딩 어시스턴트와 함께 작업할 때 가장 큰 과제 중 하나는 세션과 도구 간에 컨텍스트를 유지하는 것입니다. Cursor는 프로젝트 컨텍스트를 보존하고 공유하기 위한 여러 메커니즘을 제공하여 AI 어시스턴트가 항상 필요한 정보를 갖도록 보장합니다. 이 가이드에서는 컨텍스트 관리의 모범 사례를 다룹니다.

컨텍스트 문제

AI 도구로 작업할 때 다음과 같은 과제에 자주 직면합니다:

  • 세션 기억 상실: 새로운 채팅은 이전 작업의 기억 없이 새로 시작됩니다
  • 도구 전환: Cursor, Claude, ChatGPT 또는 다른 도구 간 이동하면 컨텍스트가 손실됩니다
  • 팀 공유: 팀원들은 동일한 프로젝트 컨텍스트에 액세스해야 합니다
  • 컨텍스트 드리프트: 긴 세션 동안 AI는 원래 목표를 잃어버립니다

해결책 1: AGENTS.md - 프로젝트 헌법

리포지토리 루트에 AGENTS.md 파일을 만드세요. 이것은 모든 AI 도구를 위한 단일 진실 공급원입니다.

AGENTS.md의 구조

# 프로젝트: MyApp

## 개요
이 프로젝트의 기능과 기술 스택에 대한 간략한 설명.

## 기술 스택
- 프론트엔드: React 18 + TypeScript + Tailwind CSS
- 백엔드: Node.js + Express + PostgreSQL
- 테스트: Jest + React Testing Library
- 빌드: Vite

## 프로젝트 구조

src/ components/ # 재사용 가능한 UI 컴포넌트 pages/ # 라우트 레벨 페이지 hooks/ # 커스텀 React 훅 utils/ # 헬퍼 함수 types/ # TypeScript 타입 api/ # API 클라이언트 함수


## 빌드 및 테스트 명령
```bash
npm run dev # 개발 서버 시작
npm run build # 프로덕션 빌드
npm run test # 테스트 실행
npm run lint # ESLint 실행

코딩 표준

  • 훅을 사용한 함수형 컴포넌트 사용
  • 기존 파일 구조 따르기
  • 모든 새 기능에 대한 테스트 작성
  • TypeScript 엄격 모드 사용

주요 결정 사항

  • 서버 상태 관리에 React Query 사용
  • JWT 토큰을 httpOnly 쿠키에 저장
  • 공유 타입 패키지를 가진 모노레포 구조

### Cursor에서 AGENTS.md 참조하기

새 채팅 시작 시:

AGENTS.md를 읽고 [기능]을 구현하는 것을 도와주세요. 모든 코딩 표준을 따르고 기존 패턴을 사용하세요.


## 해결책 2: Cursor 전용 규칙

Cursor 전용 지침을 위해 `.cursor/rules/`를 만드세요:

```markdown
---
description: '프로젝트별 Cursor 동작'
globs: ['**/*.ts', '**/*.tsx']
alwaysApply: true
---

# Cursor 지침

## 변경 전
1. 프로젝트 컨텍스트를 위해 AGENTS.md 읽기
2. 기존 유사 구현 확인
3. 확립된 패턴 따르기

## 코드 생성 기본 설정
- 명시적 타입을 가진 TypeScript 생성
- 공개 API에 JSDoc 주석 포함
- 기존 오류 처리 패턴 사용

## 테스트 요구 사항
- 항상 새 기능에 대한 테스트 제안
- 컴포넌트에는 React Testing Library 사용
- API 호출은 MSW로 모의 처리

해결책 3: MCP를 사용한 세션 메모리

영구 메모리를 위해 MCP(Model Context Protocol) 서버를 사용하세요:

메모리 MCP 설정

Cursor MCP 설정에 추가하세요:

{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@cursor-memory/server"]
}
}
}

메모리 사용

중요한 사실을 저장하세요:

PostgreSQL을 사용하고 users 테이블에 다음이 포함되어 있음을 기억하세요:
- id (UUID, 기본 키)
- email (고유, 인덱싱됨)
- created_at (타임스탬프)
- preferences (JSONB)

향후 세션에서 회상하세요:

데이터베이스 스키마에 대해 무엇을 기억하고 있나요?

해결책 4: CONTRACT.md 패턴

복잡한 프로젝트의 경우 불변성을 정의하는 계약 파일을 사용하세요:

# 프로젝트 계약

## 불변성(절대 위반하지 않음)
1. 모든 API 응답은 `success` 부울 값을 포함해야 함
2. 사용자 ID는 항상 UUID이며 정수가 아님
3. 비밀번호는 절대 기록되거나 응답에 반환되지 않음

## 아키텍처 규칙
1. 도메인 로직은 `src/domain/`에 위치
2. API 라우트는 서비스에만 위임
3. 데이터베이스 액세스는 리포지토리 패턴만을 통해 수행

## 현재 스프린트 목표
- 사용자 인증 구현
- 비밀번호 재설정 흐름 추가
- 이메일 알림 설정

의미 있는 변경 후에 이 파일을 업데이트하세요.

해결책 5: 세션 요약

각 세션 종료 시 요약을 만드세요:

# 세션 요약: 2026-06-22

## 완료됨
- [x] JWT 인증 미들웨어 설정
- [x] 로그인 및 등록 엔드포인트 생성
- [x] bcrypt로 비밀번호 해싱 추가

## 진행 중
- [ ] 이메일 검증 흐름(시작됨, 테스트 필요)

## 다음 단계
1. 토큰 만료가 있는 비밀번호 재설정 구현
2. 인증 엔드포인트에 속도 제한 추가
3. 통합 테스트 작성

## 수정된 주요 파일
- src/middleware/auth.ts (신규)
- src/routes/auth.ts (신규)
- src/services/auth.ts (신규)
- src/models/user.ts (수정됨)

## 결정 사항
- 15분 JWT 만료와 리프레시 토큰 사용
- 리프레시 토큰을 Redis에 저장

이를 docs/session-summaries/YYYY-MM-DD.md로 저장하세요.

해결책 6: Markdown을 사용한 크로스 도구 컨텍스트

도구 간 전환 시 표준화된 컨텍스트 형식을 사용하세요:

# 컨텍스트 전송

## 현재 작업
사용자 프로필 페이지 구현

## 관련 파일
- src/pages/Profile.tsx
- src/components/UserForm.tsx
- src/api/users.ts

## 현재 상태
- 프로필 페이지 뼈대 생성됨
- UserForm 컴포넌트에 검증 필요
- API 엔드포인트 /api/users/me가 올바른 데이터 반환

## 장애물
- 이미지 업로드 방식 결정 필요

## 다음 작업
양식 검증 및 제출 핸들러 추가

이를 모든 AI 도구에 복사하여 원활하게 계속하세요.

모범 사례 요약

해야 할 일

  • 프로젝트 시작 시 AGENTS.md 생성
  • 아키텍처 변경 시 AGENTS.md 업데이트
  • 도구별 지침에는 Cursor 규칙 사용
  • 닫기 전에 각 세션 요약
  • MCP 메모리로 영구 사실 저장
  • 모든 컨텍스트 파일에 버전 관리 사용

하지 말아야 할 일

  • AI의 세션 메모리에만 의존하지 않음
  • 외부 노트(Obsidian/Notion)에 동기화 없이 컨텍스트 유지하지 않음
  • 컨텍스트 파일이 오래되게 하지 않음
  • 여러 파일 간에 정보 중복하지 않음

빠른 시작 체크리스트

새 프로젝트의 경우:

  1. 프로젝트 개요가 포함된 AGENTS.md 생성
  2. Cursor 동작을 위해 .cursor/rules/ 설정
  3. MCP 메모리 서버 구성
  4. 아키텍처 불변성을 위한 CONTRACT.md 생성
  5. docs/session-summaries/ 디렉터리 설정
  6. 모든 컨텍스트 파일을 버전 관리에 추가

관련 리소스