피드로 돌아가기
Dev.toAI/ML
원문 읽기
LLM 코드 생성의 비결정성을 ISL 명세 언어와 컴파일러 구조로 해결하는 설계 철학
Part 1 of 3 — Engineering Intent Series - Stop Prompting, Start Compiling: The Path to Predictable AI-Generated Code
AI 요약
Context
기존 LLM 코드 생성은 자연어 프롬프트의 모호성으로 인해 결과가 비결정적이다. 같은 프롬프트도 모델 버전, 환경에 따라 다른 코드, 버그, 패턴이 생성된다. 이 문제를 Ambiguity Tax라고 정의한다. 현재 산업계의 Prompt Engineering은 역할 지정이나 예시 제공에 그쳐 있으며 이는 방법론이 아닌 미신에 가깝다.
Technical Solution
- [대상: 개발자] → [수행 내용: 형식 명세 파일(.isl.md)로 동작, 제약조건, 수렴 기준을 정의]한다
- [대상: Builder] → [수행 내용: 프로젝트 의존성 그래프를 분석하고 토폴로지 정렬로 처리 순서를 결정]한다
- [대상: Compiler] → [수행 내용: 범위가 정해진 명세를 LLM에 전달하여 대상 언어의 코드를 결정론적으로 생성]한다
- [대상: 생성 코드] → [수행 내용: 암호학적 서명으로 잠금 처리하여 읽기 전용 아티팩트로 유지]한다
- [대상: Auditor] → [수행 내용: 생성 코드의 상태 전이가 명세와 일치하는지 동작 수준에서 검증]한다
Impact
생성 코드와 명세의 정합성을 강제함으로써 undocumented legacy code를 근절한다.
Key Takeaway
AI에게 방법을 알려주는 것이 아니라 무엇을 해야 하는지를 컴파일 가능한 형식으로 정의해야 한다.
실천 포인트
AI-assisted 코드 생성 환경에서 명세 기반 빌드 시스템(ISL, Builder, Compiler)을 적용 시 프롬프트의 모호성으로 인한 비결정적 결과를 제거하고 일관된 코드 생성을 확보할 수 있다