긴 리팩토링 작업 도중 “아까 읽었던 그 설정 파일 경로가 뭐였지?” 하는 순간, 어떻게 하시나요? 작업을 멈추고 새 질문을 입력하면 대화 히스토리가 늘어나고, 결국 미래의 요청에서 토큰이 더 많이 소비됩니다.
Claude Code 2.1.72부터 이 문제를 깔끔하게 해결하는 /btw 커맨드가 도입되었습니다. By The Way의 약자로, 메인 작업 흐름을 전혀 건드리지 않고 현재 컨텍스트 안에서 빠른 사이드 질문을 할 수 있는 기능입니다.
왜 /btw가 필요한가?
Claude Code로 작업하다 보면 이런 상황이 자주 생깁니다.
- 코드 리팩토링 중간에 “이 패턴 이름이 뭐지?” 확인이 필요할 때
- 빌드가 돌아가는 동안 “아까 읽은 환경변수 이름이 뭐였더라?” 재확인이 필요할 때
- 테스트 작성 중에 “이 함수 시그니처가 어떻게 됐지?” 체크가 필요할 때
이런 질문들을 일반 채팅으로 하면 두 가지 문제가 생깁니다. 첫째, 질문과 답변이 대화 히스토리에 쌓여 이후 요청의 컨텍스트 크기를 계속 키웁니다. 둘째, 작업 흐름이 끊기고 Claude가 현재 진행 중인 맥락을 잃을 수 있습니다.
/btw는 이 두 문제를 모두 해결합니다.
핵심 개념: Ephemeral 사이드 채널
/btw를 입력하면 일시적인 독립 채널이 열립니다. 질문과 답변은 overlay로 표시되고, 닫으면 대화 히스토리에 흔적을 남기지 않습니다.
sequenceDiagram
participant 사용자
participant main as 메인 대화
participant btw as /btw 채널
사용자->>main: 작업 요청 (컨텍스트 쌓임)
main-->>사용자: 작업 진행 중...
사용자->>btw: /btw 이 함수 반환 타입이 뭐였지?
Note over btw: 전체 컨텍스트 읽기 가능<br/>도구 사용 불가 (read-only)
btw-->>사용자: string[] 반환합니다 (overlay 표시)
사용자->>btw: Space/Enter/Esc로 dismiss
Note over main: 히스토리 변화 없음
main-->>사용자: 작업 계속
내부 동작 원리
/btw가 실행되면 Claude는 다음 과정을 거칩니다.
- Ephemeral 에이전트 스폰 — 일시적인 독립 에이전트를 생성합니다
- 전체 컨텍스트 접근 — 현재 대화 히스토리 전체를 읽습니다 (Claude가 이미 읽은 파일, 이전 결정사항 포함)
- Read-only 모드 — 파일 쓰기, 명령어 실행 등 도구 사용은 불가합니다
- 프롬프트 캐시 재활용 — 부모 대화의 prompt cache를 재사용해 추가 비용을 최소화합니다
- 단발성 응답 — 한 번만 답변하고 히스토리에 기록하지 않습니다
실전 사용법
기본 문법은 단순합니다.
/btw <질문>
실제로 어떤 상황에서 유용한지 살펴보겠습니다.
현재 작업 중인 함수 빠른 확인
/btw calculate_metrics 함수 반환값이 뭐였지?
# 영어도 가능: /btw What does the calculate_metrics function return?
코드베이스를 보고 있는 중에 특정 함수의 반환값이나 파라미터를 빠르게 재확인할 수 있습니다.
이미 읽은 파일 정보 재확인
/btw 아까 읽은 설정 파일 이름이 뭐였지?
# 영어도 가능: /btw what was the name of that config file we read earlier?
긴 세션에서 이전에 읽었던 파일명이나 경로를 다시 찾을 때 유용합니다.
코딩 패턴 확인
/btw 에러 핸들러 패턴 어떻게 쓰기로 했지?
# 영어도 가능: /btw what pattern are we using for error handlers?
현재 세션에서 합의된 코딩 패턴을 확인할 때 메인 대화를 방해하지 않습니다.
답변 닫기: Space, Enter, Esc 키 중 하나로 overlay를 dismiss할 수 있습니다.
/btw vs 다른 방법들 비교
/btw vs 서브에이전트(Subagent)
공식 문서는 두 기능을 이렇게 설명합니다.
/btwis the inverse of a subagent: it sees your full conversation but has no tools, while a subagent has full tools but starts with an empty context.
| 항목 | /btw | 서브에이전트 |
|---|---|---|
| 컨텍스트 접근 | 전체 대화 히스토리 | 빈 컨텍스트로 시작 |
| 도구 사용 | 불가 (read-only) | 가능 (full tools) |
| 용도 | 이미 아는 것 확인 | 새로운 것 찾기/실행 |
| 비용 | 최소 (캐시 재사용) | 일반 비용 |
| 히스토리 기록 | 없음 | 없음 |
/btw vs 일반 채팅
| 항목 | /btw | 일반 채팅 |
|---|---|---|
| 히스토리 기록 | 없음 | 쌓임 |
| 향후 토큰 비용 | 영향 없음 | 증가 |
| 작업 흐름 | 유지 | 끊길 수 있음 |
| 후속 질문 | 불가 | 가능 |
토큰 절약 효과
/btw의 가장 실질적인 이점 중 하나는 토큰 비용 절감입니다.
일반 채팅으로 빠른 확인 질문을 반복하면, 모든 질문과 답변이 히스토리에 쌓여 이후 모든 요청에서 더 많은 토큰이 소비됩니다. /btw를 일관적으로 사용하면 메인 히스토리를 핵심 작업 내용만으로 유지할 수 있습니다.
특히 긴 세션에서 “이거 뭐였지?” 식의 확인 질문을 자주 한다면 효과가 큽니다.
주의사항
/btw를 효과적으로 사용하려면 몇 가지 한계를 알고 있어야 합니다.
- 현재 컨텍스트 한정 — 현재 세션에서 Claude가 읽지 않은 파일 정보는 조회 불가
- 도구 사용 불가 — 파일 탐색, 명령어 실행 등 적극적인 작업 불가
- 단발성 응답 — 후속 질문으로 대화를 이어갈 수 없음
- IDE 환경 — 일부 IDE 통합 환경에서는 동작이 다를 수 있음
마무리
/btw는 단순해 보이지만 실제 작업 효율에 체감 차이를 만드는 기능입니다. 핵심을 정리하면 이렇습니다.
- 메인 대화 히스토리를 오염시키지 않는 ephemeral 질의 채널
- 전체 컨텍스트에 접근 가능하지만 도구 사용은 불가 (read-only)
- 반복적인 확인 질문을
/btw로 처리해 장기 세션의 토큰 비용 절감 Space,Enter,Esc로 overlay dismiss
Claude Code를 일상적으로 쓴다면 /btw를 습관화하는 것만으로 세션 품질이 달라집니다. 다음 작업 세션에서 “이거 뭐였지?” 싶을 때 한 번 써보세요.