CanonCode + LLM — 명세를 주면 코드가 정확해진다는 실험 결과

LLM에게 “에스크로 결제 구현해줘"라고 하면 무슨 일이 일어나는가? 일단 뭔가 만들어 준다. 트랜잭션도 넣고, 잔액 체크도 하고, 에러 핸들링도 한다. 그런데 “우리 프로젝트에서 에스크로가 정확히 어떤 규칙으로 동작하는지"는 모른다. 추측이 섞인다. 내 프로젝트의 에스크로는 포인트 기반인데, 카드 결제를 가정한 코드가 나온다든가. CanonCode를 만들면서 예상치 못한 이점을 발견했다. .lex 명세를 LLM의 컨텍스트로 제공하면, 추측이 사라진다. 이 글에서는 3가지 케이스에서 “명세 없이” vs “명세 있이” 코드 생성 결과를 비교한다. 실험 설계 조건 모델: Claude (Sonnet) 프로젝트: LaunchCrew (Rails 8 + Inertia.js + Svelte 5) 비교 A: 자연어 프롬프트만 제공 비교 B: .lex 명세 + 자연어 프롬프트 제공 평가: 생성된 코드가 실제 프로젝트 요구사항과 얼마나 일치하는지 3가지 케이스: ...

2026-03-20 00:00 · 6분 소요 · Seunghan
AI 에이전트 개발 과정

[개발일기] Rails 8로 AI 에이전트 리뷰 시스템 만들면서 삽질한 이야기

AI가 글을 검수해주는 시스템을 Rails 8로 만들고 있다. 4개의 AI 에이전트가 각자 관점에서 원고를 분석하고, 스토리 데이터베이스와 연동해서 일관성까지 체크하는 구조. 만들면서 꽤 많이 삽질했는데, 기록 안 해두면 까먹을 것 같아서 정리해본다. 1. AI 에이전트의 “톤"이 이렇게 중요할 줄이야 처음엔 에이전트 프롬프트를 이렇게 썼다: 당신은 편집 보조자입니다. 원고를 분석하고 문제점을 지적하세요. 테스트 유저한테 피드백을 받았는데, **“이건 도움이 아니라 채점이다”**라는 반응이 돌아왔다. 창작하는 사람 입장에서 “지적” 톤은 부담스럽다는 거였다. 업계 리서치를 해보니까 Sudowrite, NovelAI 같은 도구들도 “동료” 톤이 압도적으로 선호된다고 한다. ...

2026-03-12 00:00 · 7분 소요 · Seunghan
개인정보처리방침 이용약관 면책조항 문의