실패한 실험: Git 기반 코드 리뷰 도구

2025-08-21
실패한 실험: Git 기반 코드 리뷰 도구

저자는 GitHub의 코드 리뷰 프로세스를 개선하기 위해 `git-review`라는 도구를 실험했습니다. 핵심 아이디어는 코드 리뷰를 저장소에 저장된 커밋으로 취급하고, 코드 내 주석을 사용하여 리뷰하는 것이었습니다. 그러나 이 실험은 성공적이지 못했습니다. 코드에 직접 주석을 추가하는 것은 매우 효율적이었지만, 리뷰 중인 코드를 수정하는 것은 복잡했고, 특히 충돌 해결과 `git push --force-with-lease` 사용으로 인한 마찰이 문제였습니다. 저자는 결국 프로젝트를 포기했지만, 코드 내 리뷰라는 핵심 아이디어는 가치 있다고 믿으며, Git 개선을 통한 코드 리뷰의 미래 가능성에 기대를 걸고 있습니다.

더 보기
개발

TigerBeetle의 숨겨진 버그: 정교한 퍼징이 실패한 이유

2025-06-06
TigerBeetle의 숨겨진 버그: 정교한 퍼징이 실패한 이유

TigerBeetle팀은 Jepsen을 사용하여 쿼리 엔진의 버그를 발견했습니다. 놀랍게도 이 구성 요소는 이전에 4개의 개별 퍼저에 의해 광범위하게 테스트되었습니다. 조사 결과 퍼저의 입력 생성 전략에 사각지대가 있어 특정 쿼리 조합이 누락되었음이 밝혀졌습니다. 이는 퍼저가 초기화 중에 쿼리를 미리 등록했기 때문이며, 이로 인해 의도치 않게 입력 공간의 다양성이 제한되었습니다. 더욱 무작위적인 입력을 생성하고 더 정확한 검증을 수행하도록 퍼저를 개선함으로써 버그를 재현하고 수정했습니다. 이 사례는 정교한 퍼징 전략에도 사각지대가 있을 수 있으며, 포괄적인 소프트웨어 품질 보증을 위해서는 여러 가지 테스트 방법을 결합해야 함을 보여줍니다.

더 보기
개발

TigerBeetle 문서 사이트 재구축: Docusaurus에서 Zig 기반 솔루션으로 전환

2025-04-10
TigerBeetle 문서 사이트 재구축: Docusaurus에서 Zig 기반 솔루션으로 전환

TigerBeetle 팀은 Node.js 기반의 Docusaurus를 대신하여 경량의 빠른 Zig 기반 정적 사이트 생성기를 사용하여 문서 사이트를 처음부터 다시 구축했습니다. Zig의 빌드 시스템과 Pandoc을 활용하여 효율적인 Markdown 파싱과 HTML 생성을 달성했습니다. 새로운 사이트는 향상된 사용자 경험, 크게 줄어든 용량, 그리고 재미있는 이스터 에그 게임을 제공합니다. 이러한 재구축은 TigerBeetle의 기술적 우수성과 효율적인 접근 방식에 대한 헌신을 보여줍니다.

더 보기

열거형 배열: 효율적인 데이터 처리를 위한 새로운 데이터 구조

2024-12-21
열거형 배열: 효율적인 데이터 처리를 위한 새로운 데이터 구조

이 글에서는 일반적인 "구조체 배열"(SoA)과 유사하지만 핵심에 열거형을 사용하는 "열거형 배열"(EoA)이라는 데이터 구조를 소개합니다. EoA는 여러 열거형 값을 배열로 묶고, 단일 태그로 배열의 유형을 식별하여 메모리 사용량과 분기 예측 오버헤드를 줄입니다. 이를 통해 데이터 처리 효율이 향상되고, 특히 SIMD 최적화에 효과적입니다. 이 글에서는 데이터베이스 시스템 TigerBeetle을 예로 들어 EoA가 배치 처리에서 어떻게 효과를 발휘하고, 제어 플레인과 데이터 플레인을 효율적으로 분리하여 성능을 크게 향상시키는지 설명합니다.

더 보기