설명
open()으로 획득한 파일 자원을 with 문이나 확실한 close() 호출 없이 사용하면 예외 발생 시 파일 디스크립터가 누수될 수 있습니다.
잠재적 영향
- 반복 요청에서 파일 디스크립터가 고갈되어 서비스 거부가 발생할 수 있습니다.
- 파일 잠금이나 임시 파일 정리가 지연될 수 있습니다.
해결 방법
- 파일은
with open(...) as f:형태로 엽니다. with를 사용할 수 없는 경우try/finally에서 반드시close()를 호출합니다.
예시
변경 전
python
handle = open(path)
return handle.read()
변경 후
python
with open(path) as handle:
return handle.read()
설명:
- 변경 전:
open()으로 획득한 파일 자원을with문이나 확실한close()호출 없이 사용하면 예외 발생 시 파일 디스크립터가 누수될 수 있습니다. - 변경 후: 파일은
with open(...) as f:형태로 열어 블록 종료 시 자동으로 닫히게 합니다.