TL;DR
- 핵심 기능: 스니펫 시스템 + 인터랙티브 버튼 + 파일 다운로드
- 결과: 반복 작업 자동화, 모바일에서 터치 한 번으로 상태 확인/키 입력
- 키워드: 스니펫, 인터랙티브 버튼, 파일 다운로드, 취소 기능
- 대상: remote-claude로 생산성을 극대화하고 싶은 개발자
- 소요 시간: 이해 10분, 설정 5분
1. 왜 스니펫 시스템이 필요한가?
핵심 문제: 반복되는 긴 프롬프트
Claude Code로 작업하다 보면 비슷한 명령을 반복하게 됩니다:
매번 입력해야 하는 명령들:
"빌드하고 테스트 실행해줘"
"ESLint 에러 고쳐줘"
"SEO 분석하고 키워드 밀도 체크해줘"
"한글 포스트를 영문으로 번역해줘"
문제점:
- 매번 같은 프롬프트 타이핑 → 시간 낭비
- 오타 가능성 → 일관성 저하
- 모바일에서 긴 문장 입력 → 매우 불편
스니펫 시스템의 해결책:
자주 쓰는 프롬프트를 한 번 등록 → 이름만으로 실행
등록: /snippet add build-test "빌드하고 테스트 실행해줘"
실행: /run build-test
7단어 → 2단어로 단축! ✨
스니펫 시스템은 반복 명령을 저장하고, 짧은 이름으로 실행하는 기능입니다. 생산성 향상의 핵심입니다.
2. 스니펫 시스템 완벽 가이드
2.1 스니펫 기본 명령어
스니펫 시스템은 5가지 핵심 명령어로 구성됩니다:
| 명령어 | 설명 | 예시 |
|---|---|---|
/snippet list |
모든 스니펫 목록 | 첫 60자 미리보기 포함 |
/snippet add <name> <prompt> |
새 스니펫 등록 | /snippet add build "npm run build" |
/snippet edit <name> <new-prompt> |
스니펫 수정 | /snippet edit build "npm run build && npm test" |
/snippet delete <name> |
스니펫 삭제 | /snippet delete build |
/snippet show <name> |
전체 내용 보기 | 긴 프롬프트 확인 |
2.2 스니펫 이름 규칙
스니펫 이름은 kebab-case 형식을 따릅니다:
✅ 올바른 이름:
build-test
fix-lint
seo-analyze
translate-ko-en
❌ 잘못된 이름:
build_test (언더스코어 사용 불가)
BuildTest (대문자 사용 불가)
build--test (연속 하이픈 불가)
-build (하이픈으로 시작 불가)
규칙:
- 소문자 + 숫자 + 하이픈만 사용
- 1~50자 범위
- 하이픈으로 시작/끝 불가
2.3 스니펫 저장 위치
스니펫은 ~/.remote-claude/snippets.json에 저장됩니다:
{
"snippets": {
"build-test": "npm run build && npm test",
"seo-analyze": "SEO 분석: 키워드 밀도 확인, 제목 60자 체크",
"translate-ko-en": "한글을 영문으로 자연스럽게 번역"
}
}
3. 실전 스니펫 예시
3.1 개발 워크플로우 스니펫
# 빌드 + 테스트
/snippet add build-all "프로젝트 빌드하고 모든 테스트 실행해줘. 실패하면 원인 분석해줘."
# 린트 수정
/snippet add fix-lint "ESLint 에러를 자동으로 수정하고 결과 보여줘."
# 타입 체크
/snippet add check-types "TypeScript 타입 에러 확인하고 수정 방법 제안해줘."
3.2 블로그 작성 스니펫
# SEO 분석
/snippet add seo-check "SEO 분석해줘: 키워드 밀도 0.5-2.5% 범위, 제목 60자 이하, excerpt 300자 이하 확인."
# 한영 번역
/snippet add translate "한글 포스트를 영문으로 번역해줘. 기술 용어는 보존하고, SEO 키워드 자연스럽게 포함."
# 포스트 초안
/snippet add draft-post "블로그 포스트 초안 작성해줘. TL;DR 포함, 7개 섹션 구조."
3.3 스니펫 활용 패턴
패턴 1: 연속 작업
/run build-all
(결과 확인)
/run fix-lint
(결과 확인)
/run check-types
패턴 2: 조건부 실행
/run seo-check
→ "키워드 밀도 부족" 결과 나옴
"키워드 밀도를 1.5%로 올려줘"
→ 스니펫 + 추가 지시 조합
스니펫 시스템으로 반복 작업을 자동화하면 생산성이 크게 향상됩니다.
4. 인터랙티브 버튼으로 빠른 응답
4.1 왜 인터랙티브 버튼인가?
모바일에서 Claude Code를 제어할 때의 어려움:
기존 방식:
- 상태 확인: /state 명령어 입력 → 번거로움
- 키 입력: 터미널 접속 필요 → 모바일에서 불가
- 파일 확인: scp나 sftp 필요 → 복잡함
인터랙티브 버튼:
- 📊 상태 확인 → 터치 한 번
- ⏎ 엔터/화살표 키 → 터치 한 번
- 📥 파일 다운로드 → 터치 한 번
- 빠르고 편리 ✨
인터랙티브 버튼은 자주 사용하는 기능을 Slack 버튼으로 제공합니다.
4.2 인터랙티브 버튼 구성
remote-claude는 9개의 인터랙티브 버튼을 제공합니다:
1행: 핵심 기능 (3개)
| 버튼 | 기능 | 설명 |
|---|---|---|
| 📊 상태 확인 | 현재 상태 | Claude Code 화면, 작업 큐 상태 |
| 📥 파일 다운로드 | 파일 가져오기 | 프로젝트 파일을 Slack으로 |
| 🚫 작업 취소 | 실행 중단 | 현재 작업 즉시 취소 |
2행: 키 입력 (6개)
| 버튼 | 동작 | 용도 |
|---|---|---|
| ⏎ 엔터 | Enter 1회 | 명령 실행 |
| ⏎⏎ 엔터*2 | Enter 2회 | 연속 확인 |
| ↑ ↓ ← → | 화살표 키 | 커서 이동, 히스토리 |
4.3 상태 확인 버튼 활용
📊 상태 확인 버튼을 누르면:
📊 채널 상태
프로젝트: my-blog
경로: /Users/idongho/proj/blog
tmux 세션: my-blog-session
📋 작업 큐 상태
대기 중: 0개
실행 중: 1개
완료: 5개
실패: 0개
🖥️ Claude Code 현재 화면
(최근 80줄 캡처)
인터랙티브 버튼으로 모바일에서도 쉽게 상태를 확인할 수 있습니다.
5. 파일 다운로드 기능
5.1 파일 다운로드란?
📥 파일 다운로드 버튼 또는 /download 명령어로 프로젝트 파일을 Slack으로 다운로드합니다.
사용 사례:
- 로그 파일 확인:
error.log - 설정 파일 검토:
package.json - 작성한 코드 확인:
src/index.ts - 마크다운 초안 확인:
content/posts/ko/my-post.md
5.2 파일 다운로드 사용법
버튼 방식:
📥 파일 다운로드 버튼 클릭
→ 파일 선택 모달 표시 (최대 100개, 최근 수정순)
→ 파일 선택
→ Slack에 파일 업로드
명령어 방식:
/download README.md
/download src/index.ts
/download content/posts/ko/my-post.md
파일 다운로드 기능으로 어디서나 프로젝트 파일을 확인할 수 있습니다.
5.3 보안 제약
파일 다운로드는 보안을 위해 여러 제약이 있습니다:
파일 크기 제한:
최대 10MB
초과 시: "⚠️ 파일 크기가 제한을 초과했습니다."
민감한 파일 차단:
차단되는 파일:
❌ .env, .env.local, .env.production
❌ *.key, *.pem (암호화 키)
❌ credentials.json, password.txt
❌ ~/.ssh/, id_rsa, id_ed25519
❌ .git/config
Path Traversal 방지:
❌ 차단: /download ../../etc/passwd
❌ 차단: /download ../../../.env
✅ 허용: /download README.md
✅ 허용: /download src/index.ts
파일 다운로드 기능은 보안을 유지하면서 필요한 파일만 접근할 수 있게 설계되었습니다.
6. 취소 기능으로 실행 중단
6.1 취소 기능이란?
🚫 작업 취소 버튼 또는 /cancel 명령어로 실행 중인 작업을 즉시 중단합니다.
사용 사례:
- 잘못된 명령 실행 → 즉시 취소
- 예상보다 오래 걸리는 작업 → 취소 후 재시도
- 다른 작업 우선 처리 필요 → 현재 작업 취소
6.2 취소 기능 사용법
🚫 작업 취소 버튼 클릭
또는
/cancel
→ 현재 실행 중인 작업 확인
→ Claude Code 프로세스 중단
→ 작업 큐에서 제거
→ "✅ 작업이 취소되었습니다."
취소 기능으로 잘못된 작업을 즉시 중단하고 시간을 절약할 수 있습니다.
6.3 취소 후 상태
취소 전:
📋 작업 큐 상태
대기 중: 2개
실행 중: 1개 ← 이 작업 취소
취소 후:
📋 작업 큐 상태
대기 중: 2개
실행 중: 0개
취소: 1개 ← 취소된 작업 기록
7. 메시지 자동 분할
7.1 왜 메시지 분할이 필요한가?
Slack 메시지는 3,500자 제한이 있습니다. Claude Code 응답이 이를 초과하면?
문제 상황:
Claude Code 응답: 8,500자
Slack 제한: 3,500자
→ 메시지 전송 실패 또는 잘림 ❌
메시지 자동 분할 해결책:
8,500자 응답
↓
자동 분할
↓
[1/3] 2,450자 → 전송
[2/3] 2,480자 → 전송
[3/3] 3,570자 → 전송 (버튼 포함)
7.2 분할 로직
메시지 자동 분할은 다음 규칙을 따릅니다:
- 줄 단위 분할: 문장 중간이 아닌 줄바꿈 기준으로 분할
- 최대 2,500자: 각 메시지는 2,500자 이하로 제한
- 순번 표시: [1/3], [2/3], [3/3] 형태로 순서 표시
- 버튼 위치: 마지막 메시지에만 인터랙티브 버튼 포함
7.3 분할 메시지 전송
전송 흐름:
[1/3] 첫 번째 메시지 → 즉시 전송
↓ 500ms 대기
[2/3] 두 번째 메시지 → 전송
↓ 500ms 대기
[3/3] 세 번째 메시지 → 전송 (버튼 포함)
재시도 로직:
- 최대 3회 재시도
- 지수 백오프: 1초 → 2초 → 4초
- rate_limited 에러 자동 처리
메시지 자동 분할로 긴 응답도 깔끔하게 전달됩니다.
7.4 코드 블록 처리
Claude Code 응답에 코드 블록이 포함된 경우:
원본:
```python
print("hello")
문제:
Slack 코드 블록 구문과 충돌
해결:
자동으로 “` → ”’ 변환
→ 텍스트로 안전하게 표시
---
## 8. 생산성 극대화 워크플로우
### 8.1 전체 기능 조합
1️⃣ 스니펫 등록 (한 번만)
/snippet add blog-publish “블로그 포스트 SEO 분석 후 발행해줘”
2️⃣ 스니펫 실행
/run blog-publish
3️⃣ 인터랙티브 버튼으로 확인
Claude Code: “발행할까요?”
→ [✅ Yes] 버튼 터치
4️⃣ 긴 결과는 자동 분할
[1/2] SEO 분석 결과
[2/2] 발행 완료 메시지 (버튼 포함)
5️⃣ 파일 다운로드로 확인
📥 → content/posts/ko/my-post.md 다운로드
6️⃣ 문제 시 취소
🚫 → 작업 즉시 중단
### 8.2 모바일 최적화 팁
스마트폰에서 생산성을 극대화하는 방법:
| 상황 | 해결책 |
|------|--------|
| 긴 명령어 입력 | 스니펫 시스템 활용 |
| 키 입력 필요 | ⏎ 엔터/화살표 버튼 |
| 결과 확인 | 📊 상태 확인 버튼 |
| 파일 확인 | 📥 파일 다운로드 |
| 실수 시 | 🚫 작업 취소 |
스니펫 시스템과 인터랙티브 버튼을 조합하면 모바일에서도 PC 수준의 생산성을 달성할 수 있습니다.
---
## 시리즈 네비게이션
- [← Day 1: 로컬 환경을 어디서나](/ko/remote-claude-day1-local-dev-anywhere/)
- [← Day 2: Slack Bot 설정 완전 가이드](/ko/remote-claude-day2-slack-bot-setup/)
- [← Day 3: 여러 프로젝트 동시 관리](/ko/remote-claude-day3-multi-project-queue/)
- **Day 4: 생산성 극대화** (현재)
- → Day 5: 스마트폰 최적화 (Coming Soon)
---
## 참고 자료
- **GitHub**: [remote-claude](https://github.com/dh1789/remote-claude)
- **Slack API**: [Interactive Components](https://api.slack.com/interactivity)
- **시리즈 이전 글**: Day 1-3 참고
---
### 관련 포스트
- [Day 1: 로컬 환경을 어디서나](/ko/remote-claude-day1-local-dev-anywhere/)
- [Day 2: Slack Bot 설정 완전 가이드](/ko/remote-claude-day2-slack-bot-setup/)
- [Day 3: 여러 프로젝트 동시 관리](/ko/remote-claude-day3-multi-project-queue/)
Leave A Comment