일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 맥
- 공모주
- Eclipse
- MYSQL
- 주식
- 오라클
- JavaScript
- Stock ipo
- 자바스크립트
- 6월 공모주 청약 일정
- 주식 청약
- codeigniter
- css
- 자바
- Oracle
- IPO
- 코드이그나이터
- php
- jquery
- 공모주 청약
- 리눅스
- 주식 청약 일정
- linux
- 공모주 청약 일정
- 7월 공모주 청약 일정
- html
- java
- SQL
- Stock
- 제이쿼리
- Today
- Total
개발자의 끄적끄적
NPM — About audit [펌] 본문
NPM — About audit [펌]
프로젝트를 진행하던 도중 dependency를 추가해야 할 일이 있었는데 보안 문제가 있다고 하여 npm audit fix 를 통해 해결을 하려 하였다.
그러나 해결은 되지 않았고 npm audit fix --force 를 사용하라고 지시하였고 npm audit fix --force를 하자 다음과 같은 Warning이 나왔다.
나는 너가 무엇을 하고 있는지 알았으면 좋겠어….
결론적으로 보안 문제는 해결이 되었지만 나는 --force 옵션을 사용하면 무엇이 바뀌는지 몰랐기에 이번 기회에 npm audit 에 대해 알아보려고 한다.
npm audit
npm@6 (npm@5.10.0도 사용 가능)에 npm audit 이라는 기능이 추가되었다. 이는 npm을 사용하는 프로젝트에서 dependency를 추가하거나 npm audit 명령어를 사용했을 때 그 dependency tree의 보안 취약점과 해결 방안을 제공해준다. 이 제공된 정보를 통해 Node를 사용하는 오픈소스 프로젝트와 애플리케이션 모두 견고하고 완전하게 만들 수 있다.
npm audit fix
npm audit fix 는 npm audit 을 통해 나온 보안 취약점 결과들을 자동적으로 고쳐준다. 문서를 참고해보면 여러 옵션이 있다.
- --dry-run: 바뀌는 점을 확인해 볼 수 있다. --json 옵션을 추가하면 JSON 형식으로 확인할 수 있다.
- --package-lock-only: package.json과 package-lock.json만 수정하고 node_modules는 수정하지 않는다.
- --only=prod|dev: dependencies만 혹은 devDependencies만 fix한다.
- --force: ???
audit fix — force option
Have audit fix install semver-major updates to toplevel dependencies, not just semver-compatible ones — NPM Audit Document
이 문장을 번역기에 넣어보면
아하! 근데 semver가 뭐지?
semver가 무엇인지는 모르겠지만, npm audit fix --force를 하게되면 최상위 종속성의 major 업데이트를 설치한다는 것을 알 수 있다. 그렇다면 semver는 무엇일까?
semver는 Semantic Versioning의 약자로 한국말로 번역해보자면 의미론적 버전 부여 방식이다. semver에서는 버전을 major.minor.patch로 나누고 다음과 같은 방식으로 부여한다.
- major는 이전 버전과 호환되지 않게 기능이 추가되었을 때 변경
- minor는 이전 버전과 호환이 가능하면서 기능이 추가되었을 때 변경
- patch는 이전 버전과 호환이 가능하면서 버그를 수정했을 때 변경
그렇다면 npm audit fix에 대입하여 생각해보면 기존 fix는 minor나 patch를 변경하는 반면 --force 옵션이 생기면 major 를 수정할지도 모른다는 의미이다.
결론
npm audit fix --force는 semver-major를 수정하므로 기존에 사용하던 라이브러리의 API가 호환이 안 될수도 있으니 주의를 요구한다.
출처 : https://medium.com/@kimjnsjwj/npm-about-audit-8e02e3b7c833
'개발' 카테고리의 다른 글
[개발] 이클립스 테마변경 및 블랙테마 설정 (0) | 2020.08.10 |
---|---|
[알고리즘] 순서도(flowchart) 란?[펌] (0) | 2020.08.09 |
[개발] 다음 주소 검색 API 적용! [펌] (0) | 2020.08.06 |
워드프레스(WordPress)란? 세계 1위의 CMS! [펌] (0) | 2020.08.01 |
[참고] SEO (검색엔진 최적화)란 무엇인가? [펌] (0) | 2020.07.30 |