terminal
Weekly Digest // WEB_DEV_GENERAL — Week 31-2026
folder_openWeekly Report

Shopify 보안 harness, test를 oracle로 삼다 — 2026년 31주 웹 개발

Cross-cutting frontend topics, tooling, and DX

calendar_todaysummarizeWeek 31-2026
에이전트 하네스

Shopify 보안 harness, test를 oracle로 삼다

Shopify의 Dispatch harness는 application을 partition하고 vulnerability-specific hunter를 병렬 실행하며 downstream agent에 API, data model, authorization boundary 문서를 재사용 가능한 context로 제공합니다. Candidate finding은 다른 model의 sequential verifier로 넘어가고, verifier는 severity scoring이나 draft fix 전에 integration test로 exploitability를 입증해야 합니다. 80개가 넘는 application과 수천 번의 scan에서 300개 이상의 finding을 만들었으며 두 건은 Critical 등급이 될 수 있었습니다. Full scan은 약 50~300달러, diff scan은 5~50달러입니다. 장기적 가치는 bounded context, test oracle, cross-model review, credential·Git·storage·report formatting을 담당하는 deterministic code로 구성된 harness에 있습니다.

Read Articlearrow_forward
Article · 워크플로READ TIME: 11m

단순한 agent workflow가 새 기법의 stack을 이긴다

GitHub가 권장하는 Copilot workflow는 의도적으로 단순합니다. Harness 하나를 고르고 여러 option을 prototype하며 같은 session에서 plan을 세우고 sandbox 안에서 자율적으로 구현한 뒤 결과가 human taste에 맞을 때까지 반복합니다. Visual prototype은 API 작업에서도 모호함을 드러내며 대화형 planning은 code가 context window를 쓰기 전에 edge case를 찾습니다. 같은 task에서는 prompt caching 효과를 위해 동일 model과 reasoning level을 유지하라고 권합니다. Merge 전 Rubber Duck review는 다른 model family가 작업을 검사하게 하며 남은 문제가 diminishing return에 이를 때까지 반복할 수 있습니다. 목표는 최대 설정이 아니라 반복 가능한 quality loop입니다.

READ_FULL_LOGarrow_forward
Article · MCPREAD TIME: 4m

MCP 2026-07-28, server는 stateless로 extension은 portable하게

MCP 2026-07-28 명세는 core session management를 제거해 MCP server를 일반 stateless HTTP workload처럼 동작하게 합니다. Request는 sticky routing, shared session store, 동일한 warm instance를 요구하지 않아 scaling이 단순해지고 redeploy 중단도 줄어듭니다. 명세는 Extensions framework도 공식화하며 Apps와 Tasks가 첫 official extension입니다. Apps는 remote server가 rich interface를 제공하고 compatible client가 render하게 해 일회성 UI integration을 portable contract로 바꿉니다. Netlify server는 새 version과 backward compatibility를 모두 지원하지만 client support는 다르므로 server에는 capability negotiation과 migration path가 필요합니다.

READ_FULL_LOGarrow_forward
Article · 인프라READ TIME: 10m

cdnjs, 하루 90억 request를 Cloudflare Developer Platform으로 이전

cdnjs는 이제 Cloudflare Developer Platform에서 하루 평균 90억 request를 처리합니다. R2는 file source of truth, KV는 metadata, Workers Cache는 edge, DigitalOcean Spaces는 live fallback 역할을 합니다. Durable Workflows10분 간격 package check, per-file processing, compression container, publication을 조정하며 Queues와 Durable Object가 수천 개 child job을 동기화합니다. Migration은 file을 재생성하지 않고 기존 byte를 복사했습니다. Minifier나 compressor output이 달라지면 pinned SRI hash가 깨지기 때문입니다. 이 workload는 paid Worker subrequest limit을 1,000에서 1,000만으로, default Workflow step을 1,024에서 10,000으로 올려 project 한 곳의 한계를 platform 개선으로 바꿨습니다.

READ_FULL_LOGarrow_forward
Article · 성능READ TIME: 10m

Playwright soak test로 사용자가 겪기 전에 SPA memory leak 탐지

Long-lived SPA는 navigation이 page를 reset하지 않기 때문에 detached node, event listener, timer, cache entry를 누적할 수 있습니다. Den Odell은 하나의 Chromium context에서 닫힌 user flow를 약 200번 반복하고 먼저 application을 warm-up한 뒤 CDP로 garbage collection을 두 번 강제해 전후의 listener와 DOM-node count를 비교하는 Playwright soak test를 제안합니다. Heap size는 primary assertion으로 쓰기에는 noise가 크고 listener count와 고정 node allowance가 더 안정적입니다. Playwright fake clock과 mocked network로 여러 시간의 polling을 몇 분에 압축할 수 있습니다. Measurement가 달라질 수 있어 nightly job에 두고 numeric guard가 leak을 찾은 뒤에만 heap snapshot으로 원인을 조사합니다.

READ_FULL_LOGarrow_forward
Video · 도구60:46

"문제없어 보입니다": AI 생성 코드를 다루는 실전 가이드 - Roman Zhukov

Roman Zhukov는 AI 생성 code가 기여에는 몇 분이 들지만 maintainer는 존재하지 않는 function, 조작된 trace, context가 부족한 change를 반박하는 데 몇 시간을 쓰는 경제적 역전을 만든다고 설명합니다. 네 가지 통제는 명확한 contribution policy, 안전한 AI coding guidance, 자동화된 quality gate, 가속된 vulnerability triage입니다. 첫 policy는 60~100단어면 충분하고 Linux kernel 예시는 약 130단어이며, ‘AI-assisted’ 표기는 model을 법적 공동 저자로 암시하지 않습니다. 실용 자료에는 OpenSSF guidance, CoSAI의 Project CodeGuard, 128개 security skill로 구성된 Red Hat catalog가 있습니다. 소개된 anti-slop filter는 검토된 pull request 130건 이상에서 도출한 31개 check15초 안에 실행하지만 최종 판단은 deterministic scanner와 human verification에 남습니다.

WATCH_VIDEOarrow_forward
summarizeDigest_Summary

31주차는 AI-assisted engineering에서 오래 남는 부분이 model 주위의 harness라는 점을 보여 줍니다. Shopify의 Dispatch는 대규모 application을 partition하고 전문 hunter를 병렬 실행한 뒤, developer에게 보여 주기 전에 다른 model이 integration test로 각 candidate를 입증하게 합니다. 80개가 넘는 application에서 300개 이상의 finding을 만들었으며 full scan은 대략 50~300달러, incremental scan은 5~50달러가 들었고 두 finding은 Critical 등급에 해당했습니다.

GitHub의 실용 workflow도 일상 개발에서 비슷한 결론에 도달합니다. Prototype으로 모호함을 드러내고, 대화형으로 plan을 세우고, 취향을 적용해 반복한 뒤 merge 전에 다른 model family의 review를 요청합니다. 새 MCP 명세는 server를 stateless HTTP workload로 만들고 Apps와 Tasks를 extension으로 공식화해 기반 infrastructure를 단순화합니다. Model 품질은 중요하지만 반복 가능한 context, deterministic tool, 격리된 실행, 독립 검증이 model output을 신뢰할 수 있는 software로 만들 수 있는지를 결정합니다.

Cloudflare와 Den Odell은 AI 밖의 infrastructure 교훈을 제공합니다. cdnjs는 pinned SRI hash를 바꿀 파일 재생성 없이 하루 90억 requestR2, KV, Workers, Workflows, Queues, Containers, Durable Objects로 옮겼습니다. Long-lived SPA에서는 Playwright soak test가 하나의 왕복 flow를 단일 browser context에서 수백 번 반복하고 garbage collection 뒤 DOM node와 listener count를 비교할 수 있습니다. Fake clock과 mocked network로 여러 시간의 timer 활동을 nightly test에 압축할 수 있습니다.

Roman Zhukov는 들어오는 AI code에 harness 원칙을 적용합니다. 짧은 policy를 게시하고 secure prompting을 교육하며 deterministic quality gate를 추가하고 vulnerability triage를 가속해야 합니다. Project CodeGuard부터 31개 check anti-slop filter까지의 예시는 AI를 최종 권한으로 만들지 않으면서 reviewer 부담을 줄입니다. 운영 원칙은 간단합니다. AI는 assistant이고 책임지는 인간과 재현 가능한 check가 merge 여부를 결정합니다.

Key Takeaways
  • hunting과 verification을 분리하세요. 실제 integration-test oracle을 요구하고, 다른 model로 adversarial review를 수행하며, impact를 입증하지 못한 finding은 downgrade하거나 거부해야 합니다.
  • 2026-07-28 명세에 맞춰 MCP service를 일반 stateless HTTP handler로 설계하고, Apps와 Tasks는 core session state가 아닌 negotiated extension으로 취급하세요.
  • 간결한 AI-assistance policy를 게시하고 secure coding guidance와 deterministic gate를 요구하며 재현 가능한 증거를 검토하는 책임 있는 인간에게 merge 권한을 남기세요.