요약
- SQLite 공식 변경 기록은 2001년 9월 20일 2.0-alpha-2에서 SQLus라는 이름을 버리고, pager와 B-tree를 유일한 백엔드로 되돌리고, Dbbe 및 GDBM·메모리 드라이버를 제거하고, 모든 코드의 저작권을 포기했다고 적었다.
- 공식 버전 번호 설명에 따르면 1.0부터 1.0.32까지는 GDBM을, 2.0.0부터 2.8.17까지는 자체 B-tree를 썼다. 당시 맨 앞 버전 숫자는 데이터베이스 파일 형식을 가리켰다.
복제할 권리와 배포되는 기계
퍼블릭 도메인이라는 선언은 강하다. SQLite의 현재 저작권 안내는 배포되는 코드를 복제하고 수정하고 컴파일하고 판매하고 다시 나눌 수 있다고 설명한다. 하지만 그 권리는 프로젝트가 과거의 저장 드라이버를 계속 시험하고 배포하겠다는 약속이 아니다. 9월 20일 기록은 법적 결정을 기술적 결정과 같은 항목에 놓았을 뿐, 하나가 다른 하나를 낳았다고 설명하지 않는다.
이전 구조가 가진 한계는 이미 드러나 있었다. 2001년 4월 4일 1.0.28은 GDBM 백엔드에서 제한적인 트랜잭션을 도입했다. 테이블 잠금은 있었으나 롤백과 원자적 커밋은 아직 없었다. SQL 명령에 ‘트랜잭션’이라는 이름을 붙이는 일과 장애 뒤 데이터를 원상복구하는 일은 다른 문제였다. 4월 15일 pager가 추가됐지만 실제로 사용되지는 않았다고 프로젝트는 명시했다.
7월에는 설계 방향이 흔들렸다. 1.0.32는 pager와 B-tree를 제거하고, 나중에 만들 SQL 서버 라이브러리 SQLus에 쓰겠다고 했다. 두 달 뒤 SQLus로 이름을 바꾸려던 계획은 접혔다. SQLite라는 이름은 남았고 두 구성 요소가 돌아와 유일한 백엔드가 됐다. Dbbe 추상 계층과 GDBM·메모리 드라이버는 사라졌다. 내부 토론의 이유를 꾸며낼 필요는 없다. 릴리스 기록만으로 실제 배포품의 경계가 어떻게 바뀌었는지 충분히 알 수 있다.
2.0의 첫 숫자는 파일에 새겨졌다
버전 번호 문서는 당시 첫 숫자가 파일 형식을 뜻했다고 설명한다. 1에서 2로 바뀐 것은 포장지를 갈아 끼운 일이 아니다. 2.x의 자체 B-tree는 텍스트 키와 데이터를 다뤘다. 바이너리 데이터와 유니코드에 대한 완전한 지원은 훗날 3.x의 특성이다. 지금의 SQLite 기능을 2001년으로 옮겨 적으면 당시 사용자에게 가장 중요한 형식 차이를 놓친다.
20일의 발표도 정식 2.0.0이 아닌 alpha-2였다. 9월 27일 alpha-3에서는 롤백과 잠금 동작을 고쳤고 파일 형식을 alpha-1의 것으로 되돌렸다. 9월 28일 2.0.0은 Linux와 Windows용 바이너리를 자동 빌드해 웹사이트에 올리기 시작했다. 권리 선언 뒤에도 실제 설치할 제품의 동작과 배포를 정리하는 일이 이어졌다.
누구나 코드를 가져가 다른 백엔드를 만드는 파생판을 운영할 수 있었다. 그러나 그 인터페이스를 만들고 테스트하고 유지할 비용까지 퍼블릭 도메인이 대신 내주지는 않는다. SQLite는 복제의 문턱을 낮추면서 공식 구현의 방향을 선명하게 정했다. 코드가 열린 날, 데이터가 지나갈 길은 오히려 하나가 됐다.
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
전략 서클 전용
전략 서클
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
전략 서클 가입Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





