삭제한 파일이 살아나는 원리 — SSD vs HDD, TRIM의 진실
파일을 삭제하면 실제로 무슨 일이 일어나는지, HDD와 SSD에서 복구 가능성이 왜 다른지, TRIM과 wear leveling의 원리를 기술적으로 파헤친다.
중고 노트북을 팔기 전에 파일을 전부 지웠다. 그런데 사는 사람이 복구 프로그램 돌리면 내 파일이 살아날 수도 있다는 얘기를 들었다 — 그게 사실인지, 어디까지 진짜인지 확인하러 온 거다.
휴지통 비웠는데 “이거 살릴 수 있나?” 하고 검색하게 된 거다. 아니면 반대로 — 확실하게 지웠는지 불안해서 온 거거나.
어느 쪽이든 핵심은 같다. 컴퓨터에서 “삭제”를 누르면 실제로 뭐가 일어나는가? 답은 생각보다 단순한데, HDD를 쓰느냐 SSD를 쓰느냐에 따라 완전히 다른 이야기가 된다.
”삭제”는 진짜 삭제가 아니다 — HDD의 경우
HDD에서 파일을 지우면, 컴퓨터는 데이터 자체를 건드리지 않는다. 대신 목차만 수정한다.
Windows의 NTFS 파일 시스템에는 MFT(Master File Table)라는 게 있다. 모든 파일의 이름, 위치, 크기가 기록된 목차다. 리눅스의 ext4에는 inode라는 비슷한 구조가 있다. 파일을 삭제하면? MFT 항목에 “이 자리 비었음”이라고 표시만 바꿔놓는다.
실제 데이터는 디스크 어딘가에 그대로 있다. 도서관에서 책을 폐기할 때 책꽂이에서 꺼내서 태우는 게 아니라, 목록 카드만 빼버리는 거다. 책은 여전히 선반에 꽂혀 있다.
이게 HDD에서 삭제된 파일을 복구할 수 있는 근본 이유다. 새 데이터가 그 자리를 덮어쓰기 전까지, 원래 데이터는 물리적으로 디스크 위에 남아 있다.
HDD 복구가 잘 되는 이유
HDD는 자기 디스크(플래터)에 데이터를 기록한다. 자기 신호는 명시적으로 덮어쓰기 전까지 사라지지 않는다.
500GB HDD에서 1GB 파일을 삭제하면? 499GB 중 빈 공간이 넉넉한 한, 운영체제가 굳이 그 1GB 위에 새 데이터를 쓸 이유가 없다. 며칠, 몇 주, 심하면 몇 달이 지나도 원본 데이터가 그 자리에 그대로 있을 수 있다.
포렌식 도구가 하는 일이 정확히 이거다. 목차(MFT)를 무시하고, 디스크의 비할당 영역(unallocated space)을 직접 스캔해서 파일의 흔적을 찾아낸다.
복구 도구는 어떻게 죽은 파일을 찾나?
대표적인 기법이 **파일 카빙(file carving)**이다.
모든 파일 형식에는 고유한 시작 패턴(헤더)이 있다. JPEG 이미지는 FF D8 FF로 시작하고, PDF는 %PDF로 시작한다. 복구 도구는 디스크의 비할당 영역을 처음부터 끝까지 쭉 읽으면서, 이 헤더 패턴을 찾는다. 헤더가 발견되면 해당 파일 형식의 끝 패턴(푸터)까지 읽어서 파일을 재조립한다.
대표 도구 세 가지를 보겠다.
PhotoRec — 무료 오픈소스다. 이름은 “Photo”지만 480개 이상의 파일 형식을 지원한다. 파일 시스템 메타데이터를 완전히 무시하고 순수 시그니처 기반으로 카빙한다. 디스크를 읽기 전용(read-only)으로 접근하기 때문에 원본 훼손 걱정이 없다.
R-Studio — 유료 도구다. 파일 카빙에 더해서 손상된 파일 시스템 메타데이터 분석, RAID/NAS 복구까지 지원한다. 일반 사용자보다는 전문 복구 업체가 쓰는 수준이다.
FTK Imager — 포렌식 이미징의 표준 도구다. 디스크의 비트 단위 복제본(이미지)을 만들고, 그 이미지에서 삭제된 파일을 분석한다. 수사기관이 증거 무결성을 보존하면서 디스크를 분석할 때 쓴다.
🟢 일반 사용자: HDD에서 실수로 파일을 지웠다면, 새 파일을 최대한 안 쓰는 게 중요하다. 쓰면 쓸수록 원본 데이터가 덮어써진다. 가능하면 해당 드라이브 사용을 즉시 중단하고, 다른 드라이브에서 PhotoRec을 실행해서 복구를 시도하라.
SSD는 왜 다른가 — TRIM이라는 벽
SSD에서는 상황이 완전히 다르다. 핵심은 TRIM 명령이다.
TRIM은 운영체제가 SSD 컨트롤러에게 “이 블록은 더 이상 안 쓰니까 비워도 된다”고 알려주는 명령이다. HDD는 “비었음 표시”만 바꾸지만, SSD는 TRIM을 받으면 해당 플래시 메모리 셀을 물리적으로 초기화한다.
왜 이렇게 동작하냐면, SSD의 NAND 플래시 메모리는 HDD와 구조가 근본적으로 다르기 때문이다. NAND 셀은 이미 데이터가 있는 상태에서 바로 덮어쓸 수 없다. 먼저 셀을 비운 다음에야 새 데이터를 쓸 수 있다. 미리 비워두지 않으면 나중에 쓰기 작업이 느려진다. TRIM은 이 사전 정리를 하는 거다.
결과적으로, TRIM이 실행되면 삭제된 데이터는 물리적으로 사라진다.
Windows 7 이후, macOS(Apple 기본 SSD 장착 기준 10.6.8 이후, 서드파티 SSD는 10.10.4부터 trimforce 명령으로 수동 활성화 가능), 대부분의 리눅스 배포판에서 TRIM은 기본 활성화되어 있다. 내가 따로 끄지 않는 한, 파일을 삭제하면 TRIM이 자동으로 실행된다.
DRAT, DZAT — SSD가 TRIM 후 뭘 보여주는가
SSD가 TRIM 명령을 처리하는 방식에도 차이가 있다.
DRAT(Deterministic Read After TRIM) — TRIM된 영역을 읽으면 항상 같은 값이 나오는 것을 보장한다. 단, 그 값이 0일 수도 있고, 다른 패턴이거나, 심지어 원본 데이터 그대로일 수도 있다. 핵심은 “일관성”이지, “삭제”가 아니다. 가비지 컬렉션 전후로 읽어도 같은 값이 나온다는 뜻이다.
DZAT(Deterministic Zeroes After TRIM) — 더 강력한 버전이다. TRIM 후 해당 영역은 즉시 0으로 반환되는 것이 보장된다. 실제 NAND에 데이터가 남아 있어도, 컨트롤러가 무조건 0을 돌려준다.
2018년 이후 출시된 소비자용 SSD 대부분은 DZAT를 구현한다. 포렌식 도구가 TRIM된 영역을 읽어봐야 0만 나온다. DRAT SSD라면 이론적으로 원본 데이터가 반환될 가능성이 있지만, 표준 SATA 명령으로는 접근할 수 없고 SSD 컨트롤러의 팩토리 모드 같은 특수 기법이 필요하다.
Wear Leveling — 포렌식의 마지막 희망도 차단
SSD에는 wear leveling(균등 마모)이라는 메커니즘도 있다.
NAND 플래시 셀은 쓰기/지우기 횟수에 제한이 있다. 특정 셀만 반복해서 쓰면 그 셀이 먼저 죽는다. SSD 컨트롤러는 이걸 방지하려고 데이터를 내부적으로 이리저리 옮긴다. 사용자가 모르는 사이에.
포렌식 관점에서 이게 문제가 되는 이유가 있다. 같은 SSD를 두 번 이미징해도 다른 결과가 나올 수 있다. 컨트롤러가 백그라운드에서 데이터를 재배치하기 때문이다. 증거의 무결성(해시값 일치)을 증명하기 어려워진다.
2025년 발표된 연구에 따르면, wear leveling과 가비지 컬렉션(TRIM과 연동되는 SSD 내부 정리 작업)은 SSD 포렌식의 반복 가능성(repeatability)에 근본적인 장애물이다.
🟡 민감한 상황 (이혼 소송 중 PC 데이터가 증거인 경우, 직장 부당해고 증거 수집): HDD라면 삭제 후에도 복구 가능성이 상당하다. 증거를 보존하려면 해당 드라이브를 즉시 분리해서 손대지 마라. 반대로 SSD라면, 삭제 후 TRIM이 실행됐을 가능성이 높아서 복구가 현실적으로 어렵다.
내 상황에 맞게 판단하기
모든 삭제가 같은 무게는 아니다.
🟢 일반 사용자 — SSD 쓰고 있으면 파일 삭제 = 진짜 삭제다. TRIM이 기본으로 켜져 있어서, 일반적인 삭제만으로 데이터가 물리적으로 사라진다. “휴지통 비운 거 누가 살릴까 봐 걱정”이라면 SSD에서는 걱정 안 해도 된다.
🟡 민감한 상황 (스토킹 피해자가 가해자와 공유하던 PC에서 상담 기록을 지운 경우): HDD라면 포렌식으로 복구될 수 있다. 안전 삭제 도구를 써서 덮어쓰기를 해야 한다. SSD라면 TRIM 덕분에 일반 삭제만으로 충분하지만, 불안하면 아래 안전 삭제 방법을 참고하라.
🔴 OPSEC 필요 (기자가 취재원 관련 파일을 확실히 파기해야 하는 경우): HDD든 SSD든 일반 삭제에 의존하지 마라. HDD는 다중 덮어쓰기, SSD는 ATA Secure Erase를 쓰고, 가능하면 드라이브 자체를 물리적으로 파기하라.
확실하게 지우려면 — 안전 삭제 방법
HDD — 덮어쓰기가 핵심이다
개별 파일을 안전하게 지우려면 Eraser를 쓴다. 무료 오픈소스이고, 삭제할 파일의 디스크 영역을 무작위 데이터로 덮어쓴다. 1회 덮어쓰기면 일반적인 복구 도구로는 복원 불가능하다.
드라이브 전체를 밀려면 ShredOS(DBAN의 후속 도구)로 부팅해서 전체 디스크를 덮어쓴다. DBAN 자체는 2015년 이후 업데이트가 중단됐고 NVMe를 지원하지 않으므로, 최신 환경에서는 ShredOS가 낫다.
SSD — 펌웨어 레벨 삭제가 핵심이다
SSD는 덮어쓰기 방식이 효과적이지 않다. wear leveling 때문에 사용자가 쓰는 논리 주소와 실제 NAND 물리 주소가 다르기 때문이다. 덮어쓰기를 해도 컨트롤러가 다른 셀에 쓸 수 있다.
대신 ATA Secure Erase를 쓴다. 이건 SSD 컨트롤러에게 “모든 셀을 공장 초기 상태로 리셋하라”는 명령을 보내는 거다. 리매핑된 블록까지 포함해서 전체를 초기화한다. Parted Magic으로 부팅하면 GUI에서 Secure Erase를 실행할 수 있다.
NVMe SSD는 ATA 명령 대신 NVMe Format 또는 NVMe Sanitize 명령을 쓴다. 삼성 SSD라면 Samsung Magician 소프트웨어에 Secure Erase 기능이 내장되어 있다.
다만, 선은 분명히 있다
삭제 원리를 알면 양쪽으로 쓸 수 있다. 실수로 지운 소중한 파일을 되살리는 데 쓸 수도 있고, 누군가에게 보여주기 싫은 걸 확실히 없애는 데 쓸 수도 있다.
뭘 지우든 개인의 영역이고, 이 글은 그걸 판단하려고 쓴 게 아니다.
선이 갈리는 건 다른 사람의 데이터를 건드릴 때다. 타인의 기기에서 증거를 몰래 삭제하는 건 — 이혼 소송에서든, 직장 분쟁에서든 — 증거인멸이다. 디지털이라고 달라지지 않는다.
정리
파일 삭제의 실체는 이렇다.
HDD에서 삭제는 “목차에서 이름 지우기”다. 데이터는 디스크에 그대로 남아 있고, PhotoRec 같은 도구로 복구할 수 있다. 새 데이터가 덮어쓰기 전까지는.
SSD에서 삭제는 다르다. TRIM 명령이 플래시 셀을 물리적으로 비워버린다. 여기에 wear leveling까지 더해지면, 포렌식 도구로도 복구가 현실적으로 불가능하다.
지금 쓰는 게 SSD인지 HDD인지 모르겠으면 — 2020년 이후에 산 노트북이라면 거의 확실히 SSD다. 데스크톱은 둘 다 달려 있을 수 있으니 디스크 관리에서 확인하라.
확실하게 지우고 싶은 파일이 있다면 — HDD는 Eraser로 덮어쓰기, SSD는 일반 삭제만으로 충분하다. 드라이브 전체를 밀려면 HDD는 ShredOS, SSD는 ATA Secure Erase.
자주 묻는 질문
- 삭제한 파일을 복구할 수 있나요?
- HDD에서는 높은 확률로 가능하다. 파일 삭제 시 실제 데이터가 아닌 목차(MFT/inode)만 지워지기 때문에, 새 데이터가 덮어쓰기 전까지 복구 도구로 되살릴 수 있다. 반면 SSD는 TRIM 명령이 기본 활성화되어 있어 삭제 직후 데이터가 물리적으로 초기화되므로 복구가 현실적으로 불가능하다.
- SSD에서 TRIM이 뭔가요?
- TRIM은 운영체제가 SSD에 "이 영역은 더 이상 안 쓴다"고 알려주는 명령이다. SSD 컨트롤러는 이 명령을 받으면 해당 셀을 물리적으로 비워버린다. HDD처럼 "빈 공간 표시"만 하는 게 아니라 실제로 데이터를 지우기 때문에, TRIM이 실행된 후에는 복구가 불가능하다.
- HDD 파일 복구에 쓰는 도구는 뭐가 있나요?
- PhotoRec(무료, 480개 이상 파일 형식 지원), R-Studio(유료, RAID/NAS 지원), FTK Imager(포렌식 이미징 표준 도구)가 대표적이다. 이 도구들은 파일 헤더 시그니처를 기반으로 비할당 영역을 스캔해서 삭제된 파일을 찾아낸다.
- 파일을 완전히 삭제하려면 어떻게 해야 하나요?
- SSD는 TRIM이 기본 활성화되어 있어 일반 삭제만으로 충분하다. HDD는 Eraser(무료) 같은 도구로 덮어쓰기해야 한다. 드라이브 전체를 밀려면 SSD는 ATA Secure Erase(Parted Magic 등), HDD는 ShredOS를 쓰면 된다.