AI 코딩을 위한 구조적 프롬프트 프레임워크 공유
Yo
핵심 요약
AI 코딩의 신뢰성을 높이기 위해 고안한 200개 이상의 전문 프롬프트 중 하나를 공유하며 전문가의 검증을 요청하는 글입니다.
- 구조적 프롬프트 — AI 코딩의 신뢰성을 높이기 위한 설계 프레임워크 공유
- 다양한 분류체계 — 실패, 변동성, 로드 베어링 불변성 등 6가지 핵심 요소 정의
- 전문가 피드백 — 실제 소프트웨어 아키텍처 관점에서의 검증 요청
- 실행 가능성 — AI가 코드를 생성할 때 지켜야 할 엄격한 제약 조건 명시
제 작업물을 공유하는 건 이번이 처음입니다. 지난 1년간 프롬프트가 만들어지는 방식을 재현하기 위해 노력해왔고, 제가 뭔가 제대로 된 걸 만들었는지 궁금합니다. 그래서 제 프롬프트 중 하나를 여기에 올립니다. 저는 정식 코딩 경험은 없습니다. 단지 응축된 형태로 도메인에서 구조적 분석을 도출하는 저만의 방법을 개발했을 뿐입니다. 제가 우연히 발견한 것이 실제 방법론으로 이어질지, 아니면 고차원적인 환각(confabulation)에 불과할지는 아직 검증되지 않았습니다. 도메인 전문가들이 직접 테스트해보고 알려주셨으면 합니다. 현재 200개 이상의 고도로 전문화된 프롬프트를 구축했고, 더 쉽게 만들 수 있는 능력도 갖췄습니다. 하지만 이제 제가 정말로 뭔가 제대로 된 것을 가지고 있는지 확인할 때가 되었습니다. 가차 없이 평가해주세요.
Code That Survives — v3.1
Part 1: Substrate the operator must declare before construction begins
이 부분은 AI가 아닌 운영자가 읽는 내용입니다. AI에게 이 시스템에서 코드를 구성하거나 수정하도록 요청하기 전에 다음 사항을 선언하십시오. AI는 이러한 선언이 없으면 구조적 구성을 거부하고 운영자에게 제공을 요청할 것입니다.
The failure taxonomy. 시스템이 포함하기로 약속한 실패 모드를 나열하십시오. 실패 모드는 운영자가 이를 표면화하고, 포함하거나, 제거하도록 설계할 수 있을 만큼 구체적일 때 명명됩니다. "오류"는 명명된 실패 모드가 아닙니다. "스토리지 계층의 네트워크 타임아웃", "생산자와 소비자 간의 스키마 불일치", "캐시된 자격 증명에 대한 권한 부여 실패" 등이 명명된 실패 모드입니다. 목록이 완전할 필요는 없으며, 시스템이 약속하는 모드여야 합니다.
The volatility taxonomy. 이 시스템에서 안정적으로 유지될 것으로 예상되는 설계 결정과 변경될 것으로 예상되는 결정을 나열하십시오. 안정적인 결정은 인터페이스에서 부하를 견딜 수 있지만, 변동성이 큰 결정은 인터페이스 보호가 필요합니다. 무엇이 안정적이고 무엇이 변동적인지에 대한 판단은 시스템이 어떻게 진화했고 어디에 압력이 존재하는지에 대한 도메인 지식에서 나오며, 일반적인 소프트웨어 변경 모델에서 나오지 않습니다.
The reader conventions. 코드베이스가 독자에게 요구하는 관례를 명명하십시오. 언어 관용구, 프레임워크 패턴, 도메인 어휘, 아키텍처 관례 등이 포함됩니다. 이러한 관례는 코드를 현재 독자가 읽을 수 있게 만드는 요소이며, 이를 명명하지 않으면 현재 기여자에게는 "명백히 명확한" 코드가 후임자에게는 불투명해집니다.
The orthogonalities. 이 시스템이 독립적으로 변하는 축을 나열하십시오. 두 가지 관심사는 표면적으로는 별개의 관심사처럼 보일 때가 아니라 실제로 다른 축을 따라 변할 때 이 도메인에서 직교합니다. 이 목록은 시스템이 무엇을 하고 어떻게 변하는지에 대한 도메인 지식에서 나오며, 교과서적인 분해 패턴과 일치시키는 것이 아니라 운영자의 판단에 따릅니다.
The identity-under-change models. 실행 취소, 재시도 또는 대체가 필요할 수 있는 작업에 대해 재시도 목적을 위해 무엇이 "동일한 작업"인지, 실행 취소 목적을 위해 무엇이 "동일한 상태"인지, 대체 목적을 위해 무엇이 "동일한 결정"인지를 명시하십시오. 이러한 모델은 코드 자체가 아니라 도메인 의미론에서 나옵니다.
The load-bearing invariants. 운영자가 신경 쓰는 방식으로 시스템을 손상시키는 불변량을 나열하십시오. 불변량은 이를 보존하지 않고 코드를 수정할 때 실패 분류체계의 실패 모드를 생성하거나 변경 시 동일성 모델을 위반할 때 부하를 견디는(load-bearing) 상태가 됩니다. 무엇이 부하를 견디는 불변량인지에 대한 판단은 운영자의 도메인 지식에 속하며, 다른 분류체계에서만 파생될 수는 없지만 이를 활용합니다.
Substrate dependencies between these. 위의 선언들은 특정한 방식으로 서로 의존합니다. 실패 분류체계에 성능 계약 위반이 포함되지 않으면, 변동성 분류체계는 호출자의 우회 작업을 통해 숨겨진 계약을 생성할 수 있습니다. 직교성 주장이 도메인 지식에 근거하지 않으면, 변동성 분류체계는 잘못된 결정을 보호하게 됩니다. 독자 관례가 명명되지 않으면 도메인 지식이 전달될 수 없으며, 변동성 분류체계는 후임자에게 불투명해집니다. 변경 시 동일성 모델이 없으면 가역성 인프라가 실제로 무슨 일이 일어나고 있는지에 대해 작동할 수 없습니다. 부하를 견디는 불변량은 실패 분류체계나 변경 시 동일성 모델, 또는 운영자가 명명한 도메인별 이유로 추적 가능해야 합니다. 이러한 의존성은 운영자 측의 조정 문제이므로, AI에게 구성을 요청하기 전에 선언이 전체적으로 일관적인지 확인하십시오.

