Record/Trubble Shooting

[NPM] 사용했던 Package가 업데이트되면서 발생되던 버그 해결

범데이 2022. 12. 8. 00:14

1. 개요

몇 달 전 npm의 의존성 관리 파일 (package.json)에 대해 포스팅 한 적이 있었다. (=> 해당 포스팅)

 

근데 며칠 전 포스팅에서 우려사항으로 적었던 상황이 실제로 발생되어 포스팅하고자 한다.

 

 

2. 문제 상황

 

웹에서 영상을 녹화한 후, 녹화한 파일을 처리한 뒤에 blob으로 변환하여 firebase storage에 업로드하는 기능을 구현했었다.

 

그런데, 잘 되던 영상 처리가 어느 순간부터 무한루핑이 돈다는 제보가 있어서 살펴보게 되었는데,

firebase 패키지 내에서 오류가 나고 있었다.

 

그러나, 로컬 개발환경에서는 해당 문제가 발생하지 않았다.

 

그렇다면.. 변경된 로직이 없다면, 촬영 환경이나 값이 바뀌었을 수도 있다 생각하여 여러가지 원인을 찾아보기 시작했었는데... 희한하게도 나 이외의 다른 개발자분도 로컬에서는 잘 되는 기능이 상용 배포된 프로그램에서는 문제가 발생한다는 것이었다.

 

 

3. 문제 해결

그렇게 여러가지 검토해 본 결과, firebase패키지가 상용에 배포된 버전과 로컬에서 개발하던 버전이 달라진 것을 확인할 수 있었다.

 

그렇다. 나와 다른 개발자분 모두 영상처리를 구현하던 때의 과거 패키지를 로컬에 내려 받았었고,

현재는 firebase의 패키지가 새로 업데이트 되었는데, 로컬에 과거에 내려받았던 패키지가 이미 남아 있어 그렇게 패키지의 버전이 상이하게 되었다.

 

 

그렇게 왼쪽과 같이 Caret Range(^) (향후 패키지 업데이트사항을 수용하겠다는 의미) 를 제거시켜주어

영상 처리 로직을 구현했던 때의 환경에 맞는 패키지 버전을 찾아 위와 같이 그에 맞는 버전(9.6.11)으로 고정시켜주었고,

 

이후 GitHub CI/CD 과정 후에 프로그램이 배포될 때에, 해당 패키지 버전으로 프로그램이 빌드되어서 영상 처리가 기존과 같이 문제없이 잘 되게 되었다.

반응형