- Zigbook이 공개한 Zig 온라인 플레이그라운드가 Zigtools의 기존 프로젝트와 기능·코드 구조가 동일하게 나타남
- Zigtools 측은 Zigbook의 WASM 바이너리(
zig.wasm,zls.wasm)가 바이트 단위로 동일하며, JavaScript 코드 일부도 직접 복사된 흔적이 있다고 확인 - MIT 라이선스 조건에 따라 출처와 저작권 고지를 포함해야 하지만, Zigbook은 라이선스 표기를 누락하고 자체 코드처럼 게시함
- Zigtools가 라이선스 수정 PR을 제출했으나 Zigbook이 이를 즉시 닫고 설명을 삭제, 수정 의사를 보이지 않음
- Zigtools는 이번 사건을 계기로 플레이그라운드 기능 확장과 커뮤니티 협업 강화를 추진하며, Zigbook 사용을 피할 것을 권고함
Zigtools와 프로젝트 배경
- Zigtools는 Zig 언어 커뮤니티 지원을 위해 설립된 조직으로, ZLS, lsp-kit, Zigtools Playground, vscode-zig 확장 등을 개발
- Playground는 브라우저 기반 WASM 클라이언트 구조로, 서버 비용 없이 오프라인 실행과 코드 프라이버시를 제공
Zigbook의 표절 의혹
- Zigbook은 “zero AI”와 “** project-based**” 학습 구조를 내세운 Zig 학습 리소스로 공개됨
- 그러나 책 내용, 예제, 웹사이트 구성 등이 LLM 생성물 수준의 품질이며, 가짜 계정과 반응이 동원된 것으로 지적됨
- 이후 Zigbook이 “high-voltage beta”라는 이름으로 Zig 플레이그라운드 기능을 추가했는데, Zigtools Playground와 형태와 기능이 매우 유사함
동일한 WASM 및 코드 복제
- Zigtools는 Zigbook의 WASM 파일을 분석한 결과, 두 파일(
zig.wasm,zls.wasm)이 자신들의 파일과 바이트 단위로 동일함을 확인-
zls.wasm의 SHA256 해시:3a63e5092e8f90172716977af5c88b4f49e546f730f25e9bafb47f4ac9a2ee1d -
zig.wasm의 SHA256 해시:d3fe6b8a6b1db84a914eaa1f4a80ca5dcfd3b0948a35f2b1e78432a392eace96 - 원본과 표절본은 Internet Archive 링크를 통해 보존됨
-
- JavaScript 코드 역시 데이터 전달 구조와 로깅 부분이 동일, 일부는 LLM 변형 흔적이 있으나 특정 구문이 완전히 일치함
- 예시로
exit with exit code ${exitCode}문자열이 그대로 복제됨
- 예시로
라이선스 위반과 대응
- Zigtools Playground와 Zig는 MIT 라이선스로 배포되지만, Zigbook은 저작권 고지와 라이선스 문구를 포함하지 않음
- Zigtools는 이를 수정하기 위해 라이선스 추가 PR을 제출했으나, Zigbook이 PR을 즉시 닫고 설명을 삭제함
- PR 내용에는 Zigbook이 Zigtools Playground의 코드와 WASM을 사용했음을 명시하고, 라이선스 고지를 추가한 수정안이 포함되어 있었음
Zigtools의 향후 계획
- 이번 사건을 계기로 Zigtools는 플레이그라운드 개선과 커뮤니티 협력 확대를 추진
- 멀티파일 지원을 추가해 복잡한 Zig 프로젝트 실행 가능
- Ziglings 등 학습 자료와의 통합을 목표로 함
- DWARF 디버그 정보 기반 스택 트레이스 지원도 계획 중
결론 및 커뮤니티 권고
- Zigtools는 Zigbook 사용을 피할 것을 커뮤니티에 권고
- Zig 학습을 원하는 사용자는 공식 Zig Learn 페이지, Ziglings, Karl Seguin의 Learning Zig 등 검증된 자료를 이용할 것을 추천
- 또한 ZLS 유지보수 기금 모금을 진행 중이며, OpenCollective와 GitHub Sponsors를 통해 후원을 받고 있음