글 링크: https://handhand.tistory.com/entry/how-to-evaluate-an-npm-package-2026-edition
소개
프로젝트를 진행하며 무심코 설치하는 수많은 npm 패키지, 과연 얼마나 안전할까요?
블랙박스와 같은 외부 코드는 우리 시스템에 접근해 민감한 데이터를 유출하거나 악의적인 요청을 수행할 위험을 안고 있습니다. 단순히 주간 다운로드 수나 스타 수에 의존하는 대신, 어떻게 하면 진짜 신뢰할 수 있는 패키지를 선별할 수 있을까요?
저자는 의존성 필요성 검토부터 출처 증명(Provenance), 유지보수 상태, CI 및 보안 대응체계에 이르는 5단계 실전 평가 프로세스를 제시합니다.
오픈소스 공급망 공격 및 슬롭스쿼팅 위험 속에서 내 프로젝트를 안전하게 지키고 싶은 개발자분들이라면 읽어보시는 것을 추천드립니다.
팀원들의 의견
필요한 npm 패키지를 선택할 때 본인만의 기준이 있으실까요?
AI에게 함께 작업하면서 직접 필요한 기능만 구현하는게 외부 의존성을 추가하는 방향보다 가볍고 안정적인 경우도 있을 것 같은데요, 이 부분에 대한 경험이나 의견도 궁금합니다!
💬. 의견 1
필요한 npm 패키지를 선택할 때 본인만의 기준이 있으실까요?
글에서의 내용과 유사한 것 같아요!
필요한 기능을 모두 제공하는지, 그리고 그 외의 기능이 우리 프로젝트에 들어올 때 너무 과한점은 없는지 같은것도 검토하구요. 오픈소스 관점에서 기여에 열려있다면 더 선택하는데 도움이 되는것 같아요.
회사에서 사용한다면 라이선스도 중요하구요. 최대한 많은 것들을 체크해서 가장 가벼운 것을 골라 사용합니다.
AI에게 함께 작업하면서 직접 필요한 기능만 구현하는게 외부 의존성을 추가하는 방향보다 가볍고 안정적인 경우도 있을 것 같은데요, 이 부분에 대한 경험이나 의견도 궁금합니다!
해당 의존이 어떤 성격이냐에 따라 다를것 같은데요. 커스터마이징이 많이 필요하거나, 잘 운영되는 적합한 패키지들이 없거나 할 때는 직접 구현을 검토하는 것 같아요. 대신, ‘바퀴를 다시 발명하지마라’라는 말처럼 신뢰를 이미 받고 있는 라이브러리가 있다면 (그리고 우리 프로젝트에 문제가 되지 않을 정도로 충분히 작다면) 저는 직접 구현보다 만들어져 있는 것들을 사용하는 편인거 같아요!
💬. 의견 2
필요한 npm 패키지를 선택할 때 본인만의 기준이 있으실까요?
tanstack, date-fns, ky와 같이 많은 사람들이 사용하는 패키지인지, 꾸준히 유지보수가 되는 패키지인지, 비슷한 패키지가 많다면 어떤 패키지가 우리가 풀려는 문제와 가장 적합한지 등을 보는 것 같아요. react/next.js와 같은 패키지에서 문제가 발생했던 것 처럼 유명한 패키지라고 괜찮은 것은 아니다보니 패키지를 안전하게 설치하는 방법에 대해 고민하는 것이 필요하다고 느꼈어요.
AI에게 함께 작업하면서 직접 필요한 기능만 구현하는게 외부 의존성을 추가하는 방향보다 가볍고 안정적인 경우도 있을 것 같은데요, 이 부분에 대한 경험이나 의견도 궁금합니다!
AI로 코드를 생산하는 비용이 낮아졌고, 더더욱 특정 도메인에서 필요한 기능이 아니라 프로그래밍의 일반적인 문제를 푸는 것은 AI가 충분히 잘 한다고 생각하긴 하는데요. 그럼에도 불구하고 일반적인 문제를 해결하는 경우에는 잘 만들어진 패키지를 사용하는 것이 유지보수하거나 불필요한 고민을 덜 하기에 좋다고 생각하는 것 같아요. 그래서 해결하려고 하는 문제중에 일반적인 문제이고 이 문제를 잘 해결하고 있는 패키지가 있다고 하면 외부 의존성을 추가하는 편입니다!
목차
정말로 이 패키지가 필요한가요?
활발하게 유지보수되고 있나요?
npm에 실제로 게시된 것을 신뢰할 수 있나요?
CI 파이프라인이 실재하나요, 아니면 장식인가요?
코드 품질이 눈에 보이나요?
무언가 잘못되면 어떻게 되나요?
체크리스트


