hoon's bLog

node.js ERROR | DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. (Use `node --trace-deprecation ...` to show where the warning was cre.. 본문

IT/Error

node.js ERROR | DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. (Use `node --trace-deprecation ...` to show where the warning was cre..

개발한기발자 2023. 9. 18. 12:43
반응형

Error 발생 경로

[DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues.
Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `node --trace-deprecation ...` to show where the warning was created)

번역해 보자면 Buffer()는 보안 및 유용성 문제로 인해 더 이상 사용되지 않으니, Buffer.alloc()Buffer.allocUnsafe() 또는 Buffer.from() 메서드를 사용하라는 뜻!

그리고 문제가 되었던 코드 부분은 바로 이 부분!!

// error가 발생한 코드
const bufferNum = new Buffer(100);

let bufferName = new Buffer('accessKey');

let key = new Buffer(crypto.createHash(this.keyAlgorithm), 'utf8');

 

필자가 사용하는 노드 버전은 18.x!

하지만 기존 회사 소스 코드는 노드 버전 15 버전?으로 추측되는 버전으로 코드가 작성되었다.

버전이 16.x 이상으로 업그레이드 되면서 생기는 문제였다.

해결

new Buffer() 사용법을 에러 메시지가 제시한대로 문법에 맞춰 수정해 준다!

[문법]
new Buffer(number) // Old
Buffer.alloc(number) // New

new Buffer(string) // Old
Buffer.from(string) // New

new Buffer(string, encoding) // Old
Buffer.from(string, encoding) // New

new Buffer(...arguments) // Old
Buffer.from(...arguments) // New
// const bufferNum = new Buffer(100);
const bufferNum = Buffer.alloc(100);

// let bufferName = new Buffer('accessKey');
let bufferName = Buffer.from('accessKey');

// let key = new Buffer(crypto.createHash(this.keyAlgorithm), 'utf8');
let key = Buffer.from(crypto.createHash(this.keyAlgorithm), 'utf8');

결론

치명적인 오류는 아니지만, 버전이 업그레이드됨에 따라 코드 리팩토링은 필수적이다!

물론 회사의 운영 측면에서는 돌아가기만 하면 되고 문제가 없어야겠지만,

이건 당연히 기본인 상태에서 계속해서 리팩토링 하는 것이,

프로그램의 유지 보수 및 발전과 개발자의 발전이지 않을까?

(물론 리팩토링 후 기능 테스트는 개발자의 몫ㅠㅠ)

오늘도 1 error 적립 / 해결 성공!

 

 

언제나 새로운 정보 공유와 잘못된 정보

비판/지적/태클은 환영입니다!

도움이 되셨다면 공감♥️, 댓글 부탁드려요:)

끝.

Reference

https://stackoverflow.com/questions/52165333/deprecationwarning-buffer-is-deprecated-due-to-security-and-usability-issues

 

DeprecationWarning: Buffer() is deprecated due to security and usability issues when I move my script to another server

Getting error when script move to other server. (node:15707) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.

stackoverflow.com

 

728x90
반응형