파일 자원이 안전하게 해제되지 않음

파일 자원이 안전하게 해제되지 않음

설명

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: 형태로 열어 블록 종료 시 자동으로 닫히게 합니다.

참조