"기술은 집중을 지키고 진실을 말하며 물러날 때를 알면 성공해."
우물이 자라는 방향
마지막 시험은 기능 수가 아니야. 글쓴이가 원문을 뽑고 옮겨 쓰고 떠났다가 돌아와 실패를 복구하고 일부러 공유하는 동안 기계가 경계 안에 머물며 대부분 무시 가능한지 보는 거야.
작은 계약으로 붙여
layer를 가로지르는 end-to-end 불변식을 써. 응답 전 원문 저장, 장식이 원문을 지우지 못함, fresh running job만 착지, reviewer 편집 금지, 현지 날짜 보기, focus 보조의 soft failure, 형제 canonical ownership, 원문 전용 공유 말이야.
확장이 주권을 훔칠 때
unit test가 전부 지나도 사이 이야기에서 실패할 수 있어. 응답은 빠르지만 안 남고, job은 남지만 stale이고, focus는 예쁘지만 가두고, share는 편하지만 정보를 흘릴 수 있어. 전체 경로가 제품이야.
처음 약속으로 다시 시험해
이 기능이 생겨도 원문이 먼저고 펜은 저자 손에 있으며 늦은 결과는 허락을 물어야 해. 공유와 scheduler, search, audio가 각자 편의를 위해 원문 복사본이나 숨은 clock, 무제한 payload를 만들지 않는지 따라가. 새 기능이 오래된 불변식을 우회하면 성장한 게 아니라 다른 제품이 된 거야.
끝까지 실행해
browser와 API, database, worker, sibling service를 건너 돌아오는 end-to-end scenario 하나를 만들어. 정상 경로와 함께 중복 호출, source edit, 삭제, stale artifact, 권한 거절을 넣어. 화면의 한 번 성공보다 database row와 outbound payload, sibling reference가 같은 이야기를 하는지 증명해.
우물을 닫는다는 것
닫는 건 기능을 멈춘다는 뜻이 아니야. 한 번의 필사가 원문 생성에서 종이, 복구, 다시 찾기, 선택 공유까지 완결된다는 뜻이야. 그 사이 기술이 자신을 설명할 때만 보이고 나머지 시간에는 잉크 뒤로 물러나면 우물이 제대로 손을 얻은 거야.
이 확장의 실제 계약
한 scenario에서 원문 commit 뒤 응답, background claim, source edit, stale output drop, 필사 표시, 검색, 선택 공유까지 이어가. browser와 database, sibling reference가 같은 entry id와 정확한 원문 상태를 말해야 해. 중간 한 층만 녹색인 건 전체 성공이 아니야.
새 기능의 첫 질문은 “할 수 있나?”가 아니라 “원문 우선 약속을 깨지 않고 어디에 붙나?”야. 오래된 불변식이 새 경로에서도 같은 말을 해야 해.