라이브러리 오류로 수백만 자바스크립트 빌드 실패

과도한 모듈화에 대한 개발자 간 논란 증폭

컴퓨팅입력 :2020/04/28 13:41

두 줄의 라이브러리 업데이트 때문에 수 백만 개 자바스크립트 프로젝트 빌드가 막히는 사태가 발생했다.

미국 지디넷은 지난 주말 한 작은 라이브러리의 수정으로 수백만개의 프로젝트에서 문제가 발생했다고 26일 보도했다.

문제를 일으킨 라이브러리는 'is-promise'다. 자바 스크립트 객체가 'promise'인지 검사하는 라이브러리로, 두 줄의 원시 소스 코드로 이뤄진 간단한 구성이다.

자바스크립트

is-promise 개발팀은 자바스크립트 표준 모듈 시스템인 ES모듈을 지원하는 is-promise v.2.2.0 버전을 업데이트했다.

업데이트 버전은 기존 버전과 호환되지 않았고, 해당 라이브러리를 사용한 프로젝트에서 빌드 실패 문제가 발생했다. 이미 빌드 완료된 기존 프로젝트의 경우 실제 서비스가 중단되지 않았다.

이 라이브러리는 전세계 수백만개의 프로젝트에 쓰일 정도로 높은 인기를 누리는 자바스크립트 npm 패키지다. 깃허브에 따르면, 이 라이브러리는 340만 개가 넘는 프로젝트에서 쓰이고 있으며 766개의 다른 라이브러리에 종속돼 사용되고 있다.

페이스북의 리액트 앱 생성, 구글의 앵귤러 프레임워크와 파이어베이스 도구, 아마존웹서비스 서버리스 CLI 등 대형 프로젝트도 이 라이브러리를 사용 중이다.

is-promise v.2.2.0 버전 업데이트와 함께 이 오류는 전세계 개발자를 통해 바로 알려지며 문제가 제기됐다.

is-promise 개발팀은 문제를 해결하려 했으나 결국 v2.2.2 업데이트에서 ES 모듈 지원을 롤백했다.

관련기사

외신에 따르면 간단한 라이브러리가 자바스크립트 생태계 전체에 문제를 일으킨 경우는 이번이 두번째다. 2016년에도 한 라이브러리 개발자가 라이브러리 공개를 취소하면서 수천개의 프로젝트가 중단되는 일이 발생했었다.

일부 개발자는 "간단한 작업을 위한 작은 라이브러리를 만드는 모듈화가 과도해지고 있다"고 비판한다. 반면 "수천 명의 개발자가 다른 방식으로 처리하는 것보다 하나의 모듈로 관리하는 것이 효율적"이란 입장도 있다.