2023-05-02 TIL

0v0baek·2023년 5월 2일
0

TIL

목록 보기
43/92

[Python] eval()

eval()?

MDN 문서

문자열로 표현 된 수식을 실행시켜 표현해준다.

# python에서

formula = eval('1+2')
print(formula)
>>>3
// javascript에서

console.log(eval('2 + 2'));
// Expected output: 4

이런 식으로 문자열로 된 수식을 실행시켜주는 역할을 한다.

eval() is evil??

참고 링크

구글에 eval()을 쳤을 때 꽤 위쪽의 연관 검색어 목록에서 eval() is evil 이라는 말을 찾을 수 있다.

eval()은 죄악이다!?

이게 대체 무슨 말인고 하면...
eval()문자열로 구성 된 수식을 계산해서 결과값으로 내주는 간편한 기능이다.

하지만... 간편한 만큼 단점이 뒤따르는 편이다

비용 / 디버깅의 어려움

특히 js의 경우, 코드에 해당 변수가 있는지 확인하고, 값을 대입하기 위해 길고 무거운 검색시간을 거쳐야 한다.

보안상의 문제

타인이 내가 작성해놓은 보안 코드에 쉽게 접근할 수 있다.
웹페이지나 확장 프로그램의 권한으로 사용자의 기기에서 악의적인 코드를 수행할 수 있게 된다는 것이다.

이런 문제들로, 서버 코드를 작성할 때는 eval() 사용을 지양하는 편이다.

profile
개발 공부 하는 비전공자 새내기. 꾸준히 합시다!

0개의 댓글