
우리가 도서관에서 원하는 책을 찾을 때, 가장 먼저 향하는 곳은 어디일까? 바로 모든 책의 위치와 정보가 담긴 도서 목록 카드나 검색 시스템이다. 이 시스템이 없다면 수만 권의 책 사이에서 원하는 책 한 권을 찾는 것은 거의 불가능에 가까울 것이다. 컴퓨터의 파일 시스템도 이와 같다. 특히 윈도우 운영체제에서 표준으로 사용하는 NTFS(New Technology File System)는 이 '도서 목록' 역할을 하는 매우 정교하고 중요한 구조를 가지고 있다. 그것이 바로 'MFT(Master File Table)', 즉 '마스터 파일 테이블'이다. NTFS의 심장이자 모든 파일의 기록 보관소인 MFT에 대해 깊이 있게 탐구해 보고자 한다.

MFT(Master File Table)는 NTFS 파일 시스템으로 포맷된 볼륨(파티션)에 존재하는 가장 중요한 파일이다. 역설적이게도 MFT 자체도 하나의 파일($MFT라는 이름을 가짐)이지만, 그 내용은 해당 볼륨에 있는 모든 파일과 디렉터리에 대한 '정보'를 담고 있다. 파일 이름, 크기, 생성 및 수정 날짜와 같은 기본적인 정보부터 보안 속성, 그리고 가장 중요한 실제 데이터의 위치 정보까지, 파일에 관한 모든 것이 MFT에 기록된다. 따라서 운영체제가 특정 파일을 읽거나 쓰려고 할 때, 반드시 MFT를 먼저 참조하여 해당 파일의 정보를 얻어야 한다. 만약 MFT가 심각하게 손상된다면, 파일 데이터가 디스크에 멀쩡히 남아있더라도 우리는 그 파일에 접근할 수 없게 된다. 이는 도서관의 목록이 사라지면 책을 찾을 수 없는 것과 같은 이치이다.
MFT는 '레코드(Record)'라는 일정한 크기의 단위들로 구성된 거대한 테이블이다. 각 레코드는 보통 1KB(1024바이트)의 크기를 가지며, 볼륨 내의 파일이나 디렉터리 하나하나에 각각의 레코드가 할당된다. MFT의 첫 번째 레코드들은 시스템 운영에 필수적인 메타데이터 파일들(예: $MFT 자신, $MFTMirr(MFT 백업), $LogFile 등)을 위해 예약되어 있다.

하나의 MFT 레코드 안에는 다양한 '속성(Attribute)'들이 존재하며, 이 속성들을 통해 파일의 모든 정보가 조각조각 나뉘어 저장된다. 파일 관리에 핵심적인 속성들은 무엇일까?
- $STANDARD_INFORMATION: 파일의 생성 시간, 수정 시간, 접근 시간과 같은 타임스탬프 정보와 파일 속성(읽기 전용, 숨김 등)을 담고 있다.
- $FILE_NAME: 파일의 이름 정보를 저장한다. 유니코드를 지원하는 긴 파일 이름과 MS-DOS 호환을 위한 짧은 파일 이름(8.3 형식)이 모두 여기에 기록된다.
- $DATA: 파일의 실제 내용을 담고 있는 가장 중요한 속성이다. 여기서 중요한 점은 파일의 크기에 따라 데이터 저장 방식이 달라진다는 것이다.
- 거주 데이터 (Resident Data): 파일 크기가 매우 작아서 MFT 레코드 내의 남는 공간에 저장할 수 있는 경우, 데이터는 $DATA 속성 안에 직접 기록된다.
- 비거주 데이터 (Non-Resident Data): 대부분의 파일처럼 크기가 큰 경우, $DATA 속성에는 실제 데이터 대신 데이터가 저장된 디스크의 위치(클러스터 주소)를 가리키는 포인터 정보만 기록된다.
- $SECURITY_DESCRIPTOR: 해당 파일에 접근할 수 있는 사용자나 그룹이 누구인지, 그리고 어떤 권한(읽기, 쓰기, 실행 등)을 갖는지에 대한 보안 정보를 담고 있다.
사용자가 파일을 더블 클릭하여 실행하는 간단한 동작 뒤에는 MFT의 신속하고 정교한 작업이 숨어 있다. 운영체제가 파일에 접근하는 과정을 MFT 중심으로 살펴보자.

- 파일 경로 분석: 사용자가 C:\Docs\report.docx 파일을 요청하면, 운영체제는 먼저 루트 디렉터리(C:\)부터 시작하여 Docs 디렉터리를 찾고, 그 안에서 report.docx 파일의 MFT 레코드 번호를 찾아낸다.
- MFT 레코드 조회: 운영체제는 해당 번호의 MFT 레코드로 직접 이동하여 파일 정보를 읽는다.
- $DATA 속성 확인: MFT 레코드 내의 $DATA 속성을 확인하여 실제 데이터의 위치를 파악한다.
- 데이터 접근: 데이터가 '비거주 데이터'라면, $DATA 속성에 기록된 클러스터 주소를 따라 디스크의 해당 위치로 이동하여 파일 내용을 읽어 들여 사용자에게 보여준다.
파일을 삭제할 때는 더욱 흥미로운 일이 벌어진다. 파일을 삭제하면 MFT 레코드에서 해당 파일이 '사용 중이지 않음'이라고 상태만 변경될 뿐, MFT 레코드 자체나 디스크에 저장된 실제 데이터가 즉시 지워지지는 않는다. 이 때문에 새로운 데이터가 그 공간을 덮어쓰기 전까지는 '파일 복구 프로그램'이 MFT의 흔적을 분석하여 삭제된 파일을 되살릴 수 있는 것이다.

MFT 기반의 NTFS는 이전 세대의 파일 시스템인 FAT(File Allocation Table)에 비해 월등한 성능과 안정성, 그리고 확장성을 제공한다. MFT는 파일의 속성을 유연하게 추가할 수 있는 구조 덕분에 파일 압축, 암호화, 디스크 사용량 할당과 같은 고급 기능을 지원할 수 있다. 또한, 중요한 파일 시스템 작업을 기록하는 저널링(Journaling, $LogFile 활용) 기능을 통해 예기치 않은 시스템 중단이 발생하더라도 파일 시스템의 일관성을 빠르게 복구할 수 있다.

결론적으로 MFT는 단순한 파일 목록을 넘어, NTFS라는 강력한 파일 시스템을 지탱하는 핵심 엔진이다. 우리가 윈도우 환경에서 대용량 파일을 안정적으로 다루고, 강력한 보안을 유지하며, 데이터를 관리할 수 있는 것은 모두 보이지 않는 곳에서 묵묵히 자신의 역할을 수행하는 MFT 덕분이다.

#MFT #마스터파일테이블 #NTFS #파일시스템 #데이터복구 #윈도우 #하드디스크 #SSD #IT지식 #전산기초
'IT 정보 > 용어' 카테고리의 다른 글
| 선버스트(SUNBURST)란? 역대급 공급망 공격에 사용된 악성코드 (0) | 2025.10.08 |
|---|---|
| 미미카츠(Mimikatz)란? 윈도우 비밀번호를 평문으로? 해킹툴의 제왕 (0) | 2025.10.07 |
| 컴퓨터 부팅의 첫 단추, MBR(마스터 부트 레코드)에 대해 (0) | 2025.10.05 |
| BSOD란? 내 컴퓨터가 멈췄다? 공포의 블루스크린 이야기 (0) | 2025.10.04 |
| 데브섹옵스(DevSecOps)란? 빠르고 안전한 개발의 새로운 표준 (0) | 2025.10.03 |