개요 작성한 코드에 대해 보안성 검토를 받았는데 파일에 대해 TOCTOU 문제가 발생할 수 있다는 코멘트를 받았습니다. 제가 작성한 코드는 아래와 같았습니다. if (file.exists()) { file.delete(); } 원인 싱글 쓰레드일 경우에는 위 코드가 문제없겠지만 멀티 쓰레드 환경에서는 위 코드에 대해 race condition이 발생할 수 있습니다. TOCTOU는 Time Of Check to Time Of Use의 줄임말인데 이 말은 즉슨 file이 존재하는지 확인한 시점에는 파일이 존재할 수 있으나 파일을 삭제하려고 하는 시점에 이미 해당 파일이 삭제되었을 수 있다는 뜻입니다. 정리를 하자면 멀티 쓰레드 환경에서 동시에 해당 파일에 접근하여 나중에 들어온 요청이 먼저 들어온 요청보다 ..