NAS의 Claude Code를 어디서든 제어하는 5가지 방법
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 폴더에서 동작한다는 것입니다. 어떤 경로로 접근해도 동일한 파일과 컨텍스트에서 작업할 수 있습니다.