6개 모듈 · 표 · 8단계 런북 · VNC
이미 OpenClaw 를 Mac 에 올린 팀을 위한 문서로, CRM/ATS/자체 티켓의 Webhook·HTTP 콜백을 Gateway 한 줄로 가시화·감사 가능한 파이프에 실는 최소 루트를 정리합니다. 핵심은 curl 127.0.0.1 성공이 퍼블릭 443 + 재시도 + 서명 환경에서도 같은 의미를 갖는다는 근거를 먼저 쌓는 것입니다. 관련 읽을거리: v2026.4.12 다채널、리버스 프록시·HTTPS、무응답、SSH 로컬 포트。VNCMac 같이 SSH+ VNC를 한 사용자에 맞출 수 있으면, 야간 온콜에서 화면 캡과 로그 id로 대화를 줄이기 쉬워집니다. 이 글은 6개 본문 모듈(상관 id 운용 포함)、비교 표、8단계 런북、4줄 티켓、15분 VNC 표、FAQ 를 담습니다. 엔터프라이즈에서는 PII·보존·재전송 정책이 기술보다 먼저 터지기도 하므로, 샘플 JSON 의 마스킹 규칙과 야간 on-call 이 볼 수 있는 위키 한 페이지를 먼저 잠급니다. Windows 동료와 공유하는 문서에는 「Mac 127.0.0.1 = GUI 사용자의 루프백」을 굵게 박고, bastion curl과 프로덕션 브라우저의 인증서 저장소 차이를 한 번이나 끝에 넣는 것이 사고를 줄입니다. 대학망/게스트 와이파이의 격리 문제로 443이 불안한 경우, 공급자가 밝힌 고정 IP 대역 + 방화벽을 동시에 만족시키는지, 위키에 주간 점검으로 남깁니다. HMAC 비밀을 Slack DM 전체에 뿌리는 문화는 회전이 올 때마다 불필요한 광범위 재배포로 부풀어, 여기에 언급한 멱등·id 선보다 사람이 먼저 지칠 수 있습니다. 그래서 “최소”가 비단 코드 줄 수가 아니라, 누가 언제 열람할 수 있는 키에 대한 최소 공개 반경을 뜻하기도 합니다. 글로벌 팀이면 UTC 오프셋과 서명 윈도를 티켓에 항상 같이 쓰는 습관이, 동아시아·유럽 혼재 시 “어제는 됐는데” 오해를 잘릅니다. vendor 의 메인터넌스 캘린더에 한 명만이라도 구독시키고, 401 급 상승이 키 날짜와 겹칠 때를 배경으로 삼는 것도 좋습니다. 마지막으로, staging 과 prod 가 다른 부하인데 동일 Nginx timeout 만 복붙하던 곳이 가장 늦게 터지니, 합성 지연 테스트에 반드시 넣기 바랍니다. 이런 “사소해 보이는” 층이 쌓일수록, Webhook 는 사람 대신 체크리스트에 의존해도 굴러갑니다.
① 환경 지문 소실 — 127 성공, 퍼블릭 502, Nginx error 에 upstream reset。② 멱등 공백 — 동일 사업 id 재전송。③ 로그 절벽 — proxy vs 앱 ④ GUI 전용 — mTLS, 키체인, SNI, VNC 필요。⑤ 채널 혼선 — IM 다채널과 Webhook SLO 는 다름 ⑥ 반쯤 터널 — SSH 가이드에 Loopback 뜻 쓰기。추가: 스테이징/프로 부하 차, PII/보관 약정, Windows/WSL/맥 127 해석 혼란, 감사/법무이 보는 한 줄. 상세 멱등 DB·키 회전·secretref는 OpenClaw 타 문서와 연결하되, HTTP 끝에서 요구하는 최소는 “동일 id 가 두 갈래 상태를 못 키운다” 는 점. 또 로그 redaction 시 자동으로 지워질 필드가 아니라, 초기 설계에서 빼는 편이 운영이 편해집니다. 사내 보안팀이 mTLS 를 짧은 주기로 돌릴 땐, 갱신 절차에 VNC 서명/프로필을 명시. 지연 테스트에서 LLM 429 vs 웹훅 공급자 429 를 혼동하지 말고, 대시보드 레이어 분리를. 여기에 24/7 온콜 로테가 바뀌면서 wiki 링크를 매번 누락하는 팀이 있는데, runbook 첫 문단에 고정 URL을 두면 분기 비용이 줄어듭니다. 마지막으로 학습 목적 팀은 토요일 흐름으로만 켜둔 Mac 과 상시 구독 Mac 의 전력/슬립 정책이 달라, 주간 리셋 때만 생기는 권한 팝업이 있을 수 있음—이 역시 짧은 VNC 점검으로 선제 할 수 있습니다.
핀 — openclaw 버전+doctor+FQDN notAfter。.
서명 A/B — 스테이징에서 틀림/맞음。
시간 — NTP·허용 skew。
인수인계 — request id+스크린+Nginx 行。
| 형태 | 쓰기 좋을 때 | 위험 | Gateway |
|---|---|---|---|
| 수신 Webhook | 이벤트·HMAC | 재시도·률 | request id·구분 4xx |
| Pull | 제한 네트워크 | 쿼터·지연 | cron --tools 밝힘 |
| WebSocket | 저지연 | idle, wss | 프록시와 Upgrade |
“동일 id 재투” 문구가 있으면 멱등=게이트。채널 대비는 다채널文과 함께 읽을 것. 또한 LLM 429와 공급자 429를 혼용하지 말고 별도 패널에 두는 것이, 나중에 원가 보고에서도 팀이 살아남습니다. Pull 모드는 누가 어느 토큰으로 끌어오는지, /tasks·크론·수동 셸이 다른 PATH 를 보는지, 한 줄 메모로 고정. WebSocket 은 같은 Nginx location 에 HTTP와 섞이면 location 전처리/버퍼 정책이 달라 장애로 드러나니, 경로를 코드 리뷰에 명시. 마지막으로 정기 부하와 일시 부하(장애·보정 작업)를 드라이런으로 구분—프로젝트 일정 끝에 백필이 떨어질 수 있다는 점, 운영 캘린더에 사전 한 줄. 이렇게 하면 “어제 괜찮은데” 를 수치로 끊습니다.
가운데에서 길을 잃으면 1번 지문부터 다시 읽는다. 모델·시스템 프롬프트를 먼저 흔들지 말고, 전송·서명·멱등 층이 고정돼 있어야 로그 id로 말이 통한다. 온콜 중에는 한 가지 가설씩만 늘리고, 스크립트로 동시에 다섯 개 스위치를 켜지 말자. 장애 후 포스트모텀에 붙일 스크린샷은 VNC에서 떠도 되지만, 재현 curl이 없으면 같은 맥락이 안 나온다. 사내 IT가 고정 IP만 열어준 Webhook 는, 개발망 VPN이 꺼진 주말에만 터지기도 하니, 접속 절차를 runbook 첫 절에 쓴다. 대규모 백필이 떨어질 월말/분기 일정이 CRM 쪽에 있으면, 사전에 입구 rate와 LLM 429을 함께 점검. 신규 입사로 on-call 팀이 바뀌면, 이번 분기에 쓰는 idempotency 키 필드 이름이 바뀌었는지, DB 마이그레이션으로 유니크 제약이 느슨해지지 않았는지, 짧은 스키마 diff를 첨부한다.
핑거프린트 — openclaw --version·doctor·공개 FQDN·notAfter·listen.
127 먼저 — 같은 사용자·브라우저. 응답 없음이면 무응답 순서.
최소 POST — 한 줄에 남는 작은 JSON.
프록시 가이드+ VNC 브라우저.
서명 — 틀림/맞음 로그 분리.
멱등 — 동일 id 이중=한 세션·한 비용.
채널 분리 — IM 콜백 URL에 섞이지 않기. 다채널.
패키지 — 마스크 curl+주석 location+샘플 request id.
P1: 루프백=공의 의미 P2: id 중복=상태 X P3: id=3 log P4: 원인=TLS/중간/핸들러/모델 중 하나
| 확인 | GUI | OK |
|---|---|---|
| 콘솔 | Network | 일치 |
| 시간 | UTC | 허용 창 |
| 클라인증 | modal | 야간 방치 없음 |
| 유저 | 프로/크론 | doctor |
429 는 셋(공급·자체·LLM)으로 나눈다。백압: 다채널文 참고。재시도 비는 입구 제한+큐+재시도 정책으로 나눔。사고 중 한 번에 5스위치 는 금지。VNCMac 는 이미지+SSH+ VNC로 재현을 빠르게. 문서: 구매、홈。또 규정 준수팀이 요구하는 최소 로그 샘플 (마스크 후) 를 runbook 끝에 붙여넣을 템플릿으로 넣고, on-call 은 그 틀만 채우면 되게. 주간으로 idempotency 테이블 건강 (ORPHAN / DUPLICATE RATE) 을 1 를 넘지 않는지, 스크린샷 기반으로 돌릴 수 있으면, CFO 가 묻는 “왜 비용이 두 배” 를 데이터로 끊습니다. 그리고 휴가 시즌엔, 이 표를 대리인이 봐도 같은 결론이 나게 색 코딩 (노랑: 조사, 빨강: 중단)을 wiki 에 넣는 것이 좋습니다. 이 모든 것이, Webhook 를 일회성 데모가 아닌, 지속가능한 운영으로 붙이는 최소입니다.
권장X。경로/정책/429 분리.。