Bend, 증명으로 AI 코딩 실수를 막고 GPU까지 쓰는 언어
Bend는 AI가 작성한 코드에서 발생할 수 있는 실수를 수학적 증명으로 걸러내는 것을 목표로 하는 새 프로그래밍 언어다. C에 가까운 실행 속도, CUDA 기반 병렬성, Lean 계열의 증명 시스템을 한데 묶어 AI 에이전트가 만든 코드를 사람이 전부 읽지 않아도 검증할 수 있게 하려는 시도다. 자연어 프롬프트의 모호함을 줄이고, 구현이 의도한 규칙을 지켰는지 기계적으로 확인하는 데 초점을 둔다.
Bend는 네이티브 코드로 컴파일된다. 단일 코어에서는 C에 거의 맞먹는 성능을 내고, 같은 바이너리가 16개 코어나 GPU에서도 실행되며 최대 100배까지 빨라진다고 설명한다. 개발자가 스레드, 락, GPU 커널을 직접 다루지 않아도 작업을 둘로 나누면 런타임이 가용한 코어에 호출을 분산했다가 다시 합친다. pow2 예제는 4,096개의 GPU 코어에서 돌아간다.
핵심 기능은 LAWS.bend다. 절대 깨지면 안 되는 규칙을 법으로 선언해 두면, AI가 그 법을 위반하는 변경을 커밋하지 못하도록 막는다. 게임 예시에서는 보드가 감싸지도록(wrap around) 수정해 달라는 요청에 대해, 승리로 이어지는 수순이 없어야 한다는 법을 어기는 패치는 병합되지 않는다. AI는 벽을 만들고 법이 유지된다는 증명을 완성할 때까지 재시도해야 하며, 결과적으로 버그가 병합되는 일이 수학적으로 불가능해진다는 주장이다.
Bend의 타입 검사기는 Lean이나 Rocq처럼 증명 검사기 역할을 한다. 다만 중간 규모 코드베이스에서 분 단위가 걸릴 수 있는 기존 도구와 달리, Bend는 최대 1초 안에 검사를 끝낸다고 한다. 그래서 AI 에이전트가 변경할 때마다 곧바로 검증할 수 있다. LAWS.bend는 증명으로 뒷받침되는 AGENTS.md에 비유되며, 실수하지 말라는 지시를 타입 검사 수준으로 끌어올리는 셈이다.
사용 흐름도 단순하다. 설치 스크립트를 실행한 뒤 에이전트에게 Bend를 쓰라고 지시하고, LAWS.bend에 중요한 규칙을 모아 두며, 커밋 전에 bend PROOF.bend를 돌리게 하는 방식이다. 가능한 코드는 모두 병렬화하도록 요청하라고 권한다. 절대 깨지면 안 되는 대상에 대해 법을 작성하게 하고, 빠르게 돌리고 싶은 부분은 병렬화하게 하라는 조언도 함께 제시한다.
배경에는 AI 코딩 에이전트의 확산과, 머지않아 인간이 코드를 직접 쓰고 읽지 않을 수 있다는 전제가 있다. 사람이 모든 코드를 읽지 않고도 AI가 만든 소프트웨어를 받아들이는 상황이 늘면서, 자연어 요구사항만으로는 정확성을 보장하기 어려워졌다. 테스트와 정적 타입, 형식 검증은 각각 강점이 있지만 AI가 매 변경마다 빠르게 확인하기에는 부담이 있다. Bend는 의도를 법으로 표현하고 증명으로 검사하는 방식을 통해 이 간극을 노린다.
한국 개발자에게 의미가 있는 부분은 커밋 전 검증 자동화다. AI 에이전트가 만든 변경을 그대로 병합하는 대신, 규칙 위반을 증명 검사로 차단하는 파이프라인을 실험해 볼 수 있다. 병렬화가 필요한 연산을 CPU와 GPU로 확장할 때 스레드와 커널을 직접 작성하지 않아도 된다는 점도 백엔드 워크로드에서 매력적이다. 다만 기존 언어 생태계, 라이브러리, 디버깅 도구와의 통합 수준은 별도로 확인해야 한다.
Bend는 아직 젊은 프로젝트다. 버그가 있을 수 있으니 문제가 생기면 이슈를 열어 달라고 요청하며, Linux와 macOS의 백엔드 환경에서 가장 잘 동작한다고 안내한다. 전체 언어 안내는 GUIDE.md에 있고 bend guide 명령으로 볼 수 있다. 이론적 토대는 affine dependent type theory를 다룬 BendTT 논문, CPU와 GPU를 위한 병렬 런타임은 BendRT 논문으로 정리되어 있다. 도입 전에는 증명 검사 범위와 성능 수치가 자신의 워크로드에서도 재현되는지 직접 검증하는 편이 좋다.
관련 글
- AI 없이 한 달, 한 개발자가 고백한 AI 코딩 에이전트의 대가오픈소스 프로젝트에서 AI 기여를 금지한 개발자가 정작 직장에서는 AI 코딩 에이전트에 깊이 빠져 있었다고 고백했다. 여러 에이전트를 병렬로 돌린 뒤 통제력과 코드 이해도를 잃고, 리뷰 병목과 피로만 커졌다는 솔직한 기록이다.
- AI가 만든 나비에-스토크스 증명, '무엇이 검증됐는지'까지 기록하는 데이터베이스 실험OpenAI가 공개한 나비에-스토크스 방정식 유한시간 붕괴 증명과 Lean 형식화를 8Braid가 8DB 연구 워크로드로 재현·검증했다. 증명 근거가 철회될 때 어떤 주장이 흔들리고 어떤 주장이 남는지를 데이터베이스가 추적하는 실험이다.
- 미군, AI가 지어낸 정보보고서 활용할 뻔…환각이 작전 리스크가 된 순간미군이 AI가 생성한 정보보고서를 실제로 활용할 뻔한 사건이 CNN 보도를 통해 알려졌다. 고위험 의사결정 파이프라인에 LLM을 넣을 때 환각을 어떻게 검증하고 차단할지, 근거 인용과 사람 검토를 포함한 통제 설계가 개발자 과제로 남는다.
- AI는 코드를 대신 써주지만 유지보수성은 대신 길러주지 않는다소프트웨어 엔지니어 Alexandru Nedelcu가 AI에 의존한 코딩이 유지보수성을 갉아먹는다고 주장했다. 유지보수성은 즉시 측정할 지표가 없어 AI가 학습할 수 없고, 코드를 읽고 쓰는 일을 AI에 넘긴 개발자는 숙련에 도달하지 못한다는 경고다.
- AI가 쏟아내는 코드의 '슬롭', 숫자로 잴 수 있을까Earendil의 Sebastian이 LLM이 생성한 코드의 품질 저하를 정량화하는 지표를 정리했다. SlopCodeBench의 verbosity·erosion 지표는 에이전트 코드가 사람 코드보다 약 2배 verbose하고 침식됐음을 보여준다.