프론트엔드와 백엔드 개발 모두에서 디펜던시 관리는 프로젝트의 안정성과 보안성을 보장하는 핵심적인 요소입니다. 특히, RN(React Native) 프로젝트를 포함하여 npm이나 yarn과 같은 패키지 매니저를 사용하는 경우, 디펜던시 관리는 더욱 중요한 과제가 됩니다. 이 글에서는 RN 프로젝트에서 디펜던시를 효과적으로 관리하는 방법을 단계별로 정리하고, 보안 문제를 예방하면서 프로젝트의 성능을 극대화할 수 있는 실용적인 팁을 소개합니다. 😊
오래된 디펜던시는 보안 취약점의 주요 원인 중 하나입니다. 새로운 버전에서는 기존의 취약점을 수정하고 성능을 개선한 경우가 많으므로, 항상 최신 상태로 유지하는 것이 중요합니다.
npm audit 또는 yarn audit 명령어를 활용해 현재 디펜던시의 보안 취약점을 확인하세요.npm update나 yarn upgrade로 의존성 패키지를 최신 상태로 업데이트합니다.
# NPM 예시
npm audit
npm update
Tip: npm audit fix 명령어를 사용하면 자동으로 보안 이슈를 해결할 수 있습니다. 다만, 주요 버전 변화(major version)는 수동으로 확인하는 것이 안전합니다.
패키지 설치 시 실행되는 스크립트(run scripts)는 유용하게 쓰일 수 있지만, 악성 라이브러리가 이를 악용할 위험이 있습니다. 특히 검증되지 않은 라이브러리를 설치할 때에는 설치 단계에서 자동으로 실행되는 스크립트를 철저히 확인하고 검증하세요.
npm 패키지가 설치 과정에서 run scripts를 이용해 데이터를 탈취하거나 시스템 파일을 수정한 사건이 발생했습니다.
사례 분석 보기:
package.json 파일에 정의된 스크립트를 반드시 검토하세요.-ignore-scripts 옵션을 사용해 설치 과정에서 스크립트 실행을 방지합니다.
# NPM 스크립트 실행 방지
npm install --ignore-scripts
대규모 프로젝트에서는 내부 저장소와 공개 저장소의 패키지가 혼동되는 문제가 발생할 수 있습니다. 이로 인해 악성 패키지가 내부 프로젝트에 유입되는 경로가 생길 수 있습니다. 이를 방지하기 위해 다음 사항을 준수하세요.
@mycompany/mypackagenpm config나 .npmrc 파일에서 프라이빗 레지스트리를 우선적으로 사용하도록 설정합니다.
# .npmrc 설정 예시
registry=https://registry.npmjs.org/
@mycompany:registry=https://private-registry.mycompany.com/
사례: 유명 라이브러리 이름을 도용한 공격
- 예:
awesome-library→ 악성 패키지명awesome-library.js
React Native 프로젝트에서 보안을 유지하고 디펜던시 관리를 효율적으로 하기 위해 다음의 체크리스트를 참고하세요!
npm audit 또는 yarn audit 도구를 활용해 보안 이슈를 확인하세요.package-lock.json 또는 yarn.lock 파일을 유지해 의존성 버전을 고정하세요.-ignore-scripts 옵션을 통해 악성 스크립트를 방지합니다.
상담만 받아보셔도 좋습니다 긱다이브의 상담으로 업체 비교를 시작해보세요