바퀴를 다시 발명하지 마세요: SDD 시대를 위한 선행 기술 조사 프레임워크
요약
AI 에이전트와 SDD(명세 기반 개발) 환경에서 발생하기 쉬운 '바퀴를 다시 발명하는 실수'를 방지하기 위한 선행 기술 조사 프레임워크를 소개합니다. 실시간 논문 및 OSS 검색을 통해 설계 전 기존 지식과 도구를 검토하는 프롬프트 기반 워크플로우를 제안합니다.
핵심 포인트
- SDD와 AI 에이전트 사용 시 기존 개념 확인 과정을 건너뛰기 쉬움
- 지식 증류(Knowledge Distillation) 사례처럼 이미 존재하는 기술을 재발명하는 문제 방지
- 시니어 엔지니어의 사고방식을 반영한 7가지 핵심 질문 프레임워크 활용
- arXiv, Papers with Code 등을 활용한 실시간 연구 계보 및 OSS 평가
이미 이름이 있고, 위키피디아 페이지가 있으며, 10년 치의 논문이 존재하는 무언가를 설계하는 데 몇 시간을 허비했습니다. 제가 이를 어떻게 해결했는지 소개합니다.
실수 (The Mistake)
제가 llm-distil-loop를 구축하기 시작했을 때, 저는 시스템을 처음부터 설계했습니다:
"LLM (Large Language Model)을 사용하여 라벨링된 학습 데이터를 생성한 다음, 해당 출력값을 바탕으로 더 작은 ML (Machine Learning) 모델을 학습시킨다."
저는 요구사항을 작성했습니다. 아키텍처 (Architecture)를 스케치했습니다. 데이터 스키마 (Data Schema)를 고민하기 시작했습니다.
몇 시간 후, 저는 느슨하게 관련된 무언가를 검색했고 — 그것을 찾아냈습니다.
지식 증류 (Knowledge Distillation). Hinton et al., 2015년 이후 지속되어 온 연구 분야입니다. 수백 편의 논문. 여러 개의 프로덕션 준비가 된 OSS (Open Source Software) 구현체들. 문서화된 실패 패턴들. 무엇을 하지 말아야 하는지를 배워온 10년 차 실무자들.
저는 존재하지도 않는 진공 상태에서 설계를 하고 있었던 것입니다.
문제는 제가 부주의하다는 것이 아닙니다. 문제는 명세 기반 개발 (Spec-Driven Development, SDD)과 AI 에이전트 (AI Agents)가 당신을 빠르게 움직이게 만든다는 점입니다. 그리고 빠르게 움직인다는 것은 "이것에 이미 이름이 있는가?"라는 확인 과정을 건너뛴다는 것을 의미합니다.
그 확인 과정은 이제 하나의 프레임워크가 되었습니다: prior-art-investigation.
실제로 하는 일 (What It Actually Does)
솔직히 말씀드리면, 이것은 프롬프트 모음입니다. 라이브러리도 아니고, CLI (Command Line Interface) 도구도 아닙니다. 당신의 SDD 워크플로우 (Workflow)에 연결되는 프롬프트들입니다.
하지만 이 프롬프트들은 사소하지 않은 무언가를 인코딩합니다: 시니어 엔지니어와 시스템 설계자들이 특정 접근 방식을 확정하기 전에 실제로 던지는 질문들 말입니다.
7가지 질문 (The 7 Questions)
모든 조사는 다음 질문 중 일부 또는 전부를 거칩니다:
| # | 질문 | 시점 |
|---|---|---|
| Q1 | 문제 프레이밍 (Problem Framing)이 올바른가? 내가 올바른 문제를 풀고 있는가? | 요구사항 (Requirements), 설계 (Design) |
| ... | ||
| Q7 | "그래서 어쩌라고(So What)" 질문 — 대부분의 사람들이 건너뛰는 질문입니다. 개념의 이름을 찾는 것이 목표가 아닙니다. 그 개념이 당신의 설계를 변화시키도록 만드는 것이 목표입니다. |
반환 결과 (What It Returns)
에이전트는 arXiv, Papers with Code, 그리고 Semantic Scholar를 실시간으로 검색합니다 — 지식 컷오프 (Knowledge Cutoff)가 없습니다 — 그리고 다음을 반환합니다:
연구 계보 (Research Lineage)
개념: 지식 증류 (Knowledge Distillation)
2015 — Hinton et al., "Distilling the Knowledge in a Neural Network"
...
OSS 평가 매트릭스 (OSS Evaluation Matrix)
도구 (Tool) 라이선스 (License) 최근 커밋 (Last Commit) 적합성 (Fit) 결정 (Verdict)
──────────────────────────────────────────────────────────
HF transformers Apache-2.0 Active High ✅ 채택 (Adopt)
...
라이선스 등급 (License tiers)은 명확합니다: MIT/Apache-2.0는 1등급 (자유롭게 채택), GPL은 3등급 (법적 검토 필요), AGPL/SSPL은 4등급 (채택 금지)입니다.
알려진 실패 패턴 (Known Failure Patterns)
- 교사 편향 (Teacher bias)이 학생 모델 (student model)로 전파됨
- 생성된 라벨 (generated labels)에 대한 품질 게이트 (quality gates)가 없으면, 증류 (distillation)가 조용히 실패함
- 온도 (Temperature) 및 손실 가중치 (loss weighting)는 민감함 — 작은 변화가 학습을 망가뜨림
이 마지막 섹션이 가장 많은 시간을 아껴주는 부분입니다. 단순히 그것이 무엇이라 불리는지를 배우는 것이 아니라, 이미 고생하며 배운 사람들로부터 무엇이 그것을 망가뜨리는지를 배우게 됩니다.
OSS 및 기술 선정에도 적용 가능합니다
선행 기술 조사 (Prior art investigation)는 연구 개념만을 위한 것이 아닙니다. 저는 이를 다음과 같은 용도로 사용해 왔습니다:
OCR 및 PDF 라이브러리 선정 — 통합 코드를 한 줄도 작성하기 전에 정확도, 라이선스, 오프라인 지원 및 유지보수 상태 측면에서 Tesseract vs EasyOCR vs 클라우드 API를 평가합니다.
프로그래밍 언어 기술 결정 — 프로젝트의 언어에 특정 제약 사항(런타임, 생태계 성숙도, 비동기 모델)이 있을 때, 이 프레임워크는 Stack Overflow의 의견이 아닌 1차 자료로부터 그러한 트레이드오프 (tradeoffs)를 드러내 줍니다.
프롬프트에 포함된 평가 기준은 고정되어 있지 않습니다. 프롬프트 모음이기 때문에, 사용자의 상황에 맞춰 선택 매트릭스를 조정할 수 있습니다 — 더 엄격한 라이선스 요구 사항, 다른 유지보수 임계값, 특정 성능 벤치마크 등. 이 프레임워크는 당신이 실제로 결정하려는 대상에 맞춰 적응합니다.
근본적인 질문은 언제나 동일합니다: 이것을 확정하기 전에 내가 알아야 할 것은 무엇인가?
- 이 저자가 개인인가 아니면 조직인가? (장기 유지보수 신호)
- 마지막 커밋(commit)은 언제인가? (건강 상태 신호)
- 라이선스(license) 계층은 무엇인가? (법적 리스크 신호)
- 가장 가까운 두 가지 대안과 비교했을 때 어떠한가?
- 이 언어/런타임(runtime)이 해당 유스케이스(use case)에 대해 알려진 제한 사항이 있는가?
통합 방법
독립 실행형 (Standalone)
git clone https://github.com/as-we/prior-art-investigation
cd prior-art-investigation
make install
VS Code + Copilot Chat 사용 시:
/prior-art full I want to use LLM outputs to train a smaller ML model
학습 데이터 컷오프(training cutoff) 이후의 실시간 검색을 원하면 #web을 추가하세요.
SDD 워크플로우에 연결하기
이 프레임워크는 수동 트리거 없이 단계에 따라 서로 다른 깊이로 자동 실행됩니다:
| 단계 | 질문 | 깊이 |
|---|---|---|
| 요구사항 (Requirements) | Q1 + Q6 | 빠른 확인 — 질문 2개 |
| ... |
제가 태스크(tasks)를 작성할 때쯤이면, 조사는 이미 완료되어 있습니다.
GitHub SpecKit (VS Code + GitHub Copilot)
SpecKit 확장 프로그램(Extension)으로 등록하세요. before_specify, before_plan, before_tasks에 자동으로 후킹(hook)됩니다:
specify extension add prior-art-investigation --from <zip-url>
그 다음 .specify/extensions.yml 파일에 추가하세요:
hooks:
before_specify: prior-art minimal
before_plan: prior-art full
...
세 개의 에이전트(agent) 파일이 각 단계를 처리합니다: prior-art-minimal.agent.md, prior-art-full.agent.md, prior-art-sowhat.agent.md.
Kiro SDD
.kiro/hooks/를 통한 네이티브 후크(hook) 통합을 지원합니다. 후크 파일을 복사하는 것 외에 추가 설정은 필요하지 않습니다.
Claude Code
claude-code/CLAUDE.md.snippet의 스니펫(snippet)을 프로젝트의 CLAUDE.md에 추가하세요. Claude Code는 이를 지속적인 지침(persistent instruction)으로 읽고 각 단계에서 선행 기술 조사를 자동으로 실행합니다.
Cursor / Windsurf / 기타 에이전트 IDE
프롬프트(prompt) 파일을 에이전트 프롬프트로 직접 사용하세요. 수동 트리거가 필요합니다.
결과 기록
결과는 일회성으로 끝나지 않습니다. 각 조사 결과는 research.md에 기록됩니다:
## Named Concept
| Field | Value |
| --- | --- |
...
미래의 팀원들 — 혹은 미래의 당신 — 은 무엇이 고려되었고 그 이유가 무엇인지 정확히 확인할 수 있습니다.
고군분투했던 이들의 어깨 위에 올라서기
Chi. — Chikyuu no Undou ni Tsuite ("Chi. — 지구의 운동에 대하여")라는 만화가 있습니다. 이 만화는 엄청난 개인적 희생을 치르면서도 지구가 태양 주위를 돈다는 아이디어 — 그 반대가 아니라 — 를 추구했던 수세기에 걸친 평범한 사람들의 이야기를 다룹니다. 그들 각자는 대개 인정받지 못한 채, 종종 큰 위험을 감수하며 앞선 사람의 고통과 통찰을 바탕으로 지식을 쌓아 올렸습니다.
저는 2015년에 발표된 논문을 읽을 때 이 점을 생각합니다.
Geoffrey Hinton은 "Distilling the Knowledge in a Neural Network"라는 논문을 어느 오후에 뚝딱 써 내려간 것이 아닙니다. 그 통찰은 생물학적 신경계 (biological neural systems)가 어떻게 학습하는지, 압축된 표현 (compressed representations)이 어떻게 형성되는지, 그리고 모델이 단순히 암기하는 것이 아니라 "이해"한다는 것이 무엇을 의미하는지에 대해 수년간 고민한 결과였습니다. 그 논문의 각주들은 제가 결코 알 수 없을 사람들의 수십 년에 걸친 선행 연구 (prior work)를 가리키고 있습니다.
제가 /prior-art full 명령어를 실행하고 30초 만에 연구 계보 (research lineage)를 받아볼 때, 저는 단순히 시간을 절약하는 것이 아닙니다. 저는 수백 명의 사람들이 수년에 걸친 고군분투 끝에 그려낸 지도를 건네받는 것입니다.
제가 할 수 있는 최소한의 도리는 그것을 주의 깊게 읽는 것입니다.
이 프레임워크는 바로 그 믿음을 바탕으로 구축되었습니다. Q5 — "README 파일뿐만 아니라 1차 자료 (primary sources)를 읽었는가?" — 는 연구 질문인 동시에 규율 (discipline)에 관한 질문입니다. 이는 당신이 이 사람들이 발견한 내용에 실제로 깊이 관여했는지, 아니면 그저 겉핥기식으로 훑어보고 지나갔는지를 묻는 것입니다.
속도는 가치 있습니다. 효율성도 가치 있습니다. 하지만 인간의 지식을 단순히 조회 테이블 (lookup table)처럼 취급하는 효율성은 중요한 무언가를 놓치게 됩니다. 연구 계보는 단순한 맥락이 아닙니다. 그것은 특정 문제들이 실제로 얼마나 어려운지를, 그 어려움을 몸소 겪어낸 사람들이 기록한 역사입니다.
이 프레임워크를 사용하여 빠르게 나아가십시오. 하지만 눈을 크게 뜨고 빠르게 나아가십시오.
이것이 지금 중요한 이유
AI 에이전트 (AI agents)와 SDD 워크플로우 (workflows)는 구현 속도를 변화시켰습니다. 잘 구성된 문제 정의 (problem statement)는 몇 주가 아니라 몇 시간 만에 작동하는 코드가 됩니다.
정말 강력합니다. 하지만 위험하기도 합니다.
구현 속도가 빠르다는 것은 잘못된 설계로 시작했을 때의 비용이 빠르게 누적된다는 의미입니다. 잘못된 방향으로 빠르게 출시하게 됩니다.
선행 기술 조사(prior art investigation)는 속도가 낭비가 되는 것을 막아주는 검증 과정입니다. 시작하기 5분 전에 진행하는 것이죠. 이미 연구 자료는 존재합니다. 누군가가 이미 이름을 붙이고, 연구했으며, 실패했고, 그것을 기록해 두었습니다. 이 프레임워크는 여러분이 그들의 실수를 반복하기 전에 관련 정보를 찾아줍니다.
링크
- prior-art-investigation: github.com/as-we/prior-art-investigation — MIT License
- llm-distil-loop: github.com/as-we/llm-distil-loop — 제가 이것이 필요하다는 것을 배운 프로젝트입니다 — Apache-2.0
음악 분석 증류 파이프라인을 구축하는 동안 작성되었습니다. 선행 기술 조사 도구를 만들면서 선행 기술 조사가 필요했다는 아이러니를 저는 잊지 않았습니다.
태그: 생산성 도구링(tooling) 머신러닝(machinelearning) 초보자(beginners)
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기