본문으로 건너뛰기
피드

LLM에게 규칙을 지키라고 하지 말고, 규칙을 검사하는 코드를 짜라고 시켜라

general 약 4분
vote
0
댓글
북마크

LLM은 확률적이라 매번 일관되게 규칙을 지킬 수 없으니, 반복적으로 지켜야 하는 정책은 린트/테스트/타입 시스템 같은 결정론적 도구로 검증하고, 그 도구를 LLM에게 만들게 하라는 제안.

  • 1

    수학 증명에서 LLM+Lean 조합으로 에르되시 미해결 문제를 풀었던 사례 인용

  • 2

    한 번만 하면 되는 일 vs 반복 정책을 구분하는 것이 핵심

  • 3

    AGENTS.md나 프롬프트로는 LLM의 확률적 본성을 극복할 수 없음

  • 4

    타입 시스템, 커스텀 린트, 코드 스캔 테스트를 빌드 체인에 넣어라

  • 핵심 주장은 간단명료함: LLM은 결정론적(deterministic)이지 않으니까, 매번 일관되게 지켜야 하는 규칙은 LLM한테 맡기지 말고 결정론적 도구(린트, 테스트, 타입 시스템)를 만들어서 빌드 체인에 넣어라. 그리고 그 도구를 LLM한테 짜라고 시켜라
  • 수학 쪽에서 먼저 이 문제를 풀었다는 비유가 깔끔함. 테런스 타오(필즈상 수상자)가 2024년 9월에 LLM을 "그럭저럭 무능하지는 않은 대학원생을 지도하는 것 같다"고 표현했는데, 수학 증명에서 LLM이 그럴듯하지만 미묘하게 틀린 논증을 만들어내는 게 위험하다는 거임
  • 수학계의 해법: 2026년 1월, LLM(ChatGPT)으로 증명 개요를 만들고 → Aristotle이라는 도구로 논리적 결함을 잡아서 Lean 증명으로 변환하고 → 다시 ChatGPT로 논문 형식으로 작성하는 방식으로, 에르되시(Paul Erdos)가 제시했던 미해결 문제를 최초로 풀었음. LLM이 만들고, 결정론적 시스템이 검증하는 구조

소프트웨어 개발에서의 결정론

  • 배포 스크립트를 비유로 씀: 수동 배포보다 스크립트가 좋은 진짜 이유는 시간 절약이 아니라 신뢰성. 스크립트는 매번 똑같은 결과를 내니까
  • LLM은 인간과 프로그램 사이 어딘가에 있음. 지치거나 지루해하지는 않지만, 매번 같은 결과를 내지는 못함. 이건 LLM의 근본 작동 방식(다음 토큰의 확률 분포에서 샘플링)에서 비롯되는 거라 프롬프트를 아무리 잘 써도 해결 안 됨
  • "한 번만 하면 되는 일"과 "반복적으로 지켜야 하는 일"을 구분하는 게 핵심 프레임워크임:
    • 한 번: 데이터 마이그레이션, 로그인 화면 만들기, 프레젠테이션 차트 생성 → LLM이 해도 됨
    • 반복: SQL 인젝션 방어, 네이밍 컨벤션, 로그에 스택트레이스 포함, 파일 finally 블록에서 닫기 → LLM이 100% 지킬 거라 믿으면 안 됨

중요

> AGENTS.md에 "인젝션 공격을 막아라"고 써놓거나 Claude Skill에 문자열 이스케이프 방법을 정의해놔도, LLM의 확률적 본성 때문에 모든 문자열이 반드시 sanitize된다는 결정론적 확신은 얻을 수 없음. 더 나은 프롬프팅이 LLM의 근본적 한계를 바꿀 수는 없다는 것.

해법: 코드로 코드를 검사하라

  • 구체적 방법들을 제시함:
    • 타입 시스템 활용: UserStringSanitizedString 타입을 분리해서 컴파일러가 강제하게 만들기
    • 커스텀 린트: 네이밍 컨벤션이나 레거시 라이브러리 사용 금지를 자동 검사
    • 코드 스캔 유닛 테스트: 승인된 라이브러리만 사용되는지 코드를 스캔
  • 이런 도구를 만드는 것 자체가 "한 번만 하면 되는 일"이라 LLM한테 시키기에 딱 좋다는 게 결론. LLM에게 규칙을 따르라고 하지 말고, 규칙을 검사하는 프로그램을 만들라고 시키고, 그걸 빌드 파이프라인에 넣어라
  • 저자 본인은 커밋 전에 모든 코드를 한 줄씩 리뷰한다고 하면서도, 모든 사람이 그러지는 않는다는 걸 인정함. 그래서 더더욱 결정론적 검증 도구가 필요하다는 논지

LLM 시대에 결정론적 도구의 가치가 오히려 올라간다는 역설적이지만 설득력 있는 주장. 시니어 개발자라면 공감할 포인트가 많음.

댓글

댓글

댓글을 불러오는 중...

general

존 카맥이 돌아본 초기 id 소프트웨어의 실수들

존 카맥이 퀘이크 개발 당시의 기술적 과욕, 팀 운영, 지분 구조 문제를 직접 돌아봤다. 퀘이크 자체는 엄청난 성취였지만, 그 과정에서 회사와 사람들에게 너무 큰 부담을 줬다는 반성에 가깝다.

general

정부, 공공부문을 ‘AI 민주정부’로 바꾸겠다는 전략 공개

행정안전부가 전자정부의 날 행사에서 공공 인공지능 전환 전략인 ‘세계 최고의 AI 민주정부 실현 전략’을 발표했다. 핵심은 행정 효율화에 그치지 않고 국민 의견 수렴, 정책 참여, 행정 역량 강화를 AI로 밀어보겠다는 구상이다.

general

워드 빨간 밑줄을 만든 토니 크루거를 기억하며

마이크로소프트 워드의 빨간 맞춤법 밑줄과 초록 문법 밑줄을 처음 만든 개발자 토니 크루거를 기리는 글이다. 예전에는 사용자가 직접 맞춤법 검사를 실행하고 기다려야 했지만, 토니는 이 기능을 백그라운드에서 덜 거슬리게 만들고 오류를 즉시 화면에 표시하는 방식으로 바꿨다. 지금은 거의 모든 문서 편집기와 개발 도구에 비슷한 표시가 들어갔다는 점에서, 조용하지만 엄청나게 널리 퍼진 사용자 경험 개선 사례다.

general

삼성전자, AI 모듈러 홈 3년 안에 1만 채 팔겠다고 선언

삼성전자가 공장에서 80% 이상 제작되는 AI 모듈러 홈을 3년간 누적 1만 채 판매하겠다는 목표를 밝혔다. 스마트싱스 기반 보안, 화재·누수 알림, 에너지 절감, 방문자 맞이 자동화까지 주거 솔루션을 패키지로 묶는 전략이다.

general

중기부, 딥테크 7개 팀에 예비연구 티켓 줬다

중기부가 생태계혁신형 딥테크 챌린지 프로젝트 예비연구팀 7곳을 출범시켰다. 206개 컨소시엄 중 7개가 뽑혀 41대 1 경쟁률을 통과했고, 최종 5개 과제에는 4년간 최대 200억 원의 연구개발 지원이 붙는다.