left-pad 사건

GonnabeAlright·2021년 12월 31일
0
post-thumbnail

2016년 3월 22일 오후 5시 30분경(미국 동부시각), 전세계 Node.js 커뮤니티 개발자들은 큰 혼란에 빠졌다. Node.js 기술 기반으로 인터넷에서 돌아가는 수천개의 프로그램들이 한 순간에 먹통이 됐기 때문이다. 영향을 받은 프로그램 가운데는 페이스북, 넷플릭스, 야후, 페이팔 등 유수 기업들이 사용하는 프로그램도 섞여 있었다.

아제르 코출루라는 개발자는 '킥(Kik)'이라는 이름의 프로그램을 개발하고 있었다. 그는 이 프로그램을 누구나 사용할 수 있도록 NPM(Node.js Package Manager)이라는 개발자 커뮤니티에 공개했다. 하지만 'Kik'이라는 상표를 등록한 동명의 메신저 서비스가 있었다. 이들은 상표권을 주장하며 코출루에게 프로젝트 이름을 변경할 것을 요구했다. 코출루가 이를 거부하자, 이들은 NPM 운영진에게 직접 연락을 취하기에 이른다. NPM의 CEO인 아이작 슐레터는 코출루에게서 프로젝트 소유권을 강제로 빼앗아갔다. 코출루는 이에 대한 항의로 자신이 여태 NPM에 공개했던 273개의 프로젝트를 모두 삭제해버렸다.

문제는 NPM에 공개된 프로젝트끼리는 레고 블록을 쌓아 올리는 것처럼 '의존성(dependency)'이라는 관계로 엮여 있다는 점이다. 코출루가 NPM에서 삭제한 273개의 프로젝트 중에는 'left-pad'라는 11줄짜리 코드가 있었다. 이 코드는 다른 개발자가 제작한 'line-numbers'라는 프로젝트를 만드는 블록으로 쓰이고 있었고, 다시 이 'line-numbers'는 '바벨(babel)'이라는 대형 프로젝트에 사용되고 있었다. 이 바벨 프로젝트는 페이스북, 링크드인, 스포티파이 등 대형 기업들은 물론 수많은 개발자들에 의해 폭넓게 사용되고 있었는데, 가장 기초가 되는 블록인 'left-pad'가 삭제되자 더 이상 설치가 불가능해진 것이다. 결국 사태는 도미노처럶 번졌고, 보다 못한 NPM 운영진이 프로젝트를 강제로 복구시키는 유례 없는 일까지 일어났다.

출처: https://www.bloter.net/newsView/blt201604040002

0개의 댓글