정의
임시 파일(temporary file)은 운영 체제나 응용 프로그램이 일시적인 데이터를 저장하기 위해 생성하는 파일이다. 일반적으로 작업 중간 결과, 캐시, 버퍼링 데이터 등을 보관하며, 작업이 종료되거나 파일이 더 이상 필요 없어지면 자동으로 삭제된다.
주요 특징
| 구분 | 설명 |
|---|---|
| 생성 시점 | 프로그램 실행 시, 시스템 콜(tmpfile, GetTempFileName 등)이나 API 호출을 통해 생성 |
| 위치 | 운영 체제마다 기본 임시 디렉터리가 지정되어 있다. 예: Windows → %TEMP%, Unix/Linux → /tmp |
| 접근 권한 | 보안 상 최소 권한으로 설정되는 경우가 많으며, 사용자별 혹은 프로세스별 격리 정책이 적용될 수 있다 |
| 수명 | 프로그램 종료, 시스템 재부팅, 일정 기간(예: 30 일) 경과 시 자동 삭제되는 경우가 있다 |
| 파일명 | 임시 파일은 일반적으로 고유 식별자를 포함한 무작위 문자열로 이름이 지정돼 충돌을 방지한다 |
사용 예시
- 텍스트 편집기 – 문서 편집 중 자동 저장을 위해 임시 파일에 현재 내용을 기록하고, 저장이 완료되면 원본 파일로 교체한다.
- 웹 브라우저 – 웹 페이지 로딩 중 다운로드된 데이터나 캐시 데이터를 임시 파일에 저장한다.
- 컴파일러 – 소스 코드를 컴파일하는 과정에서 중간 객체 파일이나 링커 입력 파일을 임시로 생성한다.
- 데이터베이스 – 트랜잭션 로그나 정렬 작업 시 임시 스페이스를 파일 형태로 활용한다.
보안 및 관리
- 권한 제한 : 임시 파일에 민감한 데이터가 포함될 경우, 파일 권한을 제한하거나 암호화하는 것이 권장된다.
- 청소 정책 : 시스템 관리자는 정기적으로 임시 디렉터리를 검사·정리하여 디스크 공간 고갈 및 오래된 파일에 의한 정보 유출 위험을 방지한다.
- 경로 조작 공격 : 악의적인 사용자가 임시 파일 경로를 조작해 권한 상승이나 파일 삽입 공격을 시도할 수 있으므로, 프로그램은 신뢰할 수 있는 API를 이용해 파일을 생성해야 한다.
관련 표준 및 API
- POSIX:
tmpfile(),mkstemp()함수 - Windows API:
GetTempPath,GetTempFileName함수 - Java:
java.io.File.createTempFile메서드 - Python:
tempfile모듈 (예:tempfile.NamedTemporaryFile)
요약
임시 파일은 다양한 컴퓨팅 환경에서 일시적인 데이터 보관을 위해 널리 사용되는 파일 유형이며, 생성·삭제가 자동으로 이루어지는 것이 일반적이다. 보안 및 시스템 자원 관리 측면에서 적절한 권한 설정과 정기적인 정리가 필요하다.