정보기술 · 인공지능 ·
오픈소스 프로젝트에 '신뢰 보증' 시스템 도입...AI 시대 저품질 기여 걸러낸다
Vouch 시스템, 명시적 보증 없이는 코드 기여 불가능...신뢰 네트워크 구축 가능
미첼 하시모토가 개발한 오픈소스 신뢰 관리 시스템 Vouch가 공개됐다. AI 도구로 인한 저품질 기여 증가 문제에 대응한다.
[한국정보기술신문] 오픈소스 소프트웨어 개발자 미첼 하시모토가 오픈소스 프로젝트의 기여자 신뢰 관리를 위한 새로운 시스템 Vouch를 공개했다. 이 시스템은 기여자가 프로젝트에 참여하기 전에 기존 신뢰받는 구성원의 명시적인 보증을 받도록 요구하는 방식으로 작동한다.
Vouch는 깃허브에서 MIT 라이선스로 공개되었으며, 현재 터미널 에뮬레이터 프로젝트인 고스티(Ghostty)에서 실험적으로 운영되고 있다. 하시모토는 이 시스템을 개발한 배경에 대해 AI 도구의 발전으로 인해 코드베이스에 대한 진정한 이해 없이도 그럴듯해 보이는 저품질 기여를 손쉽게 만들 수 있게 되었다고 설명했다.
AI 도구로 인한 오픈소스 생태계 변화
전통적으로 오픈소스는 신뢰와 검증 시스템 위에서 작동해왔다. 과거에는 코드베이스를 이해하고 변경사항을 구현한 뒤 검토를 위해 제출하는 데 필요한 노력이 많은 저품질 기여를 자연스럽게 걸러냈다. 하시모토는 20년 넘게 이러한 방식이 자신의 프로젝트와 대부분의 다른 프로젝트에 충분했다고 밝혔다.
그러나 상황이 변했다. AI 도구의 등장으로 기여자들은 최소한의 진입 장벽만으로 변경사항을 제출할 수 있게 되었고, 더 이상 그 자체만으로는 신뢰할 수 없게 되었다. 하시모토는 오픈소스가 여전히 신뢰를 기반으로 작동하며, 모든 프로젝트에는 명확한 신뢰받는 개인 그룹과 더 큰 규모의 아마도 신뢰할 수 있는 개인 그룹이 존재한다고 강조했다. 이에 따라 신뢰받는 개인이 다른 사람을 보증할 수 있고, 보증받은 개인이 기여할 수 있는 명시적인 신뢰 모델로 전환하자는 것이 Vouch의 핵심 아이디어다.
간단한 파일 형식과 깃허브 통합
Vouch는 단일 평면 파일을 사용하여 보증 목록을 관리한다. 이 파일은 표준 POSIX 도구와 외부 라이브러리 없이도 모든 프로그래밍 언어로 간단하게 파싱할 수 있는 최소한의 형식을 사용한다. 파일 형식은 Trustdown의 약자인 td 확장자를 사용하며, 각 줄에 하나의 사용자명을 기록한다.
보증 파일 형식은 해시 기호로 시작하는 주석을 지원하며, 플랫폼 접두사를 선택적으로 지정할 수 있다. 예를 들어 github:mitchellh와 같은 형식이다. 사용자를 거부하려면 마이너스 기호를 접두사로 추가하고, 선택적으로 거부 이유를 추가할 수 있다. 모든 항목은 알파벳 순으로 정렬되어 관리된다.
깃허브 통합을 위해 Vouch는 여러 깃허브 Actions를 제공한다. check-pr 액션은 풀 리퀘스트 작성자가 보증되었는지 확인하고, 봇과 쓰기 권한이 있는 협력자는 자동으로 허용된다. 보증되지 않았거나 거부된 사용자의 풀 리퀘스트를 자동으로 닫을 수도 있다. manage-by-discussion과 manage-by-issue 액션은 협력자가 토론이나 이슈 댓글을 통해 사용자를 보증하거나 거부할 수 있게 한다.
명령줄 인터페이스와 신뢰 네트워크
Vouch는 Nushell 모듈로 구현된 명령줄 인터페이스를 제공한다. 외부 종속성 없이 Nushell만 있으면 실행할 수 있다. 사용자는 vouch check 명령으로 특정 사용자의 보증 상태를 확인할 수 있으며, 종료 코드로 보증됨, 거부됨, 알 수 없음을 구분한다. vouch add와 vouch denounce 명령으로 사용자를 추가하거나 거부할 수 있다.
깃허브 통합 명령은 GITHUB_TOKEN 환경 변수를 필요로 하며, 설정되지 않은 경우 gh 명령어가 사용 가능하면 해당 토큰을 사용한다. vouch gh-check-pr 명령은 풀 리퀘스트 작성자의 상태를 확인하고, 필요시 자동으로 닫을 수 있다. vouch gh-manage-by-issue 명령은 이슈 댓글을 통한 기여자 상태 관리를 지원한다.
Vouch의 주목할 만한 특징 중 하나는 신뢰 네트워크를 형성할 수 있다는 점이다. Vouch는 다른 프로젝트의 보증 또는 거부 사용자 목록을 읽도록 구성할 수 있다. 이를 통해 공유된 가치를 가진 프로젝트들이 서로의 신뢰 결정을 공유하고 생태계 전반에 걸쳐 더 크고 포괄적인 신뢰 네트워크를 만들 수 있다. 한 프로젝트에서 이미 신뢰할 수 있는 것으로 입증된 사용자는 다른 프로젝트에서도 자동으로 신뢰할 수 있는 것으로 간주될 수 있다.
프로젝트별 맞춤형 정책 가능
누가 그리고 어떻게 보증되거나 거부되는지는 전적으로 시스템을 통합하는 프로젝트에 달려 있다. 또한 보증되거나 거부된 사람이 겪는 결과도 프로젝트에서 완전히 제어할 수 있다. 각 프로젝트는 자신의 커뮤니티에 적합한 정책을 구현할 수 있다는 것이 Vouch의 설계 철학이다.
하시모토는 Vouch가 실험적인 시스템이며 고스티에서의 사용을 통해 경험과 피드백을 바탕으로 계속 개선해 나갈 것이라고 밝혔다. 라이브러리 기능도 제공되어 스크립팅이 가능하며, 모듈은 구조화된 테이블로 디코딩하고 주석과 공백을 유지하면서 파일 형식으로 다시 인코딩하는 from td와 to td 명령을 내보낸다.
하시모토는 td 확장자가 Trustdown을 의미하며 Markdown에서 영감을 받은 이름이라고 설명했다. 그는 Vouch 프로젝트와 다른 소프트웨어 시스템이 서로 조율할 수 있도록 신뢰 목록에 대한 사양을 공식화할 계획이지만, Vouch 자체가 사용법을 더 안정화할 때까지는 사양을 공개하지 않을 것이라고 밝혔다.
한국정보기술신문 정보기술분과 강민규 기자 news@kitpa.org