프론트엔드와 백엔드 개발 모두에서 디펜던시 관리는 프로젝트의 안정성과 보안성을 보장하는 핵심적인 요소입니다. 특히, 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/mypackage
npm 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
옵션을 통해 악성 스크립트를 방지합니다.
상담만 받아보셔도 좋습니다 긱다이브의 상담으로 업체 비교를 시작해보세요