본문
24시간 일하는 AI 비서, OpenClaw 로컬 서버 구축 가이드
이전 글에서는 데스크탑 환경에서 가볍게 쓸 수 있는 'Claude Cowork'를 활용해 아침 뉴스 리포트를 자동화하는 방법을 다루었습니다. 하지만 서버 아키텍처나 데이터 파이프라인을 설계하다 보면, 데스크탑 앱 종속성에서 벗어나 내 서버(또는 로컬 환경)에서 24시간 백그라운드로 돌아가는 완전한 헤드리스(Headless) AI 비서를 구축하고 싶은 욕심이 생기기 마련입니다.
그래서 오늘은 최근 GitHub에서 엄청난 속도로 스타를 모으고 있는 오픈소스 AI 에이전트 프레임워크, OpenClaw를 로컬 환경(Docker)에 올려보고, 매일 아침 뉴스를 요약해 내 이메일함에 꽂아주는 파이프라인을 직접 구축해 본 과정을 공유해 보겠습니다.
1. OpenClaw란? (그리고 언제 써야 할까)
OpenClaw는 단순히 질문에 대답만 하는 챗봇이 아니라, 실제로 작업을 수행하는 자율형 AI 에이전트 OS입니다. Anthropic이나 OpenAI의 모델을 두뇌로 사용하되, 파일 시스템이나 브라우저를 제어할 수 있는 손과 발을 달아준 형태라고 보시면 됩니다.
✅ 주요 특징 및 활용 사례
- Heartbeat (능동적 스케줄링): 사용자가 직접 명령하지 않아도 지정된 시간에 스스로 깨어나 작업을 수행합니다. (예: 매일 아침 6시 뉴스 크롤링, 서버 에러 로그 모니터링)
- 멀티채널 메신저 연동: 텔레그램, 디스코드, WhatsApp 등에 봇으로 상주합니다. 터미널을 열 필요 없이 퇴근길 지하철에서 텔레그램으로 내 서버의 에이전트에게 명령을 내릴 수 있습니다.
- 로컬 제어권 및 보안: 내 로컬 PC나 개인 서버(VPS)에 직접 설치하므로 민감한 데이터 주권을 완벽히 확보할 수 있습니다.
단발성 리서치나 코딩 질문은 일반 LLM 웹 인터페이스로도 충분합니다. 하지만 정기적인 스케줄링, 로컬 파일 시스템 제어, 서드파티 앱(이메일, 메신저)과의 파이프라인 통합이 필요할 때는 OpenClaw의 진가가 발휘됩니다.
2. 일반 AI 자동화 도구와의 비교 (Claude Cowork vs OpenClaw)
◼︎ 한 눈에 보는 비교표
| 항목 | Claude Cowork | OpenClaw |
| 제조사 | Anthropic (공식) | 오픈소스 (커뮤니티) |
| 설치 | Claude Desktop 앱 | 로컬 서버 직접 설치 |
| 인터페이스 | GUI (Desktop 앱) | 메신저 / 웹챗 / CLI |
| 파일 작업 | ✅ VM 샌드박스 내 | ✅ 로컬 직접 |
| 24/7 | ❌ 앱 실행 중에만 | ✅ 서버 상시 운영 |
| 메신저 연동 | ❌ 미지원 | ✅ 텔레그램, whatapps 등 |
| 장기 메모리 | ⚠️ 세션 내 컨텍스트 | ✅ MEMORY.md 영구 기억 |
| 확장성 | 플러그인 (Anthropic 생태계) | 스킬 (ClawHub 3,000+) |
| 보안 관리 | Anthropic이 정책 관리 | 사용자 직접 책임 |
| 비용 | Claude 유료 플랜 필요 | 오픈소스 (API 비용 별도) |
| 난이도 | ⭐️ 쉬움 (비개발자 친화) | ⭐️⭐️⭐️ 설정 복잡 |
| Cladue Cowork 선택 | OpenClaw 선택 |
| 비개발자 또는 설정 없이 바로 쓰고 싶다 | 24/7 눙동적인 개인 AI비서가 필요하다 |
| 문서/파일/스프레드 시트 중심 | WhatApps/Telegram으로 AI에 접근하고 싶다 |
| 업무 기업 팀 단위 배포가 필요하다 | 장기 메모리/습관 학습이 중요하다 |
| 보안/컴플라이언스 관리를 Anthropic에 맡기고 싶다 | ClawHub 스킬로 무한 확장을 원한다 |
| Google Drive / DicuSign 같은 엔터프라이즈 SaaS 연동이 필요하다 | 기술적 커스터마이징에 대한 거부감이 없는 파워유저이다 |
◼︎ 핵심요약
1. Claude Cowork = '지식노동자용 Claude Code'
터미널 없이, 비개발자도 AI Agent의 자율 실행 능력을 그대로 활용할 수 있다.
2. 파일/플러그인/커넥터 3박자
로컬 파일 접근 + 도메인별 플러그인 + 엔터프라이즈 SaaS 연동으로 실무 업무 전반 자동화 가능
3. Cowork와 OpenClaw, 용도가 다르다
Cowork는 기업 데스크톱 도구, OpenClaw는 24/7 개인 AI OS. 이 둘은 경쟁이 아닌 상호 보완관계
3. OpenClaw 설치 및 초기 세팅 방법
서버 환경 관리에 익숙하다면 복잡한 설정 없이 공식 Docker Compose를 활용하는 것이 가장 깔끔합니다.
Step 1. 리포지토리 클론 및 설치
git clone https://github.com/openclaw/openclaw
cd openclaw
./docker-setup.sh


💡 추가 결제 없는 Anthropic API 연동: Claude Pro 구독으로 API Key 발급하기
💡 OpenClaw에 Gemini API 키 등록
OpenClaw가 학습된 지식을 넘어 최신 웹 정보를 실시간으로 검색하려면 '검색 엔진(Search Provider)' 연동이 필수입니다. 여기서는 가장 활용도가 높은 Gemini (Google Search)를 기준으로 설명합니다.
1. API 키 발급
- Google AI Studio에 접속합니다.
- 사이드바의 [Get API key] 메뉴로 이동합니다.
- [Create API key]를 클릭해 새로운 키를 생성하고 복사합니다.

2. OpenClaw에 API 키 등록
설치 과정(또는 npx openclaw configure --section web)에서 검색 제공업체를 Gemini (Google Search)로 선택하고, 복사한 API 키를 붙여넣습니다.

💡 [Troubleshooting] Docker 실행 시 'Container is restarting' 오류 해결
docker compose up으로 직접 컨테이너를 올리면 gateway.controlUi.allowedOrigins 값이 설정되지 않아 gateway가 뜨자마자 죽는 재시작 루프에 빠집니다.
OpenClaw는 OPENCLAW_GATEWAY_BIND=lan 모드일 때 보안상 allowedOrigins를 반드시 요구하는데, 이 값은 docker-setup.sh를 통해서만 자동으로 세팅됩니다. 즉, 스크립트를 건너뛰고 직접 docker compose up을 실행하면 설정이 누락된 채로 컨테이너가 올라가게 됩니다.
openclaw.json에 allowedOrigins를 직접 추가한 뒤 재시작해 주세요.
# 1. config에 allowedOrigins 추가
python3 -c "
import json
path = '/Users/shuan/.openclaw/openclaw.json'
with open(path) as f:
cfg = json.load(f)
cfg.setdefault('gateway', {}).setdefault('controlUi', {})['allowedOrigins'] = ['http://127.0.0.1:18789', 'http://localhost:18789']
with open(path, 'w') as f:
json.dump(cfg, f, indent=2)
print('Done')
"
# 2. 재시작
docker compose down && docker compose up -d
Step 2. 웹 UI 및 API 키 연동 Docker 컨테이너가 올라가면 http://127.0.0.1:18789 를 통해 브라우저 대시보드에 접속할 수 있습니다. 여기서 Anthropic(또는 OpenAI) API 키를 입력하고, 필요에 따라 텔레그램 봇 토큰 등을 연결해 줍니다.
- URL: http://127.0.0.1:18789/

💡 [Troubleshooting] Dashboard 접속 시 'pairing required' 오류 해결

토큰 URL로 접속해도 pairing required 메시지가 뜨는 경우, 별도의 기기 승인 단계가 필요합니다. OpenClaw는 처음 접속하는 기기를 자동으로 신뢰하지 않고, gateway 측에서 명시적으로 승인해야 연결됩니다.
아래 명령어로 대기 중인 요청을 확인하고 승인해주세요.
# 대기 중인 기기 목록 확인
docker exec -it openclaw-openclaw-gateway-1 openclaw devices list
# Request ID로 승인
docker exec -it openclaw-openclaw-gateway-1 openclaw devices approve <requestId>

4. 실습: 매일 아침 뉴스 기사를 요약해 Gmail로 보내기
이제 OpenClaw를 이용해 매일 오전 6시에 글로벌 AI 및 서버/인프라 뉴스를 수집하고, 요약본을 Gmail로 전송하는 에이전트를 만들어 보겠습니다.
Step 1. 에이전트 생성
Docker 환경에서는 openclaw 명령어를 매번 docker exec으로 실행해야 합니다. 매번 치기 번거로우니 "~/.zshrc"에 alias를 등록해두면 편리합니다.
# ~/.zshrc에 추가
alias openclaw='docker exec -it $(docker ps --filter name=openclaw-gateway --format "{{.Names}}") openclaw'
source ~/.zshrc
# 에이전트 생성
openclaw agents add news-bot
생성 후 대시보드 Agents 메뉴에서 Refresh를 누르면 news-bot이 목록에 나타납니다.


Step 2. 정체성(IDENTITY) 및 프롬프트 부여

대시보드에서 Agents → news-bot → Files 탭으로 이동하면 IDENTITY.md 파일을 바로 편집할 수 있습니다. 기본 템플릿 내용을 지우고 아래 내용을 붙여넣은 뒤 Save 버튼을 클릭해주세요.
일반 챗봇의 시스템 프롬프트 역할을 넘어, 에이전트의 행동 지침서가 됩니다.
# IDENTITY.md
너는 나의 개인 뉴스 큐레이터 에이전트다.
## 역할
매일 아침 AI 및 서버/인프라 분야의 주요 뉴스를 수집하고 요약해서 보고한다.
## 정기 작업
- [AI 트렌드, MLOps, 서버 인프라 동향] 카테고리로 지난 24시간 내의 주요 뉴스를 웹에서 검색한다.
- 카테고리별로 가장 중요한 뉴스 3개를 선정해 핵심 내용 3줄과 원문 링크를 마크다운으로 정리한다.
- 정리가 완료되면 결과를 세션에 출력한다.
## 출력 형식
**[카테고리명]**
1. 뉴스 제목
- 핵심 내용 요약 (3줄)
- 원문 링크: URL
Cron Job은 별도로 등록해줘야 해요:
- 대시보드에서 Task 등록


- 또는 CLI 이용하기
openclaw cron add \
--name "daily-news" \
--cron "0 6 * * *" \
--tz "Asia/Seoul" \
--agent news-bot \
--session isolated \
--message "정기 작업을 수행해줘"

- Task 수행 결과

- 사용량 확인

Step 3. 메신저 연동 및 모니터링 (선택)
이번 글에서는 다루지 않았지만, 추후 대시보드에서 텔레그램이나 WhatsApp 같은 메신저 채널을 추가로 연동해 두면 활용도가 더욱 높아집니다. 연동이 완료되면 출근길 지하철에서 메신저 앱을 열고 @news-bot에게 "오늘 뉴스 요약본 잘 보냈어?"라고 상태를 체크할 수 있습니다. OpenClaw는 외부 메신저와 로컬 터미널의 컨텍스트를 완벽히 공유하므로, 외부에서도 폰을 통해 곧바로 추가 리서치나 파이프라인 실행을 지시하는 것도 가능해집니다.
마치며
반복되는 파이프라인을 자동화하는 것은 단순한 시간 절약을 넘어, 개발자가 더 중요한 아키텍처 고민에 집중할 수 있게 해줍니다. 처음 Docker로 컨테이너를 올리고 권한을 연동하는 과정이 조금 번거로울 수는 있지만, 한 번 세팅해 두면 나만의 훌륭한 백그라운드 워커 1명을 채용한 것과 같은 든든함을 느낄 수 있습니다.
매일 아침 브라우저 탭을 여러 개 띄워가며 포털 뉴스를 훑는 대신, 나만의 자율형 AI 비서가 정리해 준 깔끔한 이메일 브리핑으로 하루를 시작해 보는건 어떨까요~? :)
댓글