AI 자동화 2026년 4월 27일

2026 MacLogin 클라우드 Mac OpenClaw 웹훅 중복 제거·멱등 키: 벤더가 POST를 다시 쏠 때 이중 에이전트 턴을 막기

MacLogin AI 자동화팀 2026년 4월 27일 약 17분 읽기

HTTP 웹훅은 Stripe·GitHub·자체 ERP가 TLS 끊김·502·“전송 다시” 버튼으로 같은 금융 이벤트를 조용히 재시도하는 순간 매력이 사라집니다. OpenClaw는 비싼 에이전트 턴을 두 번 돌리죠. 2026년 답은 “게이트웨이를 믿자”가 아니라 멱등 계약: 안정 키, 경계·TTL·저장, 중복이 억제됐다는 지표. 이 글은 홍콩, 도쿄, 서울, 싱가포르, 미국 MacLogin Apple Silicon에서 OpenClaw를 돌리는 운영자를 대상으로, macOS 파일 시스템 현실과 무시 못할 지역·시계 편차를 함께 짚습니다.

함께 읽을 글: TLS 리버스 프록시 웹훅, cron·launchd 스케줄, 감사용 CLI 훅. 허브: OpenClaw 주제 · 운영: 도움말, 가격.

상시 켜 둔 게이트웨이에서의 벤더 재전송 위협

정상 인프라는 TLS 끊김, 502, 운영자가 누른 “재전송” 때문에 POST를 다시 쏩니다. 공격자는 캡처한 본문을 다시 쏴 크레딧을 태우거나 프롬프트 인젝션으로 넘어가려 합니다. 중복 제거 층은 동일·합법적 재시도변조된 재전송을 가려야 합니다. 서명 검증은 웹훅 서명 가이드대로 필수이고, 멱등은 성공 경로의 중복을 다룹니다.

  • 버스트: 지역 장애 뒤 90초 안에 논리 동일 이벤트를 최대 8번 쏠 수 있습니다.
  • 페이로드 드리프트: 일부 게이트웨이는 다시 직렬화하며 타임스탬프를 붙입니다. JSON 문자열 같음만 키로 쓰지 마세요.
  • 공유 임대: 팀 둘이 한 Mac mini에 있으면 로그가 늘고, 중복 테이블을 안 돌리면 APFS 스냅샷이 팽창합니다.
프롬프트 인젝션: 웹훅 JSON을 적대적 입력으로 취급하세요. 중복이 “이미 봤음”이라도 다운스트림 도구는 도구 허용 목록의 샌드박스 매니페스트를 지켜야 합니다.

키 형태 결정 표(○·×)

후보재시도에 안정충돌 위험구현 메모
벤더 전송 ID벤더가 유일성을 보장할 때 낮음벤더 네임스페이스 접두어 저장
전체 본문 SHA-256×낮지만 쓸모 없음타임스탬프가 같음을 깸
복합(저장소,PR)대개 ○중간이벤트 유형 enum 포함
전송마다 랜덤×해당 없음추적엔 좋고 중복엔 부적합

저장, TTL, macOS 파일 시스템 현실

많은 팀이 ~/.openclaw 아래에 JSON Lines만 덧붙이며 시작합니다. launchd가 그 트리를 이미 쓰니까요. 중복이 O(log n) 조회를 요구할 때쯤이면 SQLite가 이깁니다. 엔진과 무관하게 chmod 700 디렉터리를 강제하고, fsync 지연을 안 측정한 네트워크 마운트에 dedup DB를 두지 마세요. 혼잡 VPN 위 도쿄–미국 NFS는 “새 이벤트”로 잘못 insert해 지급이 이중으로 나가게 한 사례가 있습니다.

TTL 수치: 키는 96시간 보관(72시간 벤더 재시도 + 24시간 시계 편차). 이후는 적극 삭제해 GDPR식 삭제 요청과 옛 지문이 싸우지 않게 합니다.

CLI 실험에서 프로덕션 launchd까지 9단계

  1. 캡처 실제 벤더 페이로드 다섯 개(난독화)로 정규 키 추출 경로를 문서화.
  2. 구현 OpenClaw가 큐에 넣기 전 미들웨어—적절할 때 200에 본문 duplicate_suppressed 반환.
  3. 단위 250ms 안 세 번 전달로 떼 지르는 군집을 흉내.
  4. 부하 프로덕션에 쓰는 맨 작은 MacLogin 플랜으로 시간당 1200개 합성 이벤트.
  5. 지표 수락·억제·서명 거부 카운터.
  6. 루프백 바인딩로 헬스가 dedup을 우회하지 않게.
  7. 배포 dedup 테이블을 압축하는 보조 job은 launchd ThrottleInterval 5초 이상.
  8. 실행 배포 뒤 openclaw doctor로 stdout 아카이브.
  9. 관찰 홍콩·미국 시차로 워킹데이 사흘.

HMAC 검증, 시계, 편차 예산

서명엔 Unix 타임스탬프와 ±300초 공차가 흔합니다. Mac mini가 이를 넘기면 dedup이 돌기도 전에 벤더가 먼저 거절—그런데 로그를 중복 제거 실패로 오독하는 팀이 있습니다. 유지보수 시 sntp -sS time.apple.com로 맞추고, 연속 두 번 2초를 넘기면 경보. NTP와 억제된 중복이 같은 대시에 있게 해 온콜이 상관이 보이게 하세요.

지연 SLO vs 실수로 이중 수락

메모리 LRU만 쓰면 프로세스 재시작 뒤 중복을 놓칩니다. 먼 Redis를 불안한 터널로 두면 벤더 HTTP 제한을 넘겨 또 재시도—악순환입니다. 루프백에서 p95 35ms 아래·상태는 내구 있게. 둘 다 못 맞추면 커뮤니티 통합대로 Mac 앞에 이벤트 게이트웨이(Hookdeck급)를 두고, 맥 위 dedup은 2선으로 줄이세요.

지표건강조사
억제/수락 비0.1%–4%20% 넘기면 벤더 설정 오류
미들웨어 p9535ms 미만120ms 넘기면 재시도 유발
SQLite WAL 크기512MB 미만주 1회 pragma optimize

일본·미국 지역 상관 팁

도쿄 주·미국 웜스탠바이 흔합니다. dedup 상태는 “그냥” 복제되지 않습니다. 둘 다 같은 외부 이벤트 버스 앞에 두거나, fail-over 때 중복이 다시 뜨는 걸 감수하며 DB를 복제하세요. 행에 region=jp·region=us를 붙여 전환 뒤 포렌식이 타임라인을 뒤섞지 않게 하고, 상태 디렉터리 백업에 따라 ~/.openclaw 스냅샷에 dedup 스토어를 넣어 롤백이 일관되게 하세요.

FAQ

OpenClaw가 벤더 서명 검증을 대체하나요? 아니요. 중복은 직교합니다. HMAC·mTLS 먼저.

안정 ID가 없으면? 불변 필드로 복합 키를 짜고 충돌을 문서화·벤더에 에스컬, 추측은 금지.

고립된 게이트웨이를 더 빌리려면? 가격에서 서울·싱가포르 노드를 추가하세요. 이웃 소음이 날 때.

웹훅 많은 OpenClaw 스택에 Mac mini M4가 맞는 이유

웹훅 버스트는 짧은 I/O+작은 CPU: HMAC 검증, SQLite insert, 워커로 팬아웃이 M4의 단일 스레드·빠른 SSD에 잘 맞습니다. 통합 메모리는 밤에 임베딩 재빌드가 돌 때 Node GC와 Ollama가 한 임대에서 싸우는 상황—금융 웹훅이 겹칠 때 흔합니다. MacLogin은 벤더 다수(종종 동부 미국)에 가깝게 dedup을 두고, 인간은 도쿄 VNC에 낮은 지연을 유지하도록 여러 지역에 두실 수 있습니다. 베어메탈을 통관에 실어 나르는 것보다 낫죠.

한 호스에 몰빵하지 말고 미니를 더 임대하세요. 남이 Xcode에 CPU를 빼앗기면 미들웨어 응답이 늦어질 때—곧 벤더가 가장 세게 재시도할 때—중복 억제 지표가 썩기 때문입니다.

부하 유형마다 격리된 게이트웨이

웹훅이 공유 호스트를 터뜨리기 전에 홍콩·일본·한국·싱가포르·미국 Apple Silicon을 늘리세요.