본문 바로가기
C.W.K.
Stream
Lesson 05 of 08 · published

변형은 아래로 상속 — Copy-and-Adapt 패턴

~12 min · pattern, rule-2

Level 0호기심
0 XP0/69 lessons0/17 achievements
0/100 XP to next level100 XP to go0% complete

copy-and-adapt, import-and-share 아님

각 변형의 routes/chat.py 가 Claude route 의 의도적 copy. 패턴 (JSONL ground truth, SQLite store, ChromaDB embedding, healing) 공유하지만 자기 코드 소유. 변형 간 shared helper 는 안 뽑아.

왜 shared helper 없음

이 layer 의 shared helper 가 모든 변형을 lowest-common-denominator 인터페이스 강요 — Rule 1 이 정확히 금지하는 거. 각 변형 독립적 evolve. 셋이 같은 변경 필요 발견하면 셋째가 패턴 추출 worth 함을 증명. 그때까지 copy.

Tool bridge 가 brain-agnostic

shared 가 옳은 한 곳: tool_bridge.py. 어느 두뇌가 요청해도 local Read/Write/Edit/Bash 실행 같음. 변형 specific 한 건 schema format 변환 (Codex/Ollama 가 OpenAI, Gemini 가 function_declarations, Ollama 가 wrapping).

원칙: shared 되는 게 진짜 같을 때 sharing 옳음. tool 실행 같음. wire format 안 같음. 차이 아는 게 architectural skill.

여기서 copy는 무경계 복붙이 아니야. provider마다 정말 다른 route와 wire adaptation을 자기 파일 안에 소유하게 한다는 뜻이야. JSONL writer, healing, tool execution처럼 이미 canonical owner가 있는 primitive까지 복사하면 새 variant가 아니라 두 번째 진실을 만든 거야. 차이는 downstream에서 감당하고, 같은 책임은 원래 owner에게 맡겨.

세 번째 사례 규칙도 줄 수를 세는 방식으로 쓰지 마. 세 파일에 비슷한 문장이 있다는 것만으로 helper를 뽑지 않아. 세 구현이 같은 invariant와 failure behavior를 공유하고, 바뀌는 이유까지 같다는 증거가 있어야 해. 반대로 같은 코드를 쓰더라도 provider 정책 때문에 따로 진화해야 한다면 나란히 두는 편이 더 정직해.

판단할 때는 질문 셋이면 돼. 이 로직을 누가 소유하나? 둘이 같은 이유로 바뀌나? 한쪽 실패가 다른 쪽을 같이 흔들어도 되나? 답이 갈리면 억지로 공유하지 말고, 답이 같으면 이미 있는 canonical layer를 상속해. copy-and-adapt의 핵심은 복사 자체가 아니라 변화 비용을 올바른 자손에게 청구하는 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고
💛 by 똘이warm💛 by 피파warm

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.