Workspace IndexKnowledge Notes › Pocock — code got cheap to generate, which makes bad code the most expensive mistake in software history

#1808Talk2026-09-19chat

Pocock — code got cheap to generate, which makes bad code the most expensive mistake in software history

Matt Pocock, the TypeScript educator behind Total TypeScript and AI Hero, gave a talk called "Software Fundamentals Matter More Than Ever" on the AI Engineer YouTube channel. His claim: teams that write specs, hand them to an AI "compiler," and never read the output accumulate software entropy fast, because being able to generate code cheaply does not make bad code affordable. In a codebase that is hard to change, the AI itself starts making the wrong calls, which means the cost of a bad codebase is now higher than it has ever been. A good codebase, in John Ousterhout's terms, is simply one that is easy to change — and that is also the only kind of codebase where an AI coding agent actually performs well. Pocock lists five recurring AI-coding failure modes and pairs each with a countermeasure pulled from long-standing software design ideas, not anything AI-specific. He closes on an image: the agent is a good sergeant, executing fast in the field, not a general who can see the whole battlefield — the system-level view still has to come from a human.

For Jayverse this reframes what reviewing an agent's diff is actually testing: not whether the code compiles, but whether the interface and vocabulary the agent worked inside were strong enough for that diff to be trustworthy at all.

Why

The economics matter more than the anecdote. Code generation getting cheap does not shrink the cost of a bad architecture — it shifts that cost onto comprehension and maintenance, and now onto the agent's own judgment, because an agent reasoning inside a tangled codebase makes worse decisions than one reasoning inside a clean one. That is a feedback loop: bad structure produces bad agent output, which is committed back into the codebase, which makes the next agent's job harder. "Specs to code" without reading the code is how that loop runs unsupervised. The fix Pocock argues for is not writing less code with AI, it is holding the same architectural bar — interfaces, boundaries, tests — that good engineering always asked for, because it is now also the precondition for the AI part of the workflow to work at all.

How it works

The specs-to-code trap and why code stopped being cheap

Pocock's target is a workflow where a human writes a specification, an AI turns it into code, and the human's only feedback loop is re-running the "compiler" on the next spec — never reading the diff. Each round trip looks efficient in isolation, but nothing is checking whether the accumulating code stays coherent, so the codebase drifts toward disorder with nobody noticing until it is expensive to fix. Pocock's line is that code is not cheap: what dropped in price is typing it out, not the cost of a bad decision baked into it.

Five failure modes, five countermeasures

SymptomCauseCountermeasure
Output is nothing like what you meantIntent and constraints were never made explicitGrill me: tell the agent to interview you relentlessly, following every branch of the decision tree, until you both hold the same understanding before it writes anything — done well this produces dozens of sharp clarifying questions (the summary cites 40–60) while the fix is still cheap
Output is verbose and doesn't sound like the codebaseNo shared vocabulary between agent and teamUbiquitous Language, Eric Evans' Domain-Driven Design term: scan the codebase, produce a markdown glossary of its core terms, and require the agent to consult it whenever it reasons or writes
Code doesn't actually runThe agent writes hundreds of lines before hitting an error — it "outruns its headlights," the Pragmatic Programmer's phrase for moving faster than your feedback loop can catchEnforced TDD: small failing test, make it pass, refactor, repeat — on top of TypeScript's static types and the agent's own tool access
Agent gets lost navigating the codebaseMany shallow modules force a long dependency chain that the agent hallucinates its way throughDeep modules (Ousterhout): a narrow, strong interface hiding real functionality is easy to test and verify, and gives the agent a bounded task instead of an open-ended search
Engineer burns out from constant supervisionEvery decision, small and large, routes through the humanHumans design interfaces and boundaries and own the external tests that pin a module's contract; the module's interior becomes a gray box handed to the agent

The through-line across all five is that none of the fixes are new. Grill-me is structured requirements gathering; Ubiquitous Language is a fifteen-year-old DDD term; TDD is Kent Beck's red-green-refactor cycle; deep modules come straight out of A Philosophy of Software Design. Pocock's point is that these classic disciplines were always good practice and are now load-bearing, because an agent has no judgment to fall back on when they're missing.

Sergeant, not general

Pocock's closing frame is tactical versus strategic: the agent is a good sergeant — fast, capable, effective at executing a bounded order — but not a general who holds the whole campaign in view. Kent Beck's line that you should invest in system design every day is the discipline that keeps a human in the general's seat. Pocock's conclusion is blunt: only developers who understand the classic fundamentals deeply — interface separation, testability, complexity control — can actually direct an AI collaborator and get real value out of it. Everyone else is just generating entropy faster.

Where it lands in Jayverse

  • Verex: the CLOB matching core is the deep module, the sdk package is the interface. Refactors inside packages/contracts' matching logic should be safe to hand to an agent as long as the external test suite (price-time priority, no self-crosses, deterministic fills) stays green — that is the gray box; the sdk's public shape is the strong interface a human should keep designing by hand.
  • Rabbit: mandate, session key and enforcer terms need one glossary table. This is Ubiquitous Language applied directly — a markdown table any agent editing rabbit reads before touching ERC-4337/7702 session-key or mandate code, so "mandate" and "enforcer" mean one thing everywhere in the codebase and in the agent's output.
  • CI: TDD is the pace-setter for agent-authored diffs. A red-green-refactor gate before merge is the concrete version of "don't let the agent outrun its headlights"; it's also a natural place for a Dark Horse boundary-file check that fails a PR if it reaches across a declared module boundary.
  • Eng: the Grill-me skill already has a home. Eng #33 turned this exact idea — interview until intent matches, follow every branch — into a rehearsed conversation; this item is the design-theory case for why that conversation works.

Verified and unverified

Verified on 2026-09-19: Matt Pocock is a real TypeScript educator (Total TypeScript, AI Hero); the AI Engineer YouTube channel is real and hosts practitioner talks of this kind; John Ousterhout's A Philosophy of Software Design and its deep-module/shallow-module distinction, Eric Evans' Ubiquitous Language from Domain-Driven Design, Kent Beck's TDD red-green-refactor cycle, and "outrunning your headlights" from The Pragmatic Programmer are all documented, real sources. Taken from the summary and not independently checked: the 40–60 questions figure, the talk's length, and the exact wording of any quoted lines (including the "Grill me" instruction and the sergeant/general framing as delivered in this specific talk). Sources: YouTube — Matt Pocock, "Software Fundamentals Matter More Than Ever", AI Engineer channel · John Ousterhout, A Philosophy of Software Design · Eric Evans, Domain-Driven Design · related items: Life 1301 (pocock-sergeant-not-general), Eng #33 (Grill me before you plan), Tech #62 (agentic engineering writes the boundaries), Tech #96 (Homa — Ousterhout again, on transport), Tech #97 (AI engineer builds the car).

Key expressions

Words and phrases from this page worth keeping, with the Korean meaning and the sentence they come from.

Expression뜻 · 쓰이는 자리
software entropy소프트웨어 엔트로피(감시 없이 방치하면 코드베이스가 무질서로 흘러가는 경향) · 구조가 무너지는 속도를 가리키는 말. "accumulate software entropy fast"
specs to code사양서를 AI에게 넘겨 코드로 바꾸게 하고 결과를 읽지 않는 워크플로 · 이 강연이 경고하는 함정의 이름. "The specs-to-code trap"
Grill me그릴 미(에이전트에게 "나를 집요하게 인터뷰하라"고 지시하는 스킬 이름) · Eng #33과 이어지는 고유 스킬명, 번역하지 않고 그대로 쓴다. "Grill me: tell the agent to interview you relentlessly"
decision tree결정 트리(선택마다 가지가 갈라지는 구조) · Grill me에서 "모든 가지를 따라가라"고 할 때의 그 가지. "following every branch of the decision tree"
Ubiquitous Language유비쿼터스 언어(도메인 전체에서 팀과 코드가 공유하는 하나의 용어 체계) · 에릭 에반스의 DDD 핵심 개념. "Ubiquitous Language, Eric Evans' Domain-Driven Design term"
DDDDomain-Driven Design(도메인 주도 설계) · Ubiquitous Language가 나온 원 개념 체계. "Domain-Driven Design term"
red-green-refactor레드-그린-리팩터(실패하는 테스트를 먼저 쓰고, 통과시키고, 정리하는 순환) · TDD의 표준 사이클, 켄트 벡이 정리. "Kent Beck's red-green-refactor cycle"
TDDTest-Driven Development(테스트 주도 개발) · 코드를 쓰기 전에 테스트부터 쓰는 방법론. "Enforced TDD: small failing test, make it pass, refactor"
outrun your headlights헤드라이트를 앞질러 달리다(피드백이 따라잡기 전에 너무 빨리 나아가는 것) · *The Pragmatic Programmer*의 표현, 에이전트가 에러 없이 수백 줄을 쏟아내는 상태. "it 'outruns its headlights'"
deep module딥 모듈(인터페이스는 단순하지만 뒤에 실질적 기능을 숨긴 모듈) · 오스터하우트의 핵심 설계 단위, 에이전트에게 맡길 수 있는 경계. "Deep modules (Ousterhout)"
shallow module섈로우 모듈(인터페이스가 숨긴 기능만큼이나 복잡한 모듈) · deep module의 반대, 에이전트가 길을 잃는 원인. "Many shallow modules force a long dependency chain"
gray box회색 상자(내부는 에이전트에게 맡기고 외부 계약만 사람이 고정한 모듈) · 화이트박스와 블랙박스 사이, 이 글에서 Verex 매칭 코어에 쓰는 비유. "the module's interior becomes a gray box"
sergeant, not general장군이 아니라 하사관(에이전트는 전술 실행자이지 전략가가 아니라는 비유) · Life 1301과 직접 이어지는 표현. "the agent is a good sergeant... not a general"
tactical vs strategic전술 대 전략 · 하사관/장군 비유를 풀어 쓴 짝. "Pocock's closing frame is tactical versus strategic"
load-bearing하중을 지탱하는(빠지면 전체가 무너지는 필수 요소) · 고전 원칙들이 지금은 선택이 아니라는 뜻으로. "these classic disciplines... are now load-bearing"
boundary-file check경계 파일 검사(선언된 모듈 경계를 코드가 넘었는지 자동으로 확인하는 CI 단계) · Dark Horse와 이어지는 CI 아이디어. "a Dark Horse boundary-file check"
CIContinuous Integration(지속적 통합, 머지 전 자동 검증 파이프라인) · TDD 게이트와 경계 검사가 실제로 도는 위치. "CI: TDD is the pace-setter for agent-authored diffs"
PRPull Request(변경 사항을 병합해 달라고 올리는 요청) · 경계 검사가 실패시키는 대상. "fails a PR if it reaches across a declared module boundary"
CLOBCentral Limit Order Book(중앙 집중식 주문장, 가격-시간 우선순위로 매칭하는 거래소 코어) · Verex 매칭 엔진을 가리키는 이름, 이 글에서 deep module의 예. "the CLOB matching core is the deep module"
SDKSoftware Development Kit(소프트웨어 개발 키트, 외부에 공개하는 인터페이스 패키지) · Verex의 sdk 패키지, 사람이 설계하는 강한 인터페이스. "the sdk package is the interface"

← All Knowledge Notes · Workspace Index · Top ↑

Pocock — 코드를 찍어내는 비용이 싸졌기에, 나쁜 코드는 소프트웨어 역사상 가장 비싼 실수가 됐다

Total TypeScript와 AI Hero를 만든 타입스크립트 교육자 맷 포콕(Matt Pocock)이 AI Engineer YouTube 채널에서 "Software Fundamentals Matter More Than Ever"라는 강연을 했다. 주장은 이렇다. 사양서만 쓰고 그것을 AI "컴파일러"에 넘긴 뒤 결과물을 읽지 않는 팀은 소프트웨어 엔트로피를 빠르게 쌓는다. 코드를 싸게 찍어낼 수 있게 됐다고 해서 나쁜 코드가 감당 가능해진 것은 아니기 때문이다. 변경하기 어려운 코드베이스에서는 AI 자신도 잘못된 판단을 내리기 시작하므로, 나쁜 코드베이스의 비용은 지금이 역사상 가장 높다. 존 오스터하우트(John Ousterhout)의 정의로 좋은 코드베이스란 그저 변경하기 쉬운 코드이며, AI 코딩 에이전트가 실제로 잘 동작하는 곳도 그런 코드베이스뿐이다. 포콕은 AI 코딩에서 반복되는 실패 모드 다섯 가지를 꼽고, 각각에 AI와 무관한 오래된 소프트웨어 설계 원칙에서 가져온 대응책을 짝짓는다. 마무리는 이미지 하나로 끝난다. 에이전트는 현장에서 빠르게 실행하는 좋은 하사관이지, 전장 전체를 보는 장군이 아니다. 시스템 수준의 시야는 여전히 사람에게서 나와야 한다.

Jayverse에서 이것은 에이전트의 diff를 리뷰한다는 것이 실제로 무엇을 검증하는 일인지를 다시 정의한다. 코드가 컴파일되는지가 아니라, 에이전트가 그 안에서 작업한 인터페이스와 용어가 그 diff를 신뢰할 만큼 견고했는지를 확인하는 것이다.

일화보다 경제학이 중요하다. 코드 생성이 싸진다고 나쁜 아키텍처의 비용이 줄어드는 것이 아니라, 그 비용이 이해와 유지보수 쪽으로, 그리고 이제는 에이전트 자신의 판단으로 옮겨간다. 뒤엉킨 코드베이스에서 추론하는 에이전트는 깔끔한 코드베이스에서 추론하는 에이전트보다 더 나쁜 결정을 내리기 때문이다. 이것은 피드백 루프다. 나쁜 구조가 나쁜 에이전트 출력을 낳고, 그것이 다시 코드베이스에 커밋되고, 그러면 다음 에이전트의 작업이 더 어려워진다. 코드를 읽지 않는 '사양서에서 코드로'는 이 루프가 감시 없이 돌아가는 방식이다. 포콕이 주장하는 해법은 AI로 코드를 덜 쓰는 것이 아니라, 좋은 엔지니어링이 항상 요구해 온 바로 그 기준 — 인터페이스, 경계, 테스트 — 을 그대로 유지하는 것이다. 이제 그것은 AI 쪽 워크플로가 애초에 동작하기 위한 전제 조건이기도 하기 때문이다.

동작 방식

'사양서에서 코드로' 함정과 코드가 더는 싸지 않은 이유

포콕이 겨냥하는 워크플로는 이렇다. 사람이 사양서를 쓰고, AI가 그것을 코드로 바꾸고, 사람의 유일한 피드백 루프는 다음 사양서로 "컴파일러"를 다시 돌리는 것 — 결과 diff는 절대 읽지 않는다. 왕복 하나하나는 각각 효율적으로 보이지만, 누적되는 코드가 일관성을 유지하는지 확인하는 사람이 아무도 없어서 코드베이스는 아무도 눈치채지 못한 채 고치기 비싸질 때까지 무질서 쪽으로 흘러간다. 포콕의 문장은 이렇다. 코드는 싸지 않다. 가격이 떨어진 것은 타이핑하는 일이지, 그 안에 박힌 나쁜 결정의 비용이 아니다.

실패 모드 다섯 가지와 대응책 다섯 가지

증상원인대응책
결과물이 의도와 전혀 다르다의도와 제약이 명시된 적이 없다Grill me: 에이전트에게 무엇이든 쓰기 전에 둘이 같은 이해에 도달할 때까지 집요하게 인터뷰하고, 결정 트리의 모든 가지를 따라가라고 지시한다 — 잘 되면 고치는 비용이 아직 쌀 때 날카로운 질문 수십 개(요약에 따르면 40~60개)가 나온다
결과물이 장황하고 코드베이스와 어울리지 않는다에이전트와 팀 사이에 공유 어휘가 없다Ubiquitous Language, 에릭 에반스(Eric Evans)의 Domain-Driven Design 용어: 코드베이스를 스캔해 핵심 용어의 마크다운 용어집을 만들고, 에이전트가 생각하거나 쓸 때마다 그것을 참조하도록 강제한다
코드가 실제로 동작하지 않는다에이전트가 에러를 만나기 전까지 수백 줄을 쏟아낸다 — 피드백 루프가 따라잡을 수 있는 속도보다 빠르게 달린다는 뜻의 *The Pragmatic Programmer*의 표현으로 "헤드라이트를 앞질러 달린다"강제된 TDD: 작은 실패 테스트, 통과시키기, 리팩터, 반복 — 타입스크립트의 정적 타입과 에이전트 자신의 도구 접근에 더해
에이전트가 코드베이스 탐색에서 길을 잃는다얕은 모듈이 많아서 에이전트가 환각을 일으키며 따라가야 하는 긴 의존성 사슬이 생긴다Deep modules(오스터하우트): 좁고 강한 인터페이스가 실질적인 기능을 뒤에 감추면 테스트와 검증이 쉽고, 열린 탐색 대신 에이전트에게 경계가 있는 작업을 준다
엔지니어가 끊임없는 감독으로 번아웃된다크고 작은 모든 결정이 사람을 거친다사람은 인터페이스와 경계를 설계하고 모듈의 계약을 고정하는 외부 테스트를 소유한다. 모듈 내부는 에이전트에게 넘기는 회색 상자가 된다

다섯 가지 모두를 관통하는 것은 어느 대응책도 새롭지 않다는 점이다. Grill-me는 구조화된 요구사항 수집이고, Ubiquitous Language는 15년 된 DDD 용어이며, TDD는 켄트 벡(Kent Beck)의 red-green-refactor 사이클이고, deep modules는 *A Philosophy of Software Design*에서 그대로 나온다. 포콕의 요점은 이 고전적 원칙들이 원래부터 좋은 관행이었고, 지금은 그것이 하중을 지탱한다는 것이다. 에이전트는 그것들이 없을 때 기댈 판단력이 없기 때문이다.

하사관이지 장군이 아니다

포콕의 마무리 틀은 전술 대 전략이다. 에이전트는 좋은 하사관이다 — 빠르고 유능하고 경계가 정해진 명령을 실행하는 데 효과적이다 — 하지만 전체 작전을 조망하는 장군은 아니다. 켄트 벡의 "매일 시스템 설계에 투자하라"는 말이 사람을 장군의 자리에 계속 있게 하는 원칙이다. 포콕의 결론은 단호하다. 인터페이스 분리, 테스트 가능성, 복잡성 제어라는 고전 기본기를 깊이 이해한 개발자만이 실제로 AI 협업자를 지휘하고 그로부터 진짜 가치를 얻을 수 있다. 나머지는 그저 더 빠르게 엔트로피를 만들 뿐이다.

Jayverse에서의 위치

  • Verex: CLOB 매칭 코어가 deep module이고, sdk 패키지가 인터페이스다. packages/contracts의 매칭 로직 리팩터는 외부 테스트 스위트(가격-시간 우선순위, 자기 체결 금지, 결정적 체결)가 그린으로 유지되는 한 에이전트에게 맡겨도 안전하다 — 그것이 회색 상자다. sdk의 공개 형태는 사람이 계속 직접 설계해야 할 강한 인터페이스다.
  • Rabbit: mandate, session key, enforcer 용어는 용어집 표 하나가 필요하다. Ubiquitous Language를 그대로 적용한 것이다 — rabbit의 ERC-4337/7702 세션 키나 mandate 코드를 건드리기 전에 어떤 에이전트든 먼저 읽는 마크다운 표를 만들면, "mandate"와 "enforcer"가 코드베이스 전체와 에이전트 출력에서 하나의 의미만 갖는다.
  • CI: TDD가 에이전트 작성 diff의 속도를 정한다. 머지 전 red-green-refactor 게이트는 "에이전트가 헤드라이트를 앞질러 달리게 두지 마라"의 구체적 버전이다. 선언된 모듈 경계를 넘는 PR을 실패시키는 Dark Horse 경계 파일 검사가 자리 잡기에도 자연스러운 곳이다.
  • Eng: Grill-me 스킬은 이미 자리가 있다. Eng #33이 바로 이 아이디어 — 의도가 맞을 때까지 인터뷰하고 모든 가지를 따라가기 — 를 연습된 대화로 만들었다. 이 항목은 그 대화가 왜 작동하는지에 대한 설계 이론 쪽 근거다.

확인된 것과 미확인

2026-09-19 확인: 맷 포콕은 실제 타입스크립트 교육자(Total TypeScript, AI Hero)이고, AI Engineer YouTube 채널은 실제로 존재하며 이런 실무자 강연을 다룬다. 존 오스터하우트의 A Philosophy of Software Design*과 그 deep module/shallow module 구분, 에릭 에반스의 *Domain-Driven Design*에서 나온 Ubiquitous Language, 켄트 벡의 TDD red-green-refactor 사이클, *The Pragmatic Programmer*의 "헤드라이트를 앞질러 달린다"는 모두 문서화된 실제 출처다. 요약에서 가져왔고 독립 확인하지 않은 것: 40~60개 질문 수치, 강연 길이, 인용된 문장들의 정확한 표현("Grill me" 지시문과 이 특정 강연에서 실제로 전달된 하사관/장군 비유 포함). 출처: YouTube — 맷 포콕, "Software Fundamentals Matter More Than Ever", AI Engineer 채널 · 존 오스터하우트, *A Philosophy of Software Design · 에릭 에반스, Domain-Driven Design · 관련 항목: Life 1301(pocock-sergeant-not-general), Eng #33(Grill me before you plan), Tech #62(에이전틱 엔지니어링은 경계를 쓴다), Tech #96(Homa — 오스터하우트, 이번엔 전송 계층), Tech #97(AI 엔지니어가 자동차를 만든다).

핵심 표현

이 페이지의 영어 본문에서 배울 만한 단어와 표현, 뜻과 나온 자리.

Expression뜻 · 쓰이는 자리
software entropy소프트웨어 엔트로피(감시 없이 방치하면 코드베이스가 무질서로 흘러가는 경향) · 구조가 무너지는 속도를 가리키는 말. "accumulate software entropy fast"
specs to code사양서를 AI에게 넘겨 코드로 바꾸게 하고 결과를 읽지 않는 워크플로 · 이 강연이 경고하는 함정의 이름. "The specs-to-code trap"
Grill me그릴 미(에이전트에게 "나를 집요하게 인터뷰하라"고 지시하는 스킬 이름) · Eng #33과 이어지는 고유 스킬명, 번역하지 않고 그대로 쓴다. "Grill me: tell the agent to interview you relentlessly"
decision tree결정 트리(선택마다 가지가 갈라지는 구조) · Grill me에서 "모든 가지를 따라가라"고 할 때의 그 가지. "following every branch of the decision tree"
Ubiquitous Language유비쿼터스 언어(도메인 전체에서 팀과 코드가 공유하는 하나의 용어 체계) · 에릭 에반스의 DDD 핵심 개념. "Ubiquitous Language, Eric Evans' Domain-Driven Design term"
DDDDomain-Driven Design(도메인 주도 설계) · Ubiquitous Language가 나온 원 개념 체계. "Domain-Driven Design term"
red-green-refactor레드-그린-리팩터(실패하는 테스트를 먼저 쓰고, 통과시키고, 정리하는 순환) · TDD의 표준 사이클, 켄트 벡이 정리. "Kent Beck's red-green-refactor cycle"
TDDTest-Driven Development(테스트 주도 개발) · 코드를 쓰기 전에 테스트부터 쓰는 방법론. "Enforced TDD: small failing test, make it pass, refactor"
outrun your headlights헤드라이트를 앞질러 달리다(피드백이 따라잡기 전에 너무 빨리 나아가는 것) · *The Pragmatic Programmer*의 표현, 에이전트가 에러 없이 수백 줄을 쏟아내는 상태. "it 'outruns its headlights'"
deep module딥 모듈(인터페이스는 단순하지만 뒤에 실질적 기능을 숨긴 모듈) · 오스터하우트의 핵심 설계 단위, 에이전트에게 맡길 수 있는 경계. "Deep modules (Ousterhout)"
shallow module섈로우 모듈(인터페이스가 숨긴 기능만큼이나 복잡한 모듈) · deep module의 반대, 에이전트가 길을 잃는 원인. "Many shallow modules force a long dependency chain"
gray box회색 상자(내부는 에이전트에게 맡기고 외부 계약만 사람이 고정한 모듈) · 화이트박스와 블랙박스 사이, 이 글에서 Verex 매칭 코어에 쓰는 비유. "the module's interior becomes a gray box"
sergeant, not general장군이 아니라 하사관(에이전트는 전술 실행자이지 전략가가 아니라는 비유) · Life 1301과 직접 이어지는 표현. "the agent is a good sergeant... not a general"
tactical vs strategic전술 대 전략 · 하사관/장군 비유를 풀어 쓴 짝. "Pocock's closing frame is tactical versus strategic"
load-bearing하중을 지탱하는(빠지면 전체가 무너지는 필수 요소) · 고전 원칙들이 지금은 선택이 아니라는 뜻으로. "these classic disciplines... are now load-bearing"
boundary-file check경계 파일 검사(선언된 모듈 경계를 코드가 넘었는지 자동으로 확인하는 CI 단계) · Dark Horse와 이어지는 CI 아이디어. "a Dark Horse boundary-file check"
CIContinuous Integration(지속적 통합, 머지 전 자동 검증 파이프라인) · TDD 게이트와 경계 검사가 실제로 도는 위치. "CI: TDD is the pace-setter for agent-authored diffs"
PRPull Request(변경 사항을 병합해 달라고 올리는 요청) · 경계 검사가 실패시키는 대상. "fails a PR if it reaches across a declared module boundary"
CLOBCentral Limit Order Book(중앙 집중식 주문장, 가격-시간 우선순위로 매칭하는 거래소 코어) · Verex 매칭 엔진을 가리키는 이름, 이 글에서 deep module의 예. "the CLOB matching core is the deep module"
SDKSoftware Development Kit(소프트웨어 개발 키트, 외부에 공개하는 인터페이스 패키지) · Verex의 sdk 패키지, 사람이 설계하는 강한 인터페이스. "the sdk package is the interface"

← 전체 기술 노트 · 워크스페이스 인덱스 · 맨 위 ↑