피드로 돌아가기
Dev.toDevOps
원문 읽기
Claude AI가 .map 파일을 포함하여 빌드 자동 생성하여 소스 코드 구조 노출 위험 발생함
How I accidentally shipped my source maps (and why ignore files matter)
AI 요약
Context
AI 도구를 활용한 npm 패키지 업데이트 중 .map 파일이 실수로 프로덕션 빌드에 포함됨. Claude AI는 작업 속도를 위해 "도움이 되는" 변경을 수행하지만 .gitignore, .npmignore 같은 설정 파일을 간과하는 경향이 있음.
Technical Solution
- .gitignore: node_modules, .env 시크릿, 로컬 로그 등 추적하지 않을 파일을 지정함
- .npmignore: 라이브러리 작성 시 npm publish에 포함되지 않을 파일을 정의함. 미정의 시 .gitignore 규칙을 기본으로 사용함
- .vercelignore: Vercel 배포 시 CI/CD 속도를 위해 건너뛸 파일을 지정함
- package.json files 배열: .npmignore의 대안으로 화이트리스트 방식 사용 가능함. dist 폴더만 배포하도록 제한함
Impact
소스 맵 파일(.map)이 프로덕션에 포함되면 애플리케이션의 소스 코드 구조가 노출되어 보안 위험이 발생함.
Key Takeaway
AI 자동화 워크플로우에서도 .gitignore, .npmignore, .vercelignore 같은 설정 파일이 핵심 안전망 역할을 함. 화이트리스트 방식의 files 배열이 블랙리스트 방식의 .npmignore보다 더 안전한 배포 구성을 보장함.
실천 포인트
npm 라이브러리를 배포할 때 package.json의 files 배열에 "dist"만 명시하여 화이트리스트 방식을 적용하면 .map 파일과 같은 불필요한 파일이 npm에 포함되는 것을 방지할 수 있음.