NAS의 Claude Code를 어디서든 제어하는 5가지 방법
Synology NAS에 Claude Code CLI를 설치해두면, 접근 방법이 하나가 아닙니다. 상황에 따라 SSH, Discord, Web VS Code, n8n 자동화, API 직접 호출까지 — 5가지 방법으로 같은 AI에게 작업을 시킬 수 있습니다. 각 방법의 장단점과 활용 시나리오를 정리합니다.
전체 구조
┌─ ① SSH 직접 실행 (터미널)
│
├─ ② Discord 슬래시 커맨드 (모바일)
│ ↓
NAS Docker │ Discord Bot → n8n → API Server
┌───────────────┐ │ ↓
│ Claude Code │ ←─┼─ ③ Web VS Code 터미널 (브라우저)
│ CLI │ │
│ + API Server │ ←─┼─ ④ n8n 스케줄/Webhook (자동화)
│ │ │
│ │ ←─┴─ ⑤ API Server 직접 호출 (HTTP)
└───────────────┘
5가지 방법 모두 같은 /workspace 폴더에서 작업하므로, 어떤 방식으로 접근해도 파일은 동일합니다.
상황별 추천
| 상황 | 추천 방법 | 특징 |
|---|---|---|
| 빠른 질문 1개 | ① SSH 한 줄 | 가장 빠름, 터미널 필요 |
| 복잡한 분석 작업 | ① SSH 대화형 | 대화하며 반복 수정 |
| 외출 중/모바일 | ② Discord | 스마트폰에서 바로 |
| 코딩하며 AI 활용 | ③ Web VS Code | 에디터 + AI 통합 |
| 매일 반복 작업 | ④ n8n 스케줄 | 완전 자동화 |
| 다른 시스템 연동 | ⑤ API 직접 호출 | 자유도 최고 |
① SSH 직접 실행
가장 단순하고 빠른 방법. NAS에 SSH로 접속하여 docker exec로 Claude를 실행합니다.
한 줄 명령 (비대화형)
docker exec -it claude-code claude -p "PubMed에서 최신 논문 5개 찾아줘"
결과 출력 후 바로 종료. 간단한 질문에 적합합니다.
대화형 세션
docker exec -it claude-code claude
Claude와 대화하며 반복 수정 가능. /mcp로 MCP 서버 상태도 확인할 수 있습니다. exit 또는 /quit으로 종료합니다.
긴 프롬프트 — 파일로 전달
# 프롬프트 파일 작성
echo "아래 조건으로 systematic review 검색 전략을 만들어줘:
P: rotator cuff tear
I: EMG-guided exercise
C: conventional rehabilitation
O: functional outcome" > /tmp/prompt.txt
# 파이프로 전달
cat /tmp/prompt.txt | docker exec -i claude-code claude -p -
복잡한 프롬프트를 미리 작성해두고 전달할 때 유용합니다.
특정 디렉토리에서 작업
# research 폴더 기준
docker exec -it -w /workspace/research claude-code claude -p "이 폴더의 논문 데이터를 분석해줘"
# obsidian 볼트 기준
docker exec -it -w /workspace/obsidian claude-code claude -p "EAG 관련 노트를 찾아서 요약해줘"
-w 옵션으로 Claude의 작업 디렉토리를 지정할 수 있습니다.
결과를 파일로 저장
docker exec claude-code claude -p "연구 동향 정리해줘" \
> /volume1/docker/claude-system/research/review.md
-it 플래그를 제거해야 파일 저장이 정상 동작합니다.
유용한 별칭
NAS의 ~/.bashrc에 추가하면 편리합니다:
# Claude 대화형 세션
alias cc='docker exec -it claude-code claude'
# Claude 한 줄 명령
alias ccp='docker exec -it claude-code claude -p'
# Claude MCP 상태 확인
alias ccmcp='docker exec -it claude-code claude mcp list'
# 사용 예시
cc # 대화형 진입
ccp "PubMed에서 EMG 논문 찾아줘" # 한 줄 실행
ccmcp # MCP 목록 확인
② Discord 슬래시 커맨드 (모바일)
스마트폰에서 가장 자연스러운 방법. Discord 앱에서 슬래시 커맨드로 Claude에게 작업을 지시합니다.
사용 가능한 커맨드
| 명령어 | 설명 |
|---|---|
/claude task:... | 새 세션으로 작업 시작 |
/chat message:... | 이전 대화 이어서 |
/todo | 오늘의 할 일 확인 |
/newsession | 세션 초기화 |
/status | 진행 중인 작업 목록 |
/cancel task_id:... | 작업 취소 |
실제 사용 흐름
사용자: /claude task:현재 프로젝트 폴더 분석해줘
Bot: 🚀 새 작업 시작
Task ID: task-1771...
Bot: 🔄 작업 진행 중
도구 호출 3회
⚡ Bash → ls -la
📖 Read → package.json
📖 Read → src/index.ts
Bot: ✅ 작업 완료
결과: 이 프로젝트는 ...
💡 /chat 으로 이어서 대화 가능
사용자: /chat message:package.json 더 자세히 설명해줘
Bot: 💬 (이전 컨텍스트를 기억한 상태로 답변)
아키텍처
Discord → Discord Bot (port 3001) → n8n Webhook (안전 검사)
↓
API Server (port 3002)
↓
Claude CLI (실행)
↓
Discord Bot ← 결과 전송
n8n을 경유하여 위험한 명령어(rm -rf, git push --force 등)를 필터링합니다.
장점
- 어디서든: 스마트폰, 태블릿, PC — Discord만 있으면 됨
- 실시간 진행상황: 어떤 파일을 읽고, 어떤 명령을 실행하는지 Embed로 표시
- 대화 이어가기:
/chat으로 컨텍스트 유지 - 안전 검사: n8n에서 위험 명령어 자동 차단 + 승인 버튼
③ Web VS Code 터미널 (브라우저)
브라우저에서 VS Code를 열고, 내장 터미널에서 Claude CLI를 실행합니다.
브라우저 → code.your-domain.com
→ VS Code 에디터 열림
→ 터미널에서 claude 입력
→ AI가 코드 수정 → 에디터에서 실시간 확인
Discord와의 차이
| 항목 | Discord | Web VS Code |
|---|---|---|
| 코드 확인 | 텍스트로만 | 에디터에서 diff 확인 |
| Plan Mode | 미지원 | Shift+Tab으로 계획→승인→실행 |
| 파일 탐색 | CLI 결과만 | 사이드바에서 전체 탐색 |
| 적합한 작업 | 간단한 질문/작업 | 코딩, 리팩토링 |
코딩 작업에는 Web VS Code가 압도적으로 편합니다. Claude가 수정한 파일의 diff를 바로 확인할 수 있고, Plan Mode로 대규모 작업을 계획→승인→실행하는 워크플로우가 가능합니다.
④ n8n 스케줄/Webhook (자동화)
사람이 직접 명령하지 않아도 자동으로 실행되는 방법. n8n에서 스케줄이나 Webhook으로 API Server를 호출합니다.
활용 예시
# 매일 아침 7시: 할 일 알림
Schedule Trigger (7AM) → Obsidian + Todoist 조회 → Discord 전송
# Discord /todo 커맨드: 수동 실행
Webhook (call-todo) → 동일 파이프라인
# 매주 월요일: 논문 검색
Schedule Trigger (월 9AM) → Claude CLI → PubMed 검색 → 결과 정리 → Discord
n8n Webhook 호출 (외부에서)
curl -X POST http://YOUR_HOST:5678/webhook/discord-command \
-H "Content-Type: application/json" \
-d '{"prompt": "PubMed에서 rotator cuff EMG 논문 검색해줘"}'
n8n의 안전 검사를 거치면서도 자동화할 수 있습니다.
⑤ API Server 직접 호출 (HTTP)
가장 유연한 방법. Claude Code API Server에 직접 HTTP 요청을 보냅니다.
curl -X POST http://YOUR_HOST:3002/api/claude \
-H "Content-Type: application/json" \
-d '{"prompt": "Zotero에서 내 논문 목록 보여줘"}'
n8n을 거치지 않으므로 안전 검사가 없지만, 다른 자동화 시스템이나 커스텀 앱에서 Claude를 호출할 때 유용합니다.
활용 시나리오
- iOS 단축어: Shortcuts 앱에서 HTTP 요청 → Claude 호출
- Zapier/Make: 외부 자동화 도구에서 연동
- 자작 앱: 웹앱이나 스크립트에서 직접 API 호출
방법별 비교 총정리
| ① SSH | ② Discord | ③ Web VS Code | ④ n8n | ⑤ API 직접 | |
|---|---|---|---|---|---|
| 접근 방식 | 터미널 | 모바일 앱 | 브라우저 | 자동 스케줄 | HTTP 요청 |
| 설정 난이도 | 없음 | 높음 | 중간 | 중간 | 낮음 |
| 안전 검사 | 없음 | n8n 경유 | 없음 | n8n 경유 | 없음 |
| 대화 이어가기 | ✅ 대화형 | ✅ /chat | ✅ 대화형 | ❌ | ❌ |
| 실시간 출력 | ✅ | ✅ Embed | ✅ | ❌ | ❌ |
| 코드 편집기 | ❌ | ❌ | ✅ VS Code | ❌ | ❌ |
| 모바일 사용 | SSH 앱 필요 | ✅ 최적 | △ 가능 | 자동 | ❌ |
| 자동화 | cron 가능 | ❌ | ❌ | ✅ 최적 | ✅ |
실전 조합 예시
평일 루틴
07:00 n8n 자동 알림 → Discord에 할 일 도착 (④)
09:00 병원 출근 전 Discord /todo로 확인 (②)
12:00 점심시간에 Discord /claude로 논문 검색 시작 (②)
18:00 퇴근 후 Web VS Code에서 코딩 (③)
22:00 SSH로 간단한 스크립트 실행 (①)
논문 작업
1. Discord: /claude task:PubMed에서 EMG 논문 검색해줘 (②)
2. Discord: /chat message:3번 논문 상세 분석해줘 (②)
3. Web VS Code: 분석 결과 보면서 Obsidian 노트 정리 (③)
4. SSH: claude -p "이 노트 기반으로 초록 작성해줘" > abstract.md (①)
자동화 파이프라인
n8n 스케줄 (매주 월요일 9AM)
→ Claude: "지난주 추가된 Obsidian 노트 요약해줘"
→ 결과 → Discord Webhook으로 전송
→ 스마트폰에서 요약 확인
마무리
5가지 방법 중 "정답"은 없습니다. 상황에 따라 가장 적합한 방법을 쓰면 됩니다.
- 빠르게 → SSH (
ccp "질문") - 이동 중 → Discord (
/claude) - 코딩 → Web VS Code
- 자동화 → n8n 스케줄
- 연동 → API 직접 호출
핵심은 이 모든 방법이 같은 NAS, 같은 Claude, 같은 /workspace 폴더에서 동작한다는 것입니다. 어떤 경로로 접근해도 동일한 파일과 컨텍스트에서 작업할 수 있습니다.