자바스크립트 eval()을 쓰지 말아야 하는 이유와 대체 방법
자바스크립트의 만능키(?) 그만큼 위험 부담도 큰 것이 eval이다. 사용을 자제하라는 게 일반적인 평이다.그럼 어떻게 eval을 대응 혹은 대신할 것인지 알아보자.왜 쓰면 안 되나막연히 "위험하다"가 아니라 이유가 명확하다.보안 — 문자열에 사용자 입력이 섞이면 임의 코드 실행(XSS)이 된다. 서버라면 더 심각하다성능 — JS 엔진은 코드를 미리 최적화(JIT)하는데, eval은 런타임에 코드가 생기므로 최적화를 포기한다. 주변 스코프 최적화까지 무효화된다디버깅 — 스택 트레이스가 eval 내부로 찍혀서 어디가 문제인지 찾기 어렵다번들러 — 정적 분석이 불가능해서 트리 셰이킹이나 minify가 제대로 동작하지 않는다CSP — Content-Security-Policy를 적용하면 eval은 기본적으로 ..
JS & CSS/Javascript
2018. 9. 13. 16:01
