cargo-crev에 추가된 LLM 보조 코드 리뷰 기능의 배경, 사용 방법, 동작 방식, 그리고 효과를 소개합니다.
2026-04-12·5분·
목차
최근에는 널리 알려진 패키지 악용 사례들에 자극받아 소프트웨어 공급망 보안에 대한 이야기가 많이 오가고 있습니다.
그런데 이와 관련해 전할 만한 소식이 있습니다. cargo-crev가 이제 LLM 보조 코드 리뷰를 지원합니다. 한 번 써보세요!
자세한 정보와 배경은 아래에서 이어집니다.
저는 2018년에 Crev 작업을 시작했습니다. 아이디어는 간단했습니다. 우리 각자(개발자)가 의존성 중 적어도 일부를 리뷰하고, 그런 리뷰를 신뢰의 거미줄(Web of Trust)의 도움으로 서로 공유하고 배포할 수 있다면, 생태계 전반에 걸쳐 좋은 리뷰 커버리지를 확보하고, 공급망에 대한 신뢰를 더 높이며, 상위 프로젝트에 문제를 보고하고, 오픈 소스 생태계의 전반적인 건강성을 개선할 수 있으리라는 것이었습니다.
cargo-crev는 제가 가장 중요하게 생각하던 언어 생태계인 Rust를 위해 그런 시스템을 구현하려는 시도였습니다.
제가 이렇게 말해도 된다면, 기술적인 수준에서는 달성된 UX와 흐름에 만족합니다. 하지만 2020년 무렵 저는 이 프로젝트에 대한 열의를 잃었습니다.
왜였을까요? cargo-crev가 실제로 얼마나 잘 동작하든, 이 아이디어를 온전히 실현하는 데 가장 큰 장애물은 개발자들의 시간 부족이라는 점이 분명해졌기 때문입니다.
코드를 리뷰하는 일은, 설령 피상적으로만 하더라도, 엄청난 노력이 들고 매우 오랜 시간이 걸립니다. 게다가 실제로 새로운 무언가를 만드는 일, 즉 코드를 작성하는 일만큼 만족스럽지도 않습니다.
오픈 소스 커뮤니티는 이미 코드 유지보수만으로도 과중한 부담을 지고 있었습니다. 공급망을 안전하게 만들기 위해 또 하나의 무급 책임을 개발자들에게 떠맡기자는 것은 지나친 요구였습니다.
불과 몇 주 전, 저는 새로운 LLM 모델들이 만만치 않은 보안 문제를 찾아낸다는 몇몇 글을 읽고 있었습니다. 또 Linux 커널과 curl 개발자들이, 예전에는 대부분 가치 없는 허접한 보안 보고서의 홍수를 두고 불평했지만, 이제는 실제로 가치 있는 AI 보조 버그 및 보안 보고서를 받는 경향이 있다고 인정하는 내용도 보았습니다. 그러다 cargo-crev가 떠올랐고, 바로 제가 이 프로젝트를 의심하게 만들었던 그 공백을 AI가 실제로 메울 수 있겠다는 생각이 들었습니다.
저는 LLM을 과장해서 띄우려는 것이 아닙니다. 하지만 사실은 이렇습니다. 개발자들 스스로는 시간이 없어 하지 못하는 일, 즉 대량으로 수행해야 하는 90/10 보안 스캐닝을 LLM은 해낼 수 있습니다. 그리고 이는 다른 방식으로는 자동화하기 꽤 어려운 일이었습니다.
LLM은 https://crates.io 에 게시된 코드 버전이 git에 게시된 코드와 일치하는지 쉽게, 그리고 신뢰할 만하게 확인할 수 있습니다.
LLM은 build.rs와 나머지 코드를 쉽게 훑어보며 뭔가 어색하거나 제자리에 있지 않은 것이 있는지 살펴볼 수 있습니다.
예를 들어 단위를 포맷하는 것이 목적이었던 패키지에 키 탈취형 악성코드를 숨기는 일은 실제로 매우 어렵습니다.
특히 Rust에서는 잘못되었거나 어울리지 않는 일을 하려 하면 많은 잡음이 생기기 때문에, 그런 코드는 LLM 리뷰어에게조차도 눈에 띄기 쉽습니다.
이것이 만능 해결책은 아닐지 몰라도, 아무것도 하지 않는 것보다는 분명 낫습니다.
참고: 초기 릴리스에서 cargo-crev는 Claude Code 에이전트만 지원합니다. 다른 코딩 에이전트 지원을 추가하는 데 관심이 있다면 비교적 쉬울 것입니다. 대부분의 뼈대 작업은 이미 되어 있습니다. 편하게 이야기 나누고 PR을 보내 주세요.
버전 0.27부터 cargo-crev에는 내장 리뷰 루프가 있습니다.
cargo crev ai review-loop --iterations 10
이 명령은 에이전트를 10번 시작하며, 매번 하나의 의존성을 선택해 리뷰하게 합니다.
에이전트는 모든 리뷰를 편리하게 검토하고 서명하는 데 사용할 수 있는 단일 셸 스크립트를 생성하고 갱신합니다.
위 방식은 표준적인 대량 리뷰 흐름을 위한 것이지만, 내장된 핵심 에이전트 리뷰 기능 자체는 다음 명령의 출력으로도 사용할 수 있습니다.
cargo crev ai skill review
그리고 누구나 이를 수정하거나 자신만의 LLM 보조 워크플로를 구축하기 쉬울 것입니다.
핵심적인 변화는 이제 Crev의 리뷰에 리뷰에 LLM이 사용되었음을 나타내는 필드가 추가되었다는 점입니다.
나머지는 단지 LLM 리뷰를 처음부터 끝까지 편리하게 작성할 수 있도록 하는 비교적 사소한 기능들입니다.
LLM에 회의적인 사람들을 위해, LLM이 생성한 리뷰를 무시할 수 있는 옵션은 적절한 곳에 이미 추가되었고 앞으로도 추가될 예정입니다. 그런 리뷰를 신뢰하지 않는다면 그냥 무시하셔도 됩니다. 저는 괜찮습니다.
이 기능을 개발하고 직접 테스트하는 동안 저는 꽤 많은 LLM 보조 리뷰를 작성했습니다. 직접 판단해 보세요.
제게는 이것들이 유용하다고 볼 수 있는 기준을 충족합니다. 그리고 Claude 구독의 남는 여력을, 제가 그렇지 않았다면 스스로는 할 수 없었을 어떤 일로 바꿔 주었습니다.
이것은 cargo-crev에서 AI를 활용하려는 초기 시도에 불과합니다. 여전히 개선하고 확장할 점이 많을 수 있지만, 어디선가는 시작해야 합니다.
이 아이디어가 마음에 들고 가능성이 있다고 느껴진다면, 직접 써 보고, 피드백을 주시고, 개선 사항을 제출해 주시길 권합니다.