2026-05-13 · 개발 컨퍼런스 · 30분
AI 와 함께 일해서 업무 효율을 높이는 방법
— 매일 5채널 자동 발행 · 새벽 사고는 워치독이 잡고 · 사람 개입은 의사결정만
챗봇 · 콘텐츠 · 책/장편 · 논문/리서치 · 학습 · 실험 · 플랫폼
사람은 한 명. 비결은 — 시스템 자체가 사람처럼 일하기 때문.
PART 1
모델은 똑같다. 그 둘레의 환경이 다르면 결과가 달라진다.
| 축 | 의미 | 비유 |
|---|---|---|
| 1. 프롬프트 엔지니어링 | AI 에게 말을 잘 거는 기술 | 말 거는 법 |
| 2. 컨텍스트 엔지니어링 | 필요한 정보를 적절히 제공 | 지도 보여주기 |
| 3. 하네스 엔지니어링 ★ | AI 가 실수할 수 없는 환경을 만드는 기술 | 가죽끈 · 고삐 · 수레 |
| 4. 에이전틱 엔지니어링 | 자율 워크플로우 설계 | 말을 훈련시키는 법 |
"말을 아무리 잘 훈련시켜도 마구가 없으면 밭을 갈 수 없다."
— 하네스 엔지니어링의 핵심 비유
하네스는 다른 3개를 졸업한 다음이 아니라, 처음부터 같이 짜야 한다.
고삐 · 방향
울타리
접근 제한
자동 청소 + 자기진화
| 요소 | 역할 | 우리 시스템 대응 |
|---|---|---|
| Hook | 이벤트(세션 시작, prompt submit, 도구 호출)에 자동 실행 | SessionStart hook → 최근 커밋 / 미정리 repo / 서비스 상태 주입 |
| Skill | 트리거 키워드로 자동 활성화되는 명세된 절차 | jiinsi-podcast-cbr, key-rotation, verify-handoff … |
| Memory | 대화 사이를 잇는 영속 컨텍스트 | ~/.claude/projects/-home-sg/memory/*.md 90+개 |
| Tool | 외부 세계와 상호작용 (파일, 셸, 브라우저, MCP) | Bash · Read · Edit · Chrome MCP · Vercel MCP |
| Sub-agent | 독립 컨텍스트로 위임 (Explore / general / pm-agent …) | agent-runner 페르소나 31명 |
| 시스템 | 비유 | 핵심 | SGwannabe 가 차용한 것 |
|---|---|---|---|
| gstack | 프로세스 매뉴얼 | 23개 스킬 · Conductor 병렬 | 스킬 팩 / 데몬 상태 파일 모델 |
| Claude Code | 코딩 도구 | 에이전트 루프 + Hooks + Skills + Subagents | 5요소 전부. 우리 시스템의 IDE 레이어 |
| OpenClaw | 직원 1명 | 채널 게이트웨이 + Scout loop + task self-generation | Scout 5종 + dedupe + 자동/보고 분리 |
| Paperclip | 회사 전체 | 조직도 · 월별 예산 · 감사 로그 · 승인 게이트 | execution_logs · 승인 워크플로우 |
| SGwannabe | 통합 플랫폼 | 위 4개의 장점만 골라 조립 | — |
프롬프트/컨텍스트 → gstack (스킬 팩, 워크플로우)
도구 실행 → Claude Code (에이전트 루프, Hooks)
채널/상시 운영 → OpenClaw (데몬, 채널 라우팅, Scout)
조직/거버넌스 → Paperclip (조직도, 예산, 감사)
통합 플랫폼 → SGwannabe (위 4개 장점 조합)
github.com/garrytan/gstack
23개 스킬 · 3중 hook · Playwright daemon · self-evolving memory · session intelligence
github.com/zebbern/claude-code-guide
Hooks 15종 / Skills / Subagents / Plan mode 의 실전 패턴 정리
github.com/openclaw/openclaw
채널 게이트웨이 + Scout loop + task self-generation + worker/company 구분
github.com/paperclipai/paperclip
"회사 단위" 오케스트레이션 — 조직도 · 월별 예산 · 불변 감사 로그 · 승인 게이트
한국 개발 커뮤니티에서 회자되는 강의
"에이전트가 실수했을 때 프롬프트를 고치지 마세요. 하네스를 고치세요." · 4대 기둥 (컨텍스트 / 자동 강제 / 도구 경계 / 가비지 컬렉션)
+ Karpathy 4 원칙 (Think Before Coding / Simplicity / Surgical / Goal-Driven) — 페르소나 task 발행 SOP 의 토대.
좋은 점만 골라 우리 환경에 맞게 재조립 — 그대로 들고 오지 않았다.
PART 2
SGwannabe · JIINSI · ElectroAssist
┌─────────────────────────────────────────────────────────────┐
│ 사용자 (텔레그램 / 음성 / 슬래시) │
└──────────────┬────────────────────────────┬─────────────────┘
│ │
┌──────────▼──────────┐ ┌──────────▼──────────┐
│ Claude Code CLI │ │ sgw-backend (8100) │
│ (개발·운영 IDE) │ │ 대시보드 · API │
└──────────┬──────────┘ └──────────┬──────────┘
│ │
│ ┌─────────────▼─────────────┐
│ │ agent-runner (데몬) │
│ │ 31 personas · 3 exec │
│ │ Scouts · Watchdogs │
│ └─────────────┬─────────────┘
│ │
┌──────────────▼────────────────────────────▼─────────────────┐
│ 서비스 (20+) │
│ ┌─ JIINSI · ElectroAssist · gametalktalk · MyMind │
│ ├─ BloomWrite · novel_2027 · WORLD LOOK BOOK · TarotBook │
│ ├─ leesangjin_paper · sg_deepresearch │
│ ├─ CBT · QPASS · child_q │
│ └─ voice-persona-lab · KAMRA · InsightX · … │
└─────────────────────────────────────────────────────────────┘
project_electroassist_*.md 3개 (DB / 시연환경 / 상태)
05:00 collect 뉴스 수집 (RSS · API)
06:00 summarize Vertex Gemini 로 한국어 요약
06:30 podcast Gemini TTS → ffmpeg CBR 192k mp3
07:00 publish 사이트 · 네이버 · 팟빵 · X · 텔레그램 5채널
25 * * * * publish_watchdog 매시 25분 실패 자동 재시도
08:00 naver QA 발행 직후 무결성 점검
23:00 GA · 네이버 통계 수집
| Layer | 역할 | 구현 |
|---|---|---|
| 1. Pre-flight | 발행 전 dry-run · 키 만료 · 디스크 점검 | publish_verifier.py |
| 2. Fail-open Decoupling | 채널 1개 실패가 다른 채널을 막지 않음 | 채널별 try/except + per-channel state |
| 3. Auto-recovery | 실패 항목 자동 재시도 (1h / 6h) | publish_watchdog.py · 25분 cron |
| 4. Health Check | 발행 직후 채널별 실제 노출 확인 | naver_publish_qa.py · 08:00 cron |
| 5. Observability | 모든 단계 텔레그램 로깅 | TG bot · 평문 시크릿 차단 |
| 6. Recovery Automation | 사람 개입 없이 누락분 재발행 | republish_daily.py · republish_podcasts.py |
4-12 ~ 5-4 동안 매일 반복된 5종 사고 → 6-Layer 도입 후 5-9 빈 발행 1건만 발생 → 코드 패치로 차단.
sg-pc1 (PC #1) sg-pc2 (PC #2, 예정)
├─ agent-runner.service ├─ agent-runner.service
│ ├─ 머신 등록 + heartbeat 30s │ …
│ ├─ task fetch (HTTP poll)
│ ├─ executors/
│ │ ├─ claude_executor (Claude Max CLI subprocess)
│ │ ├─ gemini_executor (Vertex AI)
│ │ └─ script_executor (bash/python)
│ ├─ scouts/ ← OpenClaw 차용
│ │ ├─ code_scout · data_scout
│ │ ├─ content_scout · pipeline_scout
│ │ └─ metric_scout (dedupe 7일)
│ └─ verify_logger → MySQL + TG
└─ ~/.sgwannabe/runner.json (상태 파일) ← gstack 차용
sgw-backend (8100) ← 대시보드, task queue, persona registry
gstack 의 상태 파일 + 하트비트 + OpenClaw 의 Scout loop + task self-generation 조합. Claude Max CLI subprocess 로 정액제 안에서 무제한 호출.
--- id: jiinsi-cs name: 이지혜 (JIINSI CS 매니저) runtime: claude project: JIINSI skills: - korean-writing - customer-service - reply-drafting memory_namespace: jiinsi-cs --- # 역할 당신은 JIINSI 의 CS 담당자 이지혜입니다. - 4 외부 채널 + 사이트 댓글 응대 - 24h 안 답글 약속 - 호칭 "독자님" · 이모지 금지 …
페르소나 = Sub-agent 의 스킨 + skill 의 묶음 + memory_namespace. 사용자는 "이지혜에게 맡겨" 한 마디만.
--- 블록 메타데이터
1. 사용자 음성 : "이지혜한테 어제 댓글 답글 정리해서 보고하라고 해"
2. Telegram bot → task queue (MySQL)
3. agent-runner → persona=jiinsi-cs · runtime=claude · skills 로드
4. claude_executor → Claude Max CLI subprocess
↓
4 채널 selenium / tweepy / API 호출
↓
답글 초안 작성 → 사용자 승인 대기
5. verify_logger → TG 로 결과 보고 (텍스트 + 링크)
6. 사용자가 "ok" → 실제 게시
사람 개입은 의사결정만. 정보 수집 · 초안 · 게시 · 로그는 모두 자동.
사람 1명이 운영. 사고가 났을 때 페르소나가 먼저 알아채고 텔레그램으로 보고한다.
PART 3 · LIVE DEMO
5분 · 3 시나리오
claude CLI 실행 → 빈 세션에 컨텍스트 자동 주입
"빈 채팅창이 아니라 방금까지 일하던 동료가 들어옵니다."
하네스 4대 기둥 ①컨텍스트 파일 + ④가비지 컬렉션(미정리 감지)이 한 번에 동작
왼쪽 텔레그램, 오른쪽 task queue 라이브
사람 개입은 의사결정만
cron log + 텔레그램 알림 + DB 상태 변화
tail -f publish_watchdog_cron.log"사람이 새벽에 깰 필요 없는 시스템 — 6-Layer 의 끝"
PART 4
여러분 시스템에 바로 이식 가능한 것들
┌────────────────────────────────────────────────┐
│ CLAUDE.md (전역 · 모든 세션 자동 로드) │
│ ─ 개발 철학 · LLM 라우팅 · 보안 · 코딩 규칙 │
├────────────────────────────────────────────────┤
│ Memory (~/.claude/.../memory/*.md) │
│ ─ user / project / feedback / reference │
│ ─ MEMORY.md = 인덱스, 본문은 별도 파일 │
├────────────────────────────────────────────────┤
│ Skill (트리거 키워드로 활성화) │
│ ─ 절차 · 체크리스트 · 도메인 지식 │
└────────────────────────────────────────────────┘
▲
│ SessionStart hook 으로
│ 자동 결합 + 최근 커밋 / 상태 주입
왜 3계층? 전역(항상) / 영속(인덱스로) / 트리거(키워드로) 의 분리. 한 곳에 다 넣으면 컨텍스트 폭발.
JIINSI 사고 5종에서 추출한 일반 원칙
새 발행 코드 작성 시 자동 적용 (메모리 feedback_jiinsi_publish_resilience.md).
페르소나가 "완료" 보고 전 자기검증 강제:
3개 모두 yes 일 때만 완료로 인정.
외부 채널 발행 끝났을 때 "완료" 만 말하지 말고 사용자에게 직접 확인 요청:
❌ "팟빵 업로드 완료"
✅ "팟빵에 [제목] 올라갔는데
한번 들어보시고 음질·길이
이상 없는지 확인 부탁드립니다."
2026-04-28 4/28 daily 사고 후 강제.
"자기 모델이 자기 답을 평가하면 confirmation bias 가 들어간다"
패턴 3 의 verify-done 은 "완료했나" 만 본다. "옳은 방향으로 가는가" 는 못 본다.
2026-05-14 사고: Opus 4.7 가 paradigm "강력" 평가 → Sonnet 4.6 교차검증 → 5가지 결정적 비판 → NeurIPS accept 70% → 3-7%. 70%p 격차.
| 현재 | 검증 모델 |
|---|---|
| Opus 4.7 | Sonnet 4.6 |
| Sonnet 4.6 | Opus 4.7 |
| Haiku 4.5 | Sonnet 4.6 |
cat prompt.md | \ claude -p --model claude-sonnet-4-6 \ --output-format text > result.md # Claude Max CLI subprocess · 비용 0원
트리거: "검증해줘 · QA · 리뷰 · 비판 · 검토 · double check · second opinion · 독립 검증". 도메인 페르소나 강제 (NeurIPS AC · senior engineer · 임상 통계학자 등).
claude -p --model X 비대화형 호출 — Max 정액제 안에서 비용 0"LLM 호출 경로는 두 개만 허용한다"
| 허용 | 경로 | 비용 |
|---|---|---|
| ✅ | Claude Max 정액제 — Claude Code CLI / app 이 claude subprocess 호출 | 0원 |
| ✅ | GCP Vertex AI (synapticbl00ming billing) — 서비스별 키 분리 | billing 리포트로 비용 추적 |
| ❌ | Gemini AI Studio (generativelanguage) | 카드 종량 |
| ❌ | Anthropic API 직결 / OpenAI / Grok / 기타 | 외부 카드 청구 |
서비스 추가 시 새 Vertex 키 발급 강제 → billing report 가 서비스별 비용 추적 가능.
claude CLI 를 자식 프로세스로 호출"LLMs are exceptionally good at looping until they meet specific goals."
— Andrej Karpathy
Transform 패턴: "Fix the bug" → "Write a test that reproduces it, then make it pass"
31명 페르소나 task 발행 SOP. 메모리 _KARPATHY_4.md.
PART 5
자랑할 게 아니라, 우리를 가장 많이 바꾼 것들
.bak.empty) → 5/10 통과f766694) → 5/9 재발행 5채널 OKscripts/auto_ban_with_whitelist.sh wrapper — iptables ACCEPT 화이트리스트 + 본인 외부 IP 강제 제외~/.local/share/claude/versions/ 사이즈 비교 → 신버전 손상 식별feedback_claude_cli_corrupted_build.md 에 SOP 박제 → 다음 사고 1분 진단
AI 한 명을 키우지 마세요.
31 페르소나를 만드세요.
오늘의 도전장 · 자정 전
CLAUDE.md 한 장 (개발 철학 · 보안 · 코딩 규칙)~/.claude/.../memory/MEMORY.md 인덱스 + project_*.md 한 개적용 우선순위 · ROI 순
SessionStart hook ▼ Memory 인덱스 ▼ 6-Layer 워치독 ▼ 페르소나 (markdown 한 장)
LLM 한 마리는 일을 못합니다.
markdown 31장이 회사가 됩니다.
slides & script: presentations/2026-05-13_harness_engineering/ ·
github.com/2samgu2 · 강태주 / SGwannabe
감사합니다.
slides · github.com/2samgu2 · telegram @ sg