Hacker News 의견들
  • 10여 년 전 SQLite의 유지보수자가 OSCON에서 테스트 관행에 대해 발표했음
    특히 인상 깊었던 건 체크리스트(checklist) 의 힘이었음. 비행 전마다 파일럿이 사용하는 바로 그 도구임
    그는 또한 국경없는의사회(Doctors Without Borders) 사례를 언급했는데, 의료진이 서로 이름도 모르고 언어도 달라서 수술 성과가 낮았다고 함
    해결책은 간단했음 — 수술 전 체크리스트를 만들어 각자 이름과 역할을 말하게 한 것임. 이 작은 의식이 기술이 아닌 소통 개선을 통해 생존율을 높였다고 함
    관련 자료: SQLite checklist 예시

    • 반면 이런 이야기가 불필요한 관료주의를 낳는다고 생각함. 항공, MSF, SQLite의 체크리스트는 훌륭하지만, 대부분의 조직은 쓸모없는 체크리스트로 시간을 낭비함
      좋은 체크리스트와 나쁜 체크리스트의 차이에 대한 논의가 더 필요함. 수학의 아름다운 공식처럼 단순해 보이지만 발견하기는 어려운 것 같음
    • 항공 운영과 공학에서 배울 점이 많다고 느껴왔음. 이런 원칙을 군대식 리더십과 결합한 IT 조직을 상상해봄
      특히 미 육군의 FM22-100 문서를 여러 번 읽었는데, 놀라울 만큼 현대적이고 영감을 줌
      FM22-100 문서 보기
    • 좋은 체크리스트를 만드는 방법을 알고 싶다면 The Checklist Manifesto를 강력히 추천함
      책 링크
    • 대부분의 개발자들이 비프로그래밍적 단순한 일을 회피하려는 게 이해되지 않음
      나는 테스트와 CI 외에도 Markdown으로 된 배포 체크리스트를 따라감. 결과를 저장하지도 않지만, 단계별로 수행함
      이렇게 간단한 일을 왜 다른 사람들은 안 하는지 모르겠음
    • 의식이 성과를 높인다는 점이 흥미로움. 요즘 회의에서도 참가자 소개 라운드를 하면 참여도가 확실히 높아짐
      MSF 사례를 다룬 공식 페이지가 있다면 꼭 보고 싶음. 구글링으로는 찾지 못했음
  • SQLite의 테스트 관련 과거 토론들을 모아둠
    2009~2024년 HN 스레드 목록
    재게시가 1년 간격으로 반복되는 듯함

  • SQLite 같은 소프트웨어를 완벽하게 다듬는 과정이 부럽고 경이로움
    장인정신이 느껴지는 작품임

    • 사실 누구나 그렇게 할 수 있음. 천천히, 제대로 만드는 걸로 해고된 적은 없음
      시간이 지나면 품질 기준이 높아지고, 같은 노력으로 더 큰 보상을 얻게 됨
      자신이 손댄 부분을 조금이라도 더 깨끗하게 남기는 사람을 싫어하는 이는 없음
  • SQLite는 정말 훌륭한 소프트웨어임. 공식 웹사이트도 마케팅 대신 정보 중심이라 좋음
    다만 최근 HN에 공식 사이트의 페이지들이 하나씩 올라오는 게 흥미로움

    • 아마 어제 simonw의 LLM 포팅 글이 화제가 되면서 관련 링크가 다시 주목받은 듯함
    • HN에서는 이런 일이 주기적으로 반복됨. 예전엔 Haskell이 그랬고, 요즘은 Zig가 그 주기를 도는 중임
      이런 링크들을 모아두면 재밌을 것 같음
  • SQLite가 공개 소프트웨어이면서도 비공개 테스트를 사용한다는 점이 흥미로움
    오픈소스 프로젝트가 폐쇄형 테스트를 갖는 게 가능하다는 걸 이제야 깨달음
    이런 모델이 오픈코어(open-core) 와 비슷한 새로운 비즈니스 모델이 될 수도 있을 것 같음

    • 실제로 테스트 스위트가 코드보다 더 가치 있는 경우가 많음. 예를 들어 Excel 같은 소프트웨어의 수많은 엣지 케이스를 문서화하는 건 구현보다 어렵기 때문임
    • 나도 회사 프로젝트에서 비슷하게 함. GPL 이중 라이선스와 함께 테스트 및 데이터 생성기는 상용 라이선스 사용자에게만 공개함
      예시: railgunlabs/unicorn 라이선스
  • SQLite의 100% 브랜치 커버리지는 프로젝트 자체만큼이나 인상적임
    지속적으로 유지한다는 게 특히 대단함

  • 테스트가 비공개라는 점이 흥미로움. LLM 기반 코딩이 발전하는 지금, 테스트가 구현보다 중요해지는 시대가 오고 있음
    최근 simonw가 justHTML 엔진을 Python에서 JS로 거의 자동 변환한 사례를 보며 SQLite의 테스트 전략이 떠올랐음

    • 오픈소스 제품의 비즈니스 모델 관점에서 보면, 방대한 테스트 스위트는 효율적인 변경과 가치 창출의 핵심 자산이 됨
    • SQLite의 How SQLite Is Tested 문서는 말 그대로 테스트의 성서처럼 느껴짐
  • 최근 SQLite와 DuckDB 간 호환성을 고려하며 LLM과 논의했는데, 동시성 처리 측면에서는 SQLite가 더 낫다는 결론을 얻었음

  • SQLite의 테스트 문서에서 성능 회귀 테스트(performance regression) 에 대한 언급이 적은 게 의외였음
    정확성도 중요하지만, 특정 쿼리 경로에서의 성능 저하는 치명적일 수 있음

    • HFT 분야에서 일했지만, 성능 보증을 내세우는 오픈소스 프로젝트는 거의 본 적이 없음
      혹시 이런 목표를 핵심 사명으로 삼는 프로젝트가 있는지 궁금함
  • SQLite의 안정성을 보면 이상(anomaly) 테스트가 어떻게 이루어졌는지 더 알고 싶었음
    하지만 글에서는 거의 언급이 없었음. 그럼에도 불구하고 SQLite는 모든 기기에서 쓰이는 가장 견고한 소프트웨어 중 하나임

    • 테스트 스위트 접근권이 연간 15만 달러 수준이라, 내부 내용을 공개할 가능성은 낮을 것 같음