blog.coinsect.io
🇰🇷
원문
마크다운
2024-06-30
101
공유

왜 프로덕션에서는 console.log를 제거해야 할까?

프론트엔드 코딩을 하다보면 `console.log`를 넣을 일이 매우 많다. 나는 특히 크롬의 디버깅 툴을 쓰기보다는 필요한 곳들에 로깅을 하면서 개발하는 것을 선호한다. 그런데 자바스크립트는 함수가 실행될 때 주변의 환경을 기억하는 클로저라는 기능이 있다. 이 때문에, 참조되는 변수는 메모리에서 GC의 대상이 되지 않고 남아있게 된다. 아래의 상황을 생각해보자. ```javascript const myArr = new Array(10000000).fill('some large data'); const foo = (a: number, b: number) => { console.log(myArr) return a + b } ``` 위 경우, myArr의 크기는 약 150MB이다. (1000만 * 15 bytes) 저 변수를 사용하던 다른 곳들에서 참조가 다 끝나고 나면 GC의 대상이 된다. 그러나 위 코드처럼 `console.log(myArr)`로 참조하게 되면 프로덕션에서 150MB의 용량을 불필요하게 차지하게 된다. 이런 메모리 낭비를 비롯해 아래의 문제들도 있다. - 노출하기를 원하지 않는 정보를 노출하게 될 수 있음 - 코드가 지저분해짐 console.log는 사용한 뒤 즉시 삭제해주는 습관을 들이자.
0