다중 루트 작업공간 지원
Caret의 다중 루트(Multiroot) 기능 (실험적 - 2025년 10월 1일) 은 VSCode의 다중 루트 작업공간과 원활하게 작동하여, 단일 작업공간에서 여러 프로젝트 폴더를 관리할 수 있습니다.
다중 루트 작업공간이란?
하나의 프로젝트 폴더에 제한되는 대신, Caret은 VSCode 작업공간의 모든 폴더에서 파일을 읽고, 코드를 작성하고, 명령을 실행할 수 있습니다. 모노레포, 마이크로서비스 또는 관련 프로젝트를 동시에 작업할 때 유용합니다.
시작하기
다중 루트 작업공간 설정
-
작업공간에 폴더 추가:
- VSCode에서
파일 > 작업 영역에 폴더 추가사용 - 또는 여러 폴더 경로가 있는
.code-workspace파일 생성 - 파일 탐색기로 폴더를 드래그 앤 드롭
- 새 작업공간을 열 때 여러 폴더 선택
- VSCode에서
-
Caret 사용 시작 - Caret이 자동으로 모든 작업공간 폴더를 감지하고 필요에 따라 상호작용합니다.
다중 루트 작업공간 설정에 대한 자세한 지침은 Microsoft 공식 가이드를 참조하세요.
Caret이 여러 작업공간을 처리하는 방법
여러 폴더가 있으면 Caret이 자동으로:
- 모든 작업공간 폴더 감지
- 다른 프로젝트 간 파일 작업
- 올바른 컨텍스트에서 명령 실행
- 경로 해석을 지능적으로 처리
작업공간 간 작업
Caret이 탐색하게 하거나 정확하게 안내하기
프롬프트에서 다양한 작업공간을 자연스럽게 참조할 수 있습니다:
"프론트엔드 폴더의 package.json을 읽고 백엔드 의존성과 비교해줘"
"공유 유틸리티 함수를 만들고 클라이언트와 서버 모두 이것을 사용하도록 업데이트해줘"
"모든 작업공간 폴더에서 TODO 주석을 검색해줘"
일반적인 사용 사례
모노레포 개발
하나의 리포지토리에 관련 프로젝트가 있을 때 완벽합니다:
my-app.code-workspace
├── web/ (React 프론트엔드)
├── api/ (Node.js 백엔드)
├── mobile/ (React Native)
└── shared/ (공통 유틸리티)
Caret에게 물어보세요: "새 백엔드 라우트와 일치하도록 웹과 모바일 앱 모두에서 API 엔드포인트를 업데이트해줘"
마이크로서비스 아키텍처
하나의 작업공간에서 여러 서비스 관리:
services.code-workspace
├── user-service/
├── payment-service/
├── notifications/
└── infrastructure/
풀스택 개발
분리를 유지하면서 모든 것을 함께 유지:
fullstack.code-workspace
├── client/ (프론트엔드)
├── server/ (백엔드 API)
├── docs/ (문서)
└── deploy/ (스크립트 & 설정)
자동 승인 통합
다중 루트 작업공간은 자동 승인과 함께 작동합니다:
- 작업공간 폴더 내 작업에 대한 권한 활성화
- 작업공간 외부 파일에 대한 자동 승인 제한
- 다른 작업공간 폴더에 대해 다른 수준 구성
작업공간 간 작업
Caret은 여러 작업공간에 걸친 작업을 완료할 수 있습니다:
- 리팩토링: 프로젝트 간 임포트 및 참조 업데이트
- 기능 개발: 여러 서비스에서 변경이 필요한 기능 구현
- 문서화: 여러 폴더의 코드를 참조하는 문서 생성
- 테스트: 모든 작업공간에서 테스트 빌드 및 실행, 결과 분석
대규모 다중 루트 작업공간으로 작업할 때는 Agent 모드에서 시작하여 Caret이 변경하기 전에 프로젝트 구조를 이해하도록 하세요.
모범 사례
작업공간 구성
- 관련 프로젝트 그룹화: 조정된 변경이 자주 필요한 프로젝트
- 일관된 폴더 구조 사용: 가능한 경우 작업공간 간에
- 폴더 이름 명확하게: Caret이 프로젝트 구조를 이해할 수 있도록
효과적인 프롬프트 및 팁
다중 루트 작업공간으로 작업할 때 다음 접근 방식이 가장 효과적입니다:
- 중요할 때 작업공간 구체적으로 지정: "백엔드 작업공간에서 사용자 모델 업데이트해줘"
- 관계 참조: "프론트엔드는 공유 작업공간의 API 타입을 사용해"
- 작업공간 간 작업 설명: "이 변경사항은 웹과 모바일 앱 모두에 반영되어야 해"
- 검색 범위 지정: 대규모 코드베이스를 다룰 때: "프론트엔드 작업공간에서만 'TODO' 검색해줘"
- 큰 작업 분해: 가능한 경우 작업공간별 작업으로
- 큰 폴더 제외 고려: 작업공간 검색 범위에서
node_modules같은 폴더 제외
자주 묻는 질문
Q: 작업공간마다 다른 설정을 사용할 수 있나요?
A: 네, 각 작업공간 폴더는 자체 .vscode/settings.json을 가질 수 있습니다.
Q: Caret이 어떤 작업공간에서 작업하는지 어떻게 알 수 있나요? A: Caret은 프롬프트의 컨텍스트를 기반으로 자동으로 감지하거나, 작업공간 이름을 명시적으로 지정할 수 있습니다.
Q: 성능에 영향이 있나요? A: 여러 작업공간은 더 많은 파일을 의미하므로 초기 인덱싱이 느려질 수 있지만, 일단 설정되면 성능은 유사합니다.
질문이나 피드백이 있으신가요? GitHub Discussions에서 연락주세요.