피드로 돌아가기
How to Finally (and Iteratively) Kill Every Last 'npm audit'
Dev.toDev.to
DevOps

fzf와 npm audit 조합으로 수백 개 프로젝트 보안 취약점 광속 해결

How to Finally (and Iteratively) Kill Every Last 'npm audit'

Tony Metzidis2026년 4월 2일4intermediate

Context

모노레포나 다수 마이크로서비스 환경에서 수십 개의 package.json을 개별적으로 관리하는 비효율 발생. 표준 npm audit fix 명령어로 해결되지 않는 수동 조치 대상 취약점 식별에 과도한 시간 소모. 각 디렉토리 이동과 결과 분석을 반복하는 파편화된 워크플로우의 한계.

Technical Solution

  • find 명령어로 node_modules를 제외한 모든 package.json 경로를 추출하는 검색 엔진 설계
  • fzf의 preview 기능을 활용해 선택한 프로젝트의 npm audit 결과를 실시간으로 출력하는 대시보드 구현
  • dirname 명령어로 파일 경로에서 디렉토리 경로만 분리하여 해당 위치에서 audit 명령어를 실행하는 파이프라인 구성
  • preview-window 옵션으로 화면의 80%를 할당하여 복잡한 의존성 트리와 취약점 상세 내용을 한눈에 파악하는 시각적 구조
  • fzf의 bind 설정을 통해 Enter 키 입력 시 해당 경로에서 npm audit fix를 즉시 실행하는 인터랙티브 워크플로우 도입
  • 실행 후 자동 다음 항목 이동(+down) 및 일시 정지 로직을 추가하여 '분석-수정-이동' 과정을 단일 루프로 최적화

Key Takeaway

반복적인 터미널 작업에 인터랙티브 필터링 도구를 결합하여 운영 오버헤드를 획기적으로 줄이는 엔지니어링 효율화 전략.


다수 프로젝트의 반복적 점검이 필요할 때 fzf의 preview와 bind 기능을 조합한 맞춤형 CLI 대시보드 구축을 검토할 것

원문 읽기