우리는 흔히 컴퓨터에서 중요한 파일을 삭제할 때 휴지통에 넣고 ‘휴지통 비우기’를 클릭하면 데이터가 영원히 사라졌다고 믿습니다. 하지만 이는 디지털 세상에서 가장 위험한 착각 중 하나입니다. 중고로 판매된 스마트폰이나 노트북에서 전 주인의 민감한 사생활 사진이나 금융 정보가 복구되었다는 뉴스를 한 번쯤 접해보셨을 겁니다.
분명히 “삭제하시겠습니까?”라는 경고창에 “예”를 눌렀고, 휴지통까지 깨끗이 비웠는데 도대체 왜 데이터는 좀비처럼 되살아나는 걸까요? 이 미스터리를 풀기 위해서는 운영체제(OS)가 데이터를 관리하는 근본적인 메커니즘인 파일 시스템의 원리를 이해해야 합니다.
목차
1. 운영체제의 눈속임
우리가 사용하는 윈도우(Windows)나 맥(macOS) 같은 운영체제는 하드디스크라는 거대한 도서관을 관리하는 사서와 같습니다. 도서관에 수만 권의 책이 꽂혀 있을 때, 사서는 책의 위치를 찾기 위해 도서 목록(인덱스)을 확인합니다. 컴퓨터에서도 마찬가지로 파일의 실제 데이터가 저장된 위치를 기록해 놓은 장부가 있는데 윈도우의 경우 이를 FAT(File Allocation Table) 또는 MFT(Master File Table)라고 부릅니다.
사용자가 파일을 삭제하고 휴지통을 비우는 행위는, 실제 데이터를 불태워 없애는 것이 아니라 도서 목록에서 책 제목만 지우는 것과 같습니다.
운영체제 입장에서는:
- 사용자가 ‘삭제’ 명령을 내립니다.
- 파일 시스템의 목록(MFT)에서 해당 파일의 이름과 위치 정보 맨 앞에 ‘삭제됨’이라는 표식을 남깁니다. (보통 헥사 코드로 파일 이름의 첫 글자를 변경합니다.)
- 그리고 사용자에게는 “파일이 삭제되었습니다”라고 알려주고, 해당 파일이 차지하고 있던 용량을 ‘사용 가능한 공간’으로 표시합니다.
즉, 실제 데이터(0과 1의 비트 정보)는 하드디스크의 플래터나 메모리 셀 안에 그대로 남아 있지만, 운영체제는 그곳을 “비어 있음”으로 간주하고 더 이상 접근하지 않을 뿐입니다. 이것이 바로 논리적 삭제입니다.
2. 왜 즉시 지우지 않을까? ‘속도’와 ‘효율성’의 문제
그렇다면 운영체제는 왜 데이터를 즉시 지우지 않고 목록만 수정하는 꼼수를 부리는 걸까요? 정답은 바로 성능 때문입니다.
데이터를 실제로 완전히 지우려면, 해당 데이터가 기록된 모든 저장 공간(섹터)에 무의미한 값(0 또는 1, 혹은 난수)을 덮어써야 합니다. 이를 ‘제로 필(Zero-fill)’ 또는 ‘와이핑(Wiping)’이라고 합니다. 하지만 10GB짜리 고화질 영화 파일을 삭제한다고 가정해 봅시다. 만약 실제로 10GB 공간 전체를 0으로 덮어쓰는 작업을 수행한다면, 삭제하는 데만 몇 분의 시간이 걸릴 수 있습니다.
사용자는 파일 삭제가 즉각적으로 이루어지길 원합니다. 따라서 운영체제는 사용자 경험과 시스템 자원 낭비를 줄이기 위해, 실제 데이터는 건드리지 않고 주소록만 빠르게 수정하는 방식을 택한 것입니다. 이 덕분에 우리는 수 기가바이트의 파일도 1초 만에 삭제할 수 있는 것입니다.
3. 데이터 복구 프로그램의 원리
데이터 복구 업체나 ‘Recuva’ 같은 복구 프로그램들이 하는 일은 의외로 단순합니다. 운영체제가 “비어 있다”고 표시한 구역을 무시하고, 저장 장치의 모든 섹터를 샅샅이 뒤지는 것입니다.
앞서 말한 도서관 비유로 돌아가면, 사서(OS)는 목록에 없으니 책이 없다고 말하지만, 복구 프로그램은 도서관 서가 전체를 직접 돌아다니며 버려진 책들을 찾아내는 것과 같습니다. 데이터의 실제 내용이 새로운 데이터로 덮어씌워지지 않았다면, 복구 프로그램은 “여기 삭제된 파일의 흔적이 있네요”라며 데이터를 완벽하게 살려낼 수 있습니다.
이것이 바로 범죄 수사에서 디지털 포렌식이 가능한 이유이기도 합니다. 범인이 증거 인멸을 위해 파일을 삭제해도 하드디스크 깊은 곳에는 그 흔적이 고스란히 남아있기 때문입니다.
4. 덮어쓰기와 완전 삭제
그렇다면 데이터를 복구 불가능하게 완전히 지우려면 어떻게 해야 할까요? 핵심은 덮어쓰기입니다.
종이에 연필로 쓴 글씨를 지우개로 지워도 자국이 남지만, 그 위에 검은색 펜으로 덧칠을 하면 원래 글씨를 알아볼 수 없게 되는 것과 같은 원리입니다.
- 전용 삭제 프로그램 사용 : 단순히 휴지통을 비우는 것이 아니라, 백신 프로그램에 포함된 ‘파일 완전 삭제’ 기능을 사용해야 합니다. 이들은 데이터가 있던 자리에 난수를 3번에서 많게는 35번까지 덮어씌워 복구를 불가능하게 만듭니다.
- 로우 레벨 포맷(Low-Level Format) : 디스크의 모든 섹터를 공장 출하 상태인 ‘0’으로 초기화하는 방법입니다. 일반적인 ‘빠른 포맷’은 인덱스만 지우는 것이므로 복구가 가능하지만, 로우 레벨 포맷은 복구가 매우 어렵습니다.
- 물리적 파괴 : 가장 확실한 보안이 필요한 경우(기업 서버, 군사 기밀 등), 디스크에 강력한 자력을 가해 데이터를 날려버리는 디가우징(Degaussing) 장비를 쓰거나, 물리적으로 디스크에 구멍을 뚫어 파쇄합니다.
5. SSD의 경우는 조금 다르다? (TRIM 기능)
여기서 한 가지 주의할 점은, 최근 많이 사용하는 SSD는 조금 다르게 작동한다는 것입니다. SSD는 트림(TRIM)이라는 기능을 통해 삭제된 데이터 공간을 미리미리 비워두는 특성이 있습니다. (이전 포스팅에서 다룬 ‘가비지 컬렉션’과 관련이 있습니다.)
운영체제가 “이 파일 지웠어”라고 신호를 보내면, SSD 컨트롤러는 성능 유지를 위해 해당 셀의 데이터를 실제로 비워버릴 확률이 높습니다. 따라서 SSD에서 삭제된 데이터는 HDD(하드디스크)에 비해 복구 난이도가 훨씬 높습니다. 하지만 이 역시 100% 즉시 삭제를 보장하는 것은 아니므로, 보안이 중요하다면 안심해서는 안 됩니다.
편리함과 보안 사이의 균형
“휴지통 비우기”는 삭제가 아니라 재활용 가능 상태로 변경이라는 표현이 더 정확합니다. 우리가 컴퓨터를 쓰면서 느끼는 쾌적한 속도는 이러한 보안상의 허점을 담보로 하고 있는 셈입니다.
중고로 PC나 외장 하드를 판매할 계획이 있다면, 혹은 남에게 보여주고 싶지 않은 민감한 데이터를 다룬다면, 단순히 Delete 키를 누르는 것으로는 충분하지 않습니다. 데이터의 흔적까지 지워버리는 ‘완전 삭제’ 솔루션을 활용하거나, 적어도 디스크 전체를 초기화하는 습관을 들이는 것이 여러분의 소중한 정보를 지키는 첫걸음이 될 것입니다.
지금까지 ‘토니노드의 글’ 이었습니다. 긴 글 읽어주셔서 감사합니다!