컨텍스트 언급(Context mentions)
정확하고 컨텍스트를 인지하는 지원을 받으려면 @멘션을 사용하여 Bob 대화에서 직접 프로젝트의 특정 요소를 참조하세요.
언급 유형
컨텍스트 언급을 통해 프로젝트의 다양한 요소를 참조할 수 있습니다.
| 언급 유형 | 형식 | 설명 | 사용 예시 |
|---|---|---|---|
| 파일 | @/path/to/file.ts | 요청 컨텍스트에 파일 내용을 포함합니다 | Explain the function in @/src/utils.ts |
| 폴더 | @/path/to/folder | 폴더 바로 아래에 있는 모든 파일의 내용을 포함합니다(비재귀적) | Analyze the code in @/src/components |
| Problems | @problems | IBM Bob Problems 패널 진단을 포함합니다 | @problems Fix all errors in my code |
| 터미널 | @terminal | 최근 터미널 명령과 출력을 포함합니다 | Fix the errors shown in @terminal |
| Git 커밋 | @a1b2c3d | 해시로 특정 커밋을 참조합니다 | What changed in commit @a1b2c3d? |
| Git 변경 사항 | @git-changes | 커밋되지 않은 변경 사항을 보여줍니다 | Suggest a message for @git-changes |
| URL | @https://example.com | 웹사이트 콘텐츠를 가져옵니다 | Summarize @https://docusaurus.io/ |
파일 언급
파일 언급은 가장 흔하게 사용되는 유형으로, Bob과의 대화에 특정 파일의 내용을 포함할 수 있게 해줍니다.
| 기능 | 세부 정보 |
|---|---|
| 형식 | @/path/to/file.ts (항상 작업 영역 루트 기준 /로 시작) |
| 제공 사항 | 행 번호가 포함된 파일 내용 전체 |
| 호환 대상 | 텍스트 파일, PDF 및 DOCX 파일(텍스트 추출 포함) |
| 작동 환경 | 초기 요청, 피드백 응답 및 후속 메시지 |
| 제한 사항 | 파일이 매우 크면 잘릴 수 있으며, 바이너리 파일은 지원되지 않습니다 |
용량이 큰 파일의 경우, 파일 경로 뒤에 행 번호를 붙여 특정 섹션만 언급할 수 있습니다. 예를 들어 @/src/app.js:10-20을 사용하면 10-20행만 포함됩니다.
폴더 언급
폴더 언급을 사용하면 한 번에 여러 파일을 참조할 수 있어 디렉토리의 더 넓은 컨텍스트를 제공할 수 있습니다.
| 기능 | 세부 정보 |
|---|---|
| 형식 | @/path/to/folder (끝에 슬래시 제외) |
| 제공 사항 | 디렉토리 내 모든 파일의 전체 내용 |
| 포함 사항 | 폴더 바로 아래에 있는 비바이너리 텍스트 파일의 내용(비재귀적) |
| 최적 용도 | 디렉토리 내 여러 파일의 컨텍스트를 한 번에 제공할 때 |
| 팁 | 규모가 큰 디렉토리를 언급할 때는 context window 제한에 유의하세요 |
폴더 언급은 비재귀적입니다. 즉, 하위 폴더의 파일은 제외하고 지정된 폴더에 직접 위치한 파일만 포함합니다.
Problems 언급
Problems 언급은 IBM Bob의 Problems 패널에서 진단 정보를 가져와 여러 문제를 한 번에 해결할 수 있도록 도와줍니다.
| 기능 | 세부 정보 |
|---|---|
| 형식 | @problems |
| 제공 사항 | IBM Bob의 Problems 패널에 표시된 모든 오류 및 경고 |
| 포함 사항 | 파일 경로, 행 번호 및 진단 메시지 |
| 그룹화 | 명확성을 높이기 위해 파일별로 분류된 문제 정보 |
| 최적 용도 | 수동으로 복사하지 않고도 오류를 수정할 때 |
사용 예시: @problems Can you help me fix all these issues?
터미널 언급
터미널 언급은 최근 명령 출력을 캡처하여 빌드 오류 디버깅이나 명령 결과 분석을 도와줍니다.
| 기능 | 세부 정보 |
|---|---|
| 형식 | @terminal |
| 캡처 내용 | 마지막 명령 및 관련 출력 전체 |
| 유지 사항 | 터미널 상태(터미널을 초기화하지 않음) |
| 제한 사항 | 터미널 버퍼에 표시되는 콘텐츠로 제한됨 |
| 최적 용도 | 빌드 오류 디버깅 또는 명령 출력 분석 |
빌드 실패를 트러블슈팅할 때,
What is wrong with @terminal?을 입력해보세요. 출력을 수동으로 복사할 필요 없이 오류에 대한 즉각적인 통찰력을 얻을 수 있습니다.
Git 언급
Git 언급은 커밋과 변경 사항을 참조하여 버전 관리를 수월하게 할 수 있도록 돕습니다.
| 유형 | 형식 | 제공 사항 | 제한 사항 |
|---|---|---|---|
| 커밋 | @a1b2c3d | 커밋 메시지, 작성자, 날짜 및 전체 diff | Git 리포지토리 내에서만 작동 |
| 작업 중인 변경 사항 | @git-changes | git status 출력 및 커밋되지 않은 변경 사항의 diff | Git 리포지토리 내에서만 작동 |
사용 예시: What's the purpose of @a1b2c3d? 또는 Suggest a commit message for @git-changes
URL 언급
URL 언급을 사용하면 Bob과의 대화에서 외부 웹 콘텐츠를 참조할 수 있습니다.
| 기능 | 세부 정보 |
|---|---|
| 형식 | @https://example.com |
| 처리 방식 | 헤드리스 브라우저를 사용하여 콘텐츠를 가져옴 |
| 정리 방식 | 스크립트, 스타일 및 내비게이션 요소를 제거함 |
| 출력 방식 | 가독성을 높이기 위해 콘텐츠를 Markdown으로 변환 |
| 제한 사항 | 복잡한 페이지의 경우 변환이 완벽하지 않을 수 있음 |
URL 언급은 문서를 참조할 때 유용합니다.
공식 문서를 컨텍스트 삼아 개념을 이해하려면 Can you explain @https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise를 시도해보세요.
컨텍스트 언급 사용하기
채팅 입력창에 @를 입력하여 제안 dropdown을 띄웁니다.
계속 타이핑하여 제안을 필터링하거나 방향키를 사용하여 이동합니다.
Enter 키를 누르거나 마우스 클릭으로 선택합니다.
요청 하나에 여러 언급을 결합할 수 있습니다: "Fix @problems in @/src/component.ts"
텍스트를 하이라이트한 다음 단축키 ⌘ + L을 사용하면 대화창에 바로 추가할 수 있습니다.
dropdown에는 다음이 자동으로 추천됩니다.
- 최근에 열었던 파일
- 표시된 폴더
- 최근 Git 커밋
- 특수 키워드(
problems,terminal,git-changes) - 현재 열려 있는 모든 파일(무시 설정이나 디렉토리 필터와 관계없이 무관함)
dropdown은 불필요한 노이즈를 줄이기 위해 node_modules, .git, dist, out과 같은 일반적인 디렉토리를 자동으로 걸러냅니다. 단, 직접 입력하는 경우에는 이러한 디렉토리의 콘텐츠도 포함할 수 있습니다.
단일 요청에 여러 언급을 조합할 수 있습니다. Compare @/src/v1/api.js with @/src/v2/api.js and explain the differences를 입력해 보세요.
중요하게 다루는 동작
무시 파일 상호작용
컨텍스트 언급은 무시된 파일과 상호작용할 때 특정한 동작을 보입니다.
| 동작 | 설명 |
|---|---|
.bobignore 우회 | 파일 및 폴더 @mentions는 컨텍스트용 콘텐츠를 가져올 때 .bobignore 검사를 우회합니다. 무시된 파일의 콘텐츠라도 직접 언급하면 포함됩니다. |
.gitignore 우회 | 마찬가지로, 파일 및 폴더 @mentions는 콘텐츠를 가져올 때 .gitignore 규칙을 준수하지 않습니다. |
| Git 명령 준수 | Git 관련 언급(@git-changes, @commit-hash)은 Git 명령에 의존하므로 .gitignore를 준수합니다. |
컨텍스트 언급은 무시 규칙을 우회하므로, 평소에는 Bob이나 Git에 의해 무시되는 특정 파일을 참조할 수 있습니다. 이 기능은 자동으로 생성된 파일이나 주로 무시되는 기타 콘텐츠에 대해 논의해야 할 때 특히 유용합니다.
종합 정리
컨텍스트 언급은 프로젝트 요소를 정확하게 가리킴으로써 Bob과의 상호작용을 개선합니다. 코드를 복사해서 붙여넣거나 파일 위치를 일일이 설명하는 대신, 논의 중인 대상을 직접 언급할 수 있습니다.
다양한 언급 유형의 효율적인 조합 예시:
Fix @problems in @/src/components and explain what was wrongReview @git-changes and suggest improvementsCompare @/v1/api.js with @https://api-docs.example.com and check for inconsistencies
컨텍스트 언급을 효과적으로 사용하면 Bob과 더욱 명확하게 소통하고 더 정확하게 목표를 겨냥한 지원을 받을 수 있습니다.