프론트엔드 코딩을 하다보면 `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는 사용한 뒤 즉시 삭제해주는 습관을 들이자.