본문으로 건너뛰기
0
r/jeffnews HN 약 4분

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

general

요약

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

기사 전체 정리

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

  • 핵심 주장은 간단명료함: 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+Lean 조합으로 에르되시 미해결 문제를 풀었던 사례 인용
  • 한 번만 하면 되는 일 vs 반복 정책을 구분하는 것이 핵심
  • AGENTS.md나 프롬프트로는 LLM의 확률적 본성을 극복할 수 없음
  • 타입 시스템, 커스텀 린트, 코드 스캔 테스트를 빌드 체인에 넣어라

인사이트

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

댓글

댓글

댓글을 불러오는 중...

general

버티컬 SaaS 만들려고 해충방제 기사 취직했던 썰.txt

SaaS 창업 아이디어 검증하려고 실제로 해충방제 업체에 취직해버린 미친 사람 등장. 13일 만에 자격증 따고 21일 만에 $30k ARR 클로징하는 레전드 행보. 결국 직접 회사 인수해서 처음부터 만들겠다는 결론.

general

Apple, 버그 안 고치고 '확인해봐' 요청 후 닫아버리는 거 실화?

개발자가 3년 전에 신고한 버그를 Apple이 묵묵부답으로 방치하다가, 갑자기 베타 버전에서 '버그 고쳐졌는지 확인해줘'라고 요청함. 근데 실제론 안 고쳤고, 확인 안 하면 그냥 닫겠다고 협박한 레전드 상황. Hacker News 터지고 나서야 Apple이 반응했는데 그것도 별 쓸모없는 sysdiagnose 요청임 ㅋㅋ

general

미국의 이란 전쟁, 왜 처음부터 망한 도박이었나 - 군사사학자 분석

군사사학자 브렛 데버로우가 미국의 이란 전쟁을 전략적 관점에서 분석했는데 결론은 '개망한 도박'임. 초기 정권붕괴 시나리오는 실패했고, 호르무즈 해협이 사실상 봉쇄되면서 미국은 진퇴양난에 빠진 상황. 전술적으론 이기고 있지만 전략적으론 얻은 게 없다는 게 핵심 주장임.

general

충돌 사고 테슬라 부품으로 내 책상 위에 Model 3 컴퓨터 올려놓기 ㄷㄷ

테슬라 버그바운티 참여하려고 eBay에서 사고 차량 부품 긁어모아서 Model 3 MCU+터치스크린을 책상 위에서 부팅시키는 데 성공한 개발자 이야기임. 케이블 하나 구하려다 PCB 태워먹고, 수리하고, 결국 차량 전체 배선 하네스까지 구매하는 험난한 여정 ㅋㅋ

general

AI 코딩 에이전트 때문에 소프트웨어가 개판 됐는데 아무도 모름

코딩 에이전트 등장 1년 만에 소프트웨어 품질이 심각하게 떨어지고 있다는 경고. 에이전트한테 다 맡기다 보니 코드베이스가 감당 안 되는 복잡성 덩어리로 변해가는 중. 필자는 '속도 좀 줄이고 인간이 다시 주도권 잡아야 함'이라고 주장함.