데드 스토어는 로컬 변수 후속 명령에 의해 읽히지 않는 값이 할당될 때 발생합니다. 값을 계산하거나 검색하여 덮어쓰거나 버리면 코드에 심각한 오류가 발생할 수 있습니다. 오류가 아니더라도 자원 낭비 입니다. 따라서 계산된 모든 값을 사용해야 합니다.
규칙을 어긴 코드
def func(a, b, compute):
i = a + b # 규칙을 어긴 코드; 값을 덮어쓰기 전 계산한 결과를 사용하지 않음
i = compute()
return i
규칙을 준수한 해결책
def func(a, b, compute):
i = a + b
i += compute()
return i
예외
이 규칙은 -1, 0, 1, None, True, False 및 ““에 대한 초기화를 무시합니다. 압축 해제된 변수에 대해서는 문제가 발생하지 않습니다.
같이보면 좋은 자료
- MITRE, CWE-563 - Assignment to Variable without Use (‘Unused Variable’)
If you like SONARKUBE, don’t forget to give me a star. ![]()