하네스 vs 오케스트레이션, 그게 뭔데?
1. 한 줄 정리
| 개념 | 한 줄 정의 | 비유 |
|---|---|---|
| 하네스 | LLM이 일할 수 있게 환경을 차려주는 것 | 강아지 가슴줄 + 신발 + 이름표 |
| 오케스트레이션 | 여러 작업·에이전트를 순서대로 잇는 것 | 산책 코스 / 집안일 순서표 |
우리 프로젝트로 보면
🦾 하네스 예시 — Claude가 매번 헤매지 않게 깔아둔 것들
CLAUDE.md(프로젝트 설명서) — “AAA 스터디는 멤버 9명이고, 폴더는 이렇게 생겼고, 커밋할 때는 이런 규칙으로 써” 같은 정보가 적혀있음. Claude가 세션 켤 때마다 자동으로 읽어서 매번 설명 안 해도 됨.MEMORY.md(팀 의사결정 기록) — “왜 인사이트랑 도구모음을 합쳤더라?” “왜 이 폴더 이름을 바꿨더라?” 다음 사람(또는 다음 세션의 나)이 헷갈리지 않게 결정 사항을 한 줄씩 쌓는 노트.- Stop 훅 (대화 끝날 때 자동 점검) — Claude와 대화가 끝나는 순간 스크립트가 자동 실행돼서 “폴더 구조 바꿨네? MEMORY.md에 적었어?”라고 잔소리해줌. 까먹지 않게 하는 알람.
- 권한 목록 (위험 명령 사전 허용제) —
git push나rm같은 위험한 명령은 미리 허용 리스트에 적어둔 것만 실행. 실수로 다른 명령 치면 Claude가 사용자에게 물어봄.
🎼 오케스트레이션 예시 — 여러 작업을 한 번에 묶어 돌리는 것들
/publish(배포 한 줄 명령어) — 운영자가/publish한 줄만 치면 내부에서 5단계가 자동으로 돌아감: ① 옵시디언 vault 콘텐츠 → 홈페이지 폴더로 동기화, ② 미션 폴더의 이미지 자동 이동·정규화, ③ 회의록 복사, ④ Astro 사이트 빌드, ⑤ origin과 selfishclub 두 레포에 push./analyze N(주차별 분석 리포트 자동 생성) —/analyze 6한 줄이면 ① N주차 폴더의 미션 파일 모두 수집, ② 빈 파일·미제출자 체크, ③ 키워드·인사이트 뽑기, ④ 분석 리포트 작성, ⑤ 90_analysis 폴더에 저장 — 5단계가 순서대로 돌아감.- 주간 운영 루틴 — 다다가 매주
/analyze N → /propose → /ln N → /publish를 순서대로 호출. 4번 따로 치는 것도 그 자체가 작은 오케스트레이션.
둘은 보완 관계: 가슴줄(하네스)을 채워야 산책을 나갈 수 있고, 코스(오케스트레이션)가 있어야 매일 같은 동선으로 돌 수 있어요.
2. 햄버거 가게로 보면
당신이 햄버거 가게를 한다고 칩시다.
- 🔴 하네스만 — “잘 정돈된 빈 주방”: 도구·재료·청결 다 있는데 직원한테 매번 “햄버거 만드는 법”을 처음부터 설명해야 함 → 직원이 매일 바뀌는 가게
- 🟡 오케스트레이션만 — “레시피만 있는 푸드트럭”: 레시피는 있는데 길거리라 위생 사고, 재료 떨어져도 모름 → 망하는 가게
- 🟢 둘 다 — “맥도날드”: 정돈된 주방(하네스) + “5번 표 들어오면 햄버거A 1개” 매뉴얼(오케스트레이션) → 누가 들어와도 같은 햄버거
우리 AAA 프로젝트는 “팀 운영의 맥도날드”가 되려는 시도. 🍔
3. 우리 스터디에 어떻게 깔려있나
🦾 하네스 (환경)
| 종류 | 어디 있나 | 사례로 설명하면 |
|---|---|---|
| 도구 | .claude/commands/, GitHub API, Vercel, Slack | ”이번 주 분석해줘”라고 풀어쓸 필요 없이 /analyze 6 한 줄로 끝. Claude가 미션 폴더 읽고 → 키워드 뽑고 → 리포트 만들어서 → 90_analysis/에 저장. Slack /insight로 멤버가 입력하면 GitHub에 자동 커밋도. |
| 컨텍스트 | CLAUDE.md, MEMORY.md, 99_meta/ | 새 세션 켤 때마다 “다다는 운영자고, 멤버는 9명이고, 폴더 구조는 이렇고…”를 다시 설명 안 해도 됨. Claude가 시작과 동시에 자동으로 읽음. “왜 인사이트랑 도구모음 합쳤지?” 같은 과거 결정도 MEMORY.md에 기록돼 있어 헷갈리지 않음. |
| 안전장치 | .claude/settings.local.json, 명령어 내부 검증 | git push나 rm 같은 위험한 명령은 사전 허용한 것만 실행 — 그 외엔 사용자에게 물어봄. /analyze 돌릴 때 빈 파일(<10바이트)은 미제출로 자동 처리해서 빈 분석 안 만들고, 갤러리는 sync 시 건드리지 않게 보호. |
🎼 오케스트레이션 (흐름)
| 종류 | 어디 있나 | 무슨 일 |
|---|---|---|
| 주간 루틴 | 운영자 수동 | /analyze N → /propose → /ln N → /publish 순서대로 호출 |
/publish 내부 | sync-content.sh + Astro 빌드 + git push | 콘텐츠 동기화·이미지 정리·빌드·2개 remote 푸시까지 5단계 자동 |
📊 강점·약점
- 강점: 하네스가 적정 두께로 잘 깔려있음 → 매 세션 맥락 설명 불필요. 명령어가 잘게 쪼개져 있어 조립 자유도 높음.
- 약점: 오케스트레이션이 대부분 수동 —
/analyze → /propose → /ln → /publish를 운영자가 일일이 호출. 자리 비우면 멈춤.
우리는 하네스는 잘 깔려있는데 오케스트레이션은 아직 수동이 많은 단계.
🔧 자동화하면 좋을 것들 (제안 목차)
지금 손으로 돌리고 있는 것 중 자동화 후보 정리:
- 매주 분석 자동 실행 — 일요일 23시 cron이
/analyze N돌려서 PR로 만들어주기. 다다는 검토만. - 미션 PR 자동 검증 — frontmatter 누락·빈 파일·키워드 0개면 PR 코멘트로 알림. 운영자가 매번 눈으로 안 봐도 됨.
- 마감 리마인드 — 매주 N요일 정해진 시간에 멤버에게 “이번 주 미션 제출하세요” 자동 알림
이 중 운영자 부재 영향이 가장 큰 #1을 먼저 만들면 좋겠다. ↓
4. 이렇게 적용해볼 수 있을 것 같다
위 5개 중 **#1 (매주 분석 자동 실행)**을 골랐어요. 자리 비워도 굴러가게 하는 게 가장 시급하니까.
매주 자동 분석 + PR 생성 — GitHub Actions
오케스트레이션 흐름:
매주 일요일 23시 cron → /analyze N → 새 브랜치 푸시 → PR 생성 → Slack 알림
→ 자리 비워도 다음 날 아침엔 분석 리포트 초안이 PR로 도착. 운영자는 검토만 하면 됨.
같이 필요한 하네스:
- 권한 분리: 봇 전용 GitHub PAT (실수해도 사용자 계정 영향 없음)
- 격리: 무조건 새 브랜치 → PR 경유. main 직접 푸시 금지
- 검증: 생성된 리포트 < 500바이트면 실패 처리 (빈 PR 방지)
- 알림: Slack 웹훅으로 다다 멘션 + 실패 시 에러 메시지 첨부
💡 적용하며 배운 원칙
새 오케스트레이션을 만들 때는 “누가 이걸 망가뜨릴 수 있나?”부터 묻는다. 답이 나오면 그게 곧 함께 만들어야 할 하네스다.
자동화는 빨라지지만 사고도 빨라져요. 게이트·로그·롤백·격리 — 이 4개가 자동 흐름 옆에 항상 붙어다녀야 안 무너집니다.
5. 관찰 가능한 신호 (자가진단용)
✅ 한 번에 완벽을 바라지 않는다 초안 → 피드백 → 수정 루프를 자연스럽게 돌림. “다시 써줘”가 아니라 “여기는 이렇게, 저기는 저렇게”로 구체적 수정 요청.
✅ 질문 앞에 맥락이 붙어 있다 “이메일 써줘”가 아니라 “상사에게, 재택 요청, 조심스러운 톤, 내 상황은 ○○“로 시작함.
✅ 원하는 출력 형식을 지정한다 “표로”, “3줄 요약”, “초등학생 수준으로”, “JSON으로” 같은 형식 지시가 습관화돼 있음.
✅ 자료를 텍스트로 설명하지 않고 업로드한다 PDF·이미지·파일로 직접 보여주는 게 설명보다 빠르다는 걸 알고 실천함.
✅ 반복 작업에 자산이 쌓여 있다 Projects, 저장된 프롬프트, 자주 쓰는 템플릿이 2~3개 이상 있음.
✅ 결과가 안 좋을 때 자기 입력을 먼저 의심한다 “Claude가 멍청해서”가 아니라 “내가 맥락을 덜 줬나?”부터 점검함.
✅ 작업을 쪼갠다 한 번에 안 될 일은 2~3단계로 나눠 진행함. “먼저 A 해줘” → “그거 기반으로 B 해줘” 같은 식.
6. 잘 쓰는 팁 (우선순위 순)
외워둘 건 많지 않아요. 중요도 순으로 정리합니다.
🥇 핵심 중의 핵심 (이것만 해도 70%)
팁 1: 맥락을 먼저 깔아라
Claude가 이 일을 하려면 뭘 알아야 할지 먼저 알려주세요.
- 나쁜 예: “발표 자료 피드백 줘”
- 좋은 예: “나는 마케터고, 내일 경영진한테 Q4 전략 발표해. 청중은 숫자에 민감하고 시간 없어. 아래 슬라이드에 대해 경영진 관점에서 약한 부분 지적해줘.”
공식: 나는 누구 + 목표 + 청중/맥락 + 원하는 피드백 종류
팁 2: 파일로 보여줘라
설명하는 것보다 보여주는 게 훨씬 빨라요. PDF, 이미지, 스크린샷, 엑셀 뭐든 업로드. “이 자료 바탕으로 ○○ 해줘”가 거의 항상 이깁니다.
팁 3: 출력 형식을 명시하라
“표로”, “3줄 요약”, “단계별 체크리스트로”, “초등학생도 이해할 수준으로”, “300자 이내로”, “장단점 각각 3개씩”
🥈 중요 (여기까지 하면 90%)
팁 4: 피드백 루프를 돌려라
한 번에 끝내지 마세요. “이 부분만 더 구체적으로”, “톤을 더 캐주얼하게”, “두 번째 문단은 빼고”, “이런 예시 한두 개 추가해줘”. 구체적으로 지적하면 몇 번 왕복만으로 원하는 결과에 도달.
팁 5: 반복 작업은 Projects로
같은 종류 작업을 두 번 이상 하게 된다 싶으면 바로 Projects 만드세요. 지침 + 자료 + 톤을 한 번 세팅해두면, 이후엔 본론만 던져도 맥락 맞춰 답해줍니다.
팁 6: 도구를 명시적으로 불러라
Claude가 안 쓸 도구도 지시하면 써요. “검색해서 최신 정보로”, “이 URL 읽어서 요약”, “엑셀 파일로 만들어줘”, “다이어그램으로 그려줘”, “코드 실행해서 결과 보여줘”.
🥉 고급 (이 정도면 레벨 4 이상)
팁 7: 역할을 부여하라 — “너는 10년차 편집자야. 이 원고를 그 관점에서 봐줘” 같은 지시. 답변의 톤·깊이·관점이 확 바뀝니다.
팁 8: 사고 과정을 요청하라 — “결론만 말하지 말고 왜 그렇게 생각했는지 근거도 같이 줘”. 복잡한 판단일수록 효과적.
팁 9: 반례·반박을 요청하라 — “이 계획의 약점은?”, “반대 입장은?”, “내가 놓치고 있는 건?”. Claude를 검토자로 쓰는 최강의 활용법.
팁 10: 작업을 쪼개라 — Step 1 브레인스토밍 → Step 2 초안 → Step 3 보강. 각 단계를 분리하면 품질과 통제감이 모두 올라갑니다.
7. 그래서 우리가 어떻게 잘 쓸 수 있을까
핵심은 “매번 처음부터 설명하지 말고, 한 번 깔아둔 환경 위에서 일하기”.
🥇 일단 이거부터 (오늘 당장)
- 자주 쓰는 작업은 Projects/CLAUDE.md로 환경 세팅 — “이 일은 항상 이런 톤·이런 자료·이런 형식”을 한 번 적어두면 다음부터 본론만 던져도 됨.
- 반복 작업이 보이면 멈추고 자동화 검토 — “이거 다음 주에도 또 할 것 같다” 싶으면 바로 명령어/스크립트로 만들기. 매번 손으로 하면 그게 비효율.
- 결과 안 좋을 때 “Claude가 멍청하다”가 아니라 “내가 맥락을 덜 줬나”부터 점검 — 99%는 입력 문제.
🥈 다음 단계 (한 달 내)
- 자동 흐름 만들 때는 안전장치를 같이 만들기 — 자동화는 사고도 빨라요. 게이트·로그·롤백·격리 4종 세트가 자동 흐름 옆에 항상 붙어다녀야 함.
- 혼자 다 하지 말고 역할 분리 — 작성·검토·실행을 같은 세션에서 하면 자기 검열이 안 됨. “이 코드 리뷰해줘”는 새 세션에서.
🥉 팀 차원에서 (우리 AAA 한정)
- 반복되는 운영 작업은 슬래시 명령어로 끌어올리기 — 다른 멤버도 같은 결과를 낼 수 있게. 다다만 알면 결국 다다 의존이 됨.
- MEMORY.md 갱신은 의무, 매뉴얼은 권리 — 의사결정은 무조건 기록 (다음 사람을 위해), 좋은 활용 패턴은 자유롭게 공유.
요약 한 줄: 매번 다시 만들지 말고, 한 번 잘 만들어서 계속 쓰자. 이게 하네스고, 이게 오케스트레이션이에요.