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 등)를 필터링합니다.

장점


③ 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를 호출할 때 유용합니다.

활용 시나리오


방법별 비교 총정리

① 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가지 방법 중 "정답"은 없습니다. 상황에 따라 가장 적합한 방법을 쓰면 됩니다.

핵심은 이 모든 방법이 같은 NAS, 같은 Claude, 같은 /workspace 폴더에서 동작한다는 것입니다. 어떤 경로로 접근해도 동일한 파일과 컨텍스트에서 작업할 수 있습니다.


Comments