NAS의 Claude Code를 어디서든 제어하는 5가지 방법

4 min read

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와의 차이

항목DiscordWeb 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 폴더에서 동작한다는 것입니다. 어떤 경로로 접근해도 동일한 파일과 컨텍스트에서 작업할 수 있습니다.