핵심 요약
- 전 세계에서 1억 2천만 번 이상 다운로드된 유명 가짜 데이터 생성 라이브러리 'PHP Faker'의 원작자가 프로젝트 개발 중단을 공식 선언했습니다.
- 전체 다국어 팩(3MB)이 매번 다운로드되며 11톤이 넘는 탄소를 배출했다는 환경적 죄책감과 시드(Seed) 기능으로 인한 데이터 수정 불가 등 치명적인 설계 결함이 원인이었습니다.
- 작성자는 5년 넘게 PHP를 쓰지 않은 점과 저작권 침해 PR 검증의 한계, 과거 프로젝트 인계 실패 경험 등을 밝히며 공식적으로 프로젝트를 종료한다고 밝혔습니다.
요약 전 세계 수많은 웹 개발 프로젝트에서 가짜 테스트 데이터를 생성할 때 애용되던 유명 오픈소스 라이브러리 'PHP Faker'의 원작자 프랑수아 자니노토(François Zaninotto)가 프로젝트 개발 중단(Sunset)을 공식 선언했습니다.
2011년 10월 자신의 프로젝트 테스트용 데이터베이스를 채우기 위해 개발을 시작했던 Faker는 이후 450명 이상의 기여자와 70만 개가 넘는 프로젝트에 쓰이며 오픈소스 패키지 매니저(Packagist) 기준 무려 1억 2,100만 회가 넘는 다운로드를 기록하는 대형 라이브러리로 성장했습니다.
하지만 제작자는 이 엄청난 성공 뒤에 심각한 설계적 결함과 유지보수의 고통이 뒤따랐다고 고백했습니다. 우선 70개 이상의 다국어 데이터와 전체 소설 텍스트까지 포함하다 보니 라이브러리 용량이 3MB를 넘겼는데, 자동화 테스트(CI) 서버가 PR마다 이를 다운로드하면서 막대한 네트워크 트래픽을 유발했습니다. 저자는 탄소 발자국 측정 도구를 통해 Faker가 수년간 유발한 이산화탄소 배출량이 11톤에 달한다는 사실을 알고 개발자로서 기후변화에 큰 악영향을 끼쳤다는 극심한 죄책감을 느꼈다고 밝혔습니다. 실제로는 단 하나의 언어팩(약 10KB)만 필요한데도 전체 다국어 패키지를 매번 통째로 받아야 하는 구조였던 것입니다.
또한 일관된 테스트 재현을 위해 사용되던 시드(Seed) 기능 때문에 데이터를 수정하거나 오타 및 중복을 제거하면 기존 빌드가 깨져버려 데이터셋을 손볼 수 없는 치명적인 구조적 딜레마에 갇혔습니다. 여기에 수많은 기여자들이 보낸 다국어 PR 상당수가 저작권이 있는 웹사이트에서 무단 복사된 텍스트였고, 자신이 알지 못하는 외국어 데이터의 품질을 검증할 수도 없어 맹목적으로 병합하거나 저작권 문제로 닫아야 했습니다.
더불어 제작자는 본인이 이미 5년 전부터 업무에서 PHP 코드를 한 줄도 작성하지 않고 있으며, 과거 다른 오픈소스(Propel)를 타인에게 인계했다가 전면 재작성 수렁에 빠져 프로젝트가 좌초됐던 뼈아픈 경험 등을 언급하며 결국 Faker 프로젝트를 공식 종료하기로 결정했다고 전했습니다.
Sponsored · 광고