테마
04. 저장장치와 파일시스템
학습 목표
- 주기억장치와 보조기억장치의 차이를 이해하고, 왜 두 종류가 모두 필요한지 설명할 수 있다.
- HDD의 물리적 구조(플래터, 스핀들, 헤드)와 논리적 구조(트랙, 섹터)를 설명할 수 있다.
- 파일 시스템(FAT)의 역할과 파일 삭제/복원의 원리를 이해한다.
- 조각모음, MBR, 포맷의 개념을 설명할 수 있다.
- SSD의 구조적 차이와 HDD 대비 장단점을 이해한다.
전체 구조
이 장에서는 컴퓨터가 데이터를 어디에, 어떤 방식으로 저장하는지를 다룬다. 주기억장치와 보조기억장치의 역할 분담부터, HDD 내부의 물리적/논리적 구조, 파일 시스템이 파일을 관리하는 방법, 그리고 삭제/복원/조각모음/포맷/부팅까지 전 과정을 살펴본다.
1. 주기억장치 vs 보조기억장치
핵심 개념
컴퓨터에는 두 종류의 기억장치가 존재한다.
| 구분 | 주기억장치 (RAM) | 보조기억장치 (HDD/SSD) |
|---|---|---|
| CPU와의 관계 | CPU와 직접 소통 | CPU가 직접 접근 불가 |
| 휘발성 | 전원 끄면 데이터 소멸 | 전원 꺼도 데이터 유지 |
| 속도 | 매우 빠름 (나노초 단위) | 상대적으로 느림 (밀리초~마이크로초) |
| 용량 | 작음 (보통 8~64GB) | 대용량 (수백 GB ~ 수 TB) |
| 가격 | GB당 비쌈 | GB당 저렴 |
데이터 흐름
CPU는 보조기억장치에 직접 접근할 수 없다. 반드시 RAM을 거쳐야 한다.
보조기억장치(HDD/SSD) --[필요한 데이터 로드]--> RAM --[처리할 데이터 전달]--> CPU프로그램을 실행하면 HDD/SSD에 저장된 프로그램 파일이 RAM으로 올라가고, CPU는 RAM에 있는 데이터를 읽어 명령을 처리한다.
왜 둘 다 필요한가?
속도, 용량, 가격 세 가지를 동시에 만족하는 기억장치는 존재하지 않는다.
- RAM만 쓴다면: 빠르지만 전원 끄면 모두 사라지고, 비용이 엄청남
- HDD만 쓴다면: 저렴하고 대용량이지만 CPU가 직접 읽기엔 너무 느림
따라서 RAM은 현재 작업 중인 데이터를 잠시 올려놓는 빠른 공간, HDD/SSD는 모든 데이터를 영구 보관하는 넓은 공간으로 역할을 분담한다.
비유: 책상과 책장
| 비유 | 실제 |
|---|---|
| 책상 위 작업 공간 | RAM |
| 책장(보관함) | HDD/SSD |
| 내가 지금 읽는 책 | 실행 중인 프로그램 |
| 책장에서 꺼내 책상에 올리기 | 프로그램을 HDD에서 RAM으로 로드 |
| 책상 정리(퇴근) | 전원 끄기 = RAM 내용 소멸 |
| 책장의 책은 그대로 | HDD/SSD 데이터는 유지 |
2. HDD의 물리적 구조
핵심 부품
HDD(Hard Disk Drive)는 내부에 실제로 회전하는 금속 원판이 들어 있다.
| 부품 | 역할 |
|---|---|
| 플래터(Platter) | 자기 물질이 코팅된 원판. 데이터가 실제로 저장되는 곳 |
| 스핀들(Spindle) | 플래터를 고속으로 회전시키는 모터 |
| 헤드(Head) | 플래터 표면 위를 떠다니며 데이터를 읽고 쓰는 장치 |
| 액추에이터 암(Arm) | 헤드를 플래터의 안쪽/바깥쪽으로 이동시키는 팔 |
동작 원리
- 스핀들이 플래터를 초고속으로 회전시킨다 (보통 5,400~7,200 RPM, 서버용은 10,000~15,000 RPM).
- 헤드가 플래터 위에서 자기 신호를 읽거나 써서 데이터를 처리한다.
- 헤드는 플래터와 직접 접촉하지 않고, 머리카락 두께의 수백 분의 1 정도 거리에서 떠 있다.
RPM과 성능
RPM(Revolutions Per Minute, 분당 회전수)이 높을수록 데이터에 빨리 접근할 수 있다. 플래터가 빨리 돌수록 원하는 데이터가 헤드 아래로 오는 시간(회전 지연 시간)이 줄어들기 때문이다.
비유: 레코드판과 바늘
HDD는 구조적으로 LP 레코드 플레이어와 매우 유사하다.
| 레코드 플레이어 | HDD |
|---|---|
| LP 원판 | 플래터 |
| 원판을 돌리는 턴테이블 모터 | 스핀들 |
| 원판 위의 바늘 | 헤드 |
| 바늘을 이동시키는 톤암 | 액추에이터 암 |
| 홈(groove)에 새겨진 음악 | 자기 신호로 기록된 데이터 |
3. 논리적 구조: 트랙과 섹터
HDD의 물리적 표면을 소프트웨어가 관리하려면 논리적인 주소 체계가 필요하다.
트랙 (Track)
플래터 위에 그려진 동심원 형태의 경로이다. 가장 바깥쪽부터 안쪽까지 번호가 매겨져 있다. 마치 운동장의 트랙처럼 원형 경로가 여러 겹으로 존재한다.
섹터 (Sector)
하나의 트랙을 피자 조각처럼 나눈 것이 섹터이다. 섹터는 데이터 저장의 최소 단위로, 보통 512바이트이다 (최신 디스크는 4,096바이트인 경우도 있다).
주소 체계
데이터의 위치는 **"몇 번 트랙의 몇 번 섹터"**로 특정한다.
- 예: "트랙 150, 섹터 23"에 데이터가 저장되어 있다
- 이 주소를 통해 헤드를 해당 트랙으로 이동시키고, 플래터가 회전하여 해당 섹터가 헤드 아래에 올 때 읽는다
RAM과의 비교
| 구분 | RAM | 보조기억장치 (HDD) |
|---|---|---|
| 주소 방식 | 일련번호 (메모리 주소) | 트랙 번호 + 섹터 번호 |
| 접근 방식 | 주소만 알면 바로 접근 (임의 접근) | 헤드 이동 + 플래터 회전 필요 |
| 접근 속도 | 나노초 | 밀리초 |
4. 클러스터와 내부 단편화
클러스터 (Cluster)
운영체제는 섹터 하나하나를 개별적으로 관리하지 않는다. 관리 효율을 위해 인접한 여러 섹터를 하나로 묶은 단위를 사용하는데, 이를 클러스터라고 한다.
- 클러스터 크기는 파일 시스템과 디스크 크기에 따라 다르다 (보통 4KB~64KB)
- 운영체제는 파일을 저장할 때 클러스터 단위로 공간을 할당한다
내부 단편화 (Internal Fragmentation)
클러스터 단위로 저장하면 남는 공간이 낭비될 수 있다.
| 상황 | 설명 |
|---|---|
| 클러스터 크기 = 4KB | 운영체제가 한 번에 할당하는 최소 단위 |
| 파일 크기 = 1KB | 실제 데이터는 1KB뿐 |
| 낭비되는 공간 = 3KB | 나머지 3KB는 사용 불가 상태로 비어 있음 |
이처럼 할당된 공간 내부에서 발생하는 낭비를 내부 단편화라고 한다.
비유: 택배 상자
택배를 보낼 때 가장 작은 상자가 "소형 박스"라고 하자. 아주 작은 열쇠고리 하나를 보내더라도 소형 박스 하나를 써야 한다. 상자 안에 열쇠고리만 덜렁 들어 있고 나머지 공간은 텅 비어 있다. 이것이 내부 단편화이다.
5. 파일 시스템이란?
정의
파일 시스템은 트랙과 섹터 위에서 파일을 논리적으로 관리하는 체계이다. 사용자가 "문서.docx"라는 이름으로 파일을 저장하면, 파일 시스템이 이 파일의 데이터를 어느 트랙의 어느 섹터에 배치할지 결정하고, 나중에 다시 찾을 수 있도록 위치 정보를 기록한다.
대표적인 파일 시스템
| 파일 시스템 | 운영체제 | 특징 |
|---|---|---|
| FAT (FAT16/FAT32) | Windows (구형), USB | 단순한 구조, 호환성 좋음 |
| NTFS | Windows | 권한 관리, 암호화, 저널링 지원 |
| ext4 | Linux | 대용량 파일/파티션 지원, 저널링 |
| APFS | macOS | 스냅샷, 암호화, SSD 최적화 |
FAT (File Allocation Table) 상세
FAT는 이름 그대로 파일 할당 테이블, 즉 파일이 디스크의 어디에 저장되어 있는지를 기록하는 표이다.
FAT 테이블에 기록되는 정보:
| 항목 | 설명 |
|---|---|
| 파일 이름 | 예: "report.docx" |
| 시작 클러스터 번호 | 파일 데이터가 시작되는 위치 |
| 연결 링크 | 파일이 여러 클러스터에 걸쳐 있을 때 다음 클러스터 번호 |
| 파일 크기 | 바이트 단위 |
| 날짜/시간 | 생성일, 수정일 |
| 속성 | 읽기 전용, 숨김 파일 등 |
파일이 하나의 클러스터에 다 들어가지 않으면, FAT 테이블의 연결 링크를 따라 다음 클러스터로 이동하여 나머지 데이터를 읽는다. 이 구조는 연결 리스트(Linked List)와 유사하다.
비유: 도서관 카드 목록
| 도서관 | 파일 시스템 |
|---|---|
| 카드 목록함 | FAT 테이블 |
| 카드에 적힌 "서가 번호, 선반 번호" | 시작 클러스터, 연결 링크 |
| 책 제목, 저자, 발행일 | 파일 이름, 크기, 날짜 |
| 실제 책 | 디스크에 저장된 실제 데이터 |
6. 파일 삭제와 복원
파일 삭제의 실제 동작
직관적으로 "파일 삭제 = 데이터가 지워진다"라고 생각하기 쉽지만, 실제로는 그렇지 않다.
파일을 삭제하면 일어나는 일:
- FAT 테이블에서 해당 파일의 첫 글자를 **특수 문자(예: 0xE5)**로 변경한다.
- 해당 클러스터들을 "사용 가능"으로 표시한다.
- 실제 데이터는 디스크에 그대로 남아 있다.
이는 속도 때문이다. 수 GB짜리 파일의 모든 데이터를 일일이 지우려면 시간이 오래 걸리므로, "이 공간은 이제 다른 데이터가 써도 된다"는 표시만 하는 것이다.
복원이 가능한 이유
삭제된 파일의 실제 데이터가 디스크에 남아 있으므로, 새로운 데이터가 그 자리를 덮어쓰기(overwrite) 전까지는 복원이 가능하다.
복원 소프트웨어의 동작 원리:
- FAT 테이블에서 삭제 마킹(0xE5)이 된 항목을 찾는다.
- 해당 클러스터의 연결 링크를 추적하여 원래 파일 구조를 재구성한다.
- 삭제 마킹을 원래 문자로 복원하고, 클러스터를 다시 "사용 중"으로 변경한다.
복원이 불가능한 경우
- 삭제 후 새 파일을 많이 저장하여 해당 클러스터가 덮어쓰기된 경우
- 느린 포맷(전체 포맷)으로 모든 섹터가 0으로 초기화된 경우
- SSD의 TRIM 명령이 실행되어 셀이 초기화된 경우
비유: 책장의 이름표
책장에서 책을 "삭제"할 때, 실제로 책을 태우거나 찢지 않는다. 단지 책등에 붙어 있던 이름표를 떼어내는 것이다. 책은 여전히 그 자리에 있으므로, 이름표를 다시 붙이면 원래대로 복원할 수 있다. 하지만 누군가 그 자리에 새 책을 꽂으면(덮어쓰기), 원래 책은 영영 사라진다.
7. 조각모음 (Defragmentation)
단편화 (Fragmentation)란?
파일이 디스크의 연속된 클러스터에 저장되지 않고, 여기저기 흩어져 저장되는 현상이다.
발생 원인
- 파일을 생성하고 삭제하는 과정이 반복된다.
- 삭제된 파일이 차지하던 공간이 군데군데 비게 된다.
- 새 파일을 저장할 때, 연속된 빈 공간이 부족하면 여러 떨어진 공간에 나누어 저장한다.
- 이 과정이 누적되면 하나의 파일이 디스크 곳곳에 조각나서 존재하게 된다.
성능 영향
HDD에서는 데이터를 읽으려면 헤드가 물리적으로 이동해야 한다. 파일이 흩어져 있으면 헤드가 트랙 100, 트랙 500, 트랙 200 순서로 왔다 갔다 해야 하므로 읽기 속도가 크게 저하된다.
조각모음의 동작
조각모음 프로그램은 흩어진 파일 조각들을 연속된 클러스터로 재배치한다. 이렇게 하면 헤드가 한 방향으로 쭉 읽으면 되므로 속도가 개선된다.
SSD에서는 의미 없음
SSD는 물리적인 헤드가 없다. 어떤 위치의 데이터든 전기 신호로 즉시 접근할 수 있으므로, 파일이 흩어져 있어도 속도 차이가 없다. 오히려 SSD에 조각모음을 하면 불필요한 쓰기 작업으로 수명만 단축된다. SSD는 대신 TRIM이라는 별도의 최적화 기술을 사용한다(10절 참고).
비유: 서류 캐비닛
하나의 보고서가 10장으로 구성되어 있다고 하자.
- 단편화 상태: 1~3장은 1번 캐비닛, 4~5장은 7번 캐비닛, 6~10장은 3번 캐비닛에 흩어져 있다. 보고서를 읽으려면 캐비닛 사이를 왔다 갔다 해야 한다.
- 조각모음 후: 1~10장이 모두 1번 캐비닛에 순서대로 들어 있다. 한 곳에서 쭉 읽으면 된다.
8. MBR (Master Boot Record)
위치와 역할
MBR은 디스크의 가장 첫 번째 영역, 즉 0번 트랙의 0번 섹터에 위치한다. 크기는 512바이트이다.
컴퓨터의 전원을 켜면 가장 먼저 읽히는 곳이 바로 이 MBR이다.
MBR에 담긴 내용
| 구성 요소 | 크기 | 역할 |
|---|---|---|
| 부트로더 코드 | 446바이트 | 운영체제를 찾아서 실행하는 작은 프로그램 |
| 파티션 테이블 | 64바이트 | 디스크가 어떻게 나누어져 있는지 (최대 4개 파티션) |
| 매직 넘버 | 2바이트 | 유효한 MBR인지 확인하는 서명 (0x55AA) |
부팅 과정에서의 MBR
MBR 손상의 결과
MBR이 손상되면 컴퓨터는 운영체제를 찾을 수 없다. 전원은 들어오고 BIOS 화면까지는 보이지만, "Operating System Not Found" 같은 메시지가 뜨며 더 이상 진행되지 않는다.
MBR을 노리는 바이러스가 존재하는 이유가 여기에 있다. MBR의 512바이트만 파괴하면 컴퓨터 전체가 부팅 불가 상태가 된다.
9. 포맷 (Format)
정의
포맷은 디스크에 파일 시스템을 새로 입히는 작업이다. 새 디스크를 처음 사용하거나, 기존 디스크의 데이터를 모두 정리하고 싶을 때 수행한다.
빠른 포맷 vs 느린 포맷
| 구분 | 빠른 포맷 (Quick Format) | 느린 포맷 (Full Format) |
|---|---|---|
| 동작 | FAT 등 메타데이터만 초기화 | 모든 트랙/섹터를 0으로 덮어쓰기 |
| 소요 시간 | 수 초 ~ 수 분 | 수십 분 ~ 수 시간 |
| 데이터 복원 | 가능성 있음 (데이터 자체는 남아 있음) | 매우 어려움 (전부 0으로 덮어씀) |
| 배드 섹터 검사 | 하지 않음 | 수행함 |
| 용도 | 빠르게 초기화하고 재사용 | 완전한 초기화, 디스크 건강 검사 |
비유: 도서관 정리
- 빠른 포맷: 도서관의 카드 목록함만 비운다. 서가의 책은 그대로 있지만, 목록이 없으므로 찾을 수 없는 상태가 된다. 누군가 정성 들여 서가를 뒤지면 책을 찾을 수도 있다(데이터 복원).
- 느린 포맷: 서가의 모든 책을 빈 노트로 교체한다. 원래 있던 내용은 완전히 사라진다.
10. SSD의 특징
구조적 차이
SSD(Solid State Drive)는 HDD와 완전히 다른 방식으로 데이터를 저장한다.
| 구분 | HDD | SSD |
|---|---|---|
| 저장 매체 | 자기 디스크 (플래터) | 반도체 칩 (NAND 플래시 메모리) |
| 움직이는 부품 | 플래터 회전, 헤드 이동 | 없음 |
| 데이터 접근 | 물리적 이동 필요 | 전기 신호로 즉시 접근 |
| 읽기/쓰기 속도 | 100~200 MB/s | 500~7,000+ MB/s |
| 충격 내구성 | 약함 (정밀 기계 부품) | 강함 (고체 부품) |
| 소음 | 있음 (모터 회전) | 없음 |
| 가격 | GB당 저렴 | GB당 비쌈 (차이 줄어드는 중) |
논리적 관리는 동일
SSD도 운영체제 입장에서는 트랙과 섹터의 논리적 주소 체계를 그대로 사용한다. 내부적으로는 **FTL(Flash Translation Layer)**이 논리 주소를 실제 플래시 메모리 셀 위치로 변환한다. 따라서 파일 시스템, FAT 테이블 등의 개념은 HDD와 동일하게 적용된다.
조각모음이 필요 없는 이유
HDD에서 조각모음이 필요한 이유는 헤드의 물리적 이동 때문이었다. SSD는 물리적 이동 없이 어떤 셀이든 동일한 속도로 접근하므로, 파일이 흩어져 있어도 성능 저하가 없다.
TRIM
SSD에서는 조각모음 대신 TRIM 기술을 사용한다.
- 파일 삭제 시 운영체제가 SSD에 "이 영역은 더 이상 사용하지 않는다"고 알려주는 명령
- SSD 컨트롤러가 미리 해당 셀을 초기화해두어, 나중에 새 데이터를 쓸 때 빠르게 처리할 수 있도록 준비
- TRIM이 없으면 SSD는 쓸 때마다 "기존 데이터 지우기 + 새 데이터 쓰기"를 동시에 해야 하므로 느려짐
핵심 암기 포인트
| 항목 | 핵심 내용 |
|---|---|
| RAM vs 보조기억장치 | RAM은 일련번호(메모리 주소)로 관리, 보조기억장치는 트랙+섹터로 관리 |
| 섹터 | 데이터 저장의 최소 단위, 보통 512바이트 |
| 클러스터 | 여러 섹터를 묶은 관리 단위, 내부 단편화 발생 가능 |
| FAT | 파일이 어느 클러스터에 저장되어 있는지 기록하는 테이블 |
| 파일 삭제 | FAT에서 삭제 마킹만 함, 실제 데이터는 디스크에 유지 |
| 파일 복원 | 덮어쓰기 전까지는 복원 가능 |
| MBR | 0번 트랙 0번 섹터에 위치, 부팅의 시작점 |
| 빠른 포맷 | 메타데이터(FAT 등)만 초기화, 데이터 복원 가능성 있음 |
| 느린 포맷 | 모든 섹터를 0으로 덮어쓰기, 복원 사실상 불가 |
| SSD | 반도체 칩 기반, 조각모음 불필요, TRIM으로 최적화 |
확인 질문
1. 파일을 삭제했는데 복원할 수 있는 이유는?
파일 삭제 시 실제 데이터를 지우는 것이 아니라, FAT 테이블에서 삭제 마킹(첫 글자를 특수 문자로 변경)만 하기 때문이다. 디스크에 실제 데이터가 그대로 남아 있으므로, 새로운 데이터가 해당 영역을 덮어쓰기 전까지는 복원 소프트웨어로 FAT 연결 링크를 추적하여 파일을 복구할 수 있다.
2. MBR이 손상되면 어떤 일이 발생하는가?
MBR에는 부트로더 코드와 파티션 테이블이 들어 있다. MBR이 손상되면 컴퓨터가 운영체제의 위치를 찾을 수 없어 부팅이 불가능해진다. 전원은 들어오고 BIOS 화면까지는 보이지만, 운영체제를 로드하지 못하고 오류 메시지를 표시한다.
3. HDD와 SSD의 가장 큰 구조적 차이는?
HDD는 **자기 디스크(플래터)**를 물리적으로 회전시키고 헤드를 이동하여 데이터를 읽고 쓴다. SSD는 **반도체 칩(NAND 플래시 메모리)**에 전기 신호로 데이터를 저장하며, 움직이는 부품이 전혀 없다. 이 차이로 인해 SSD가 속도, 내구성, 소음 면에서 유리하다.
4. 빠른 포맷과 느린 포맷의 차이는?
빠른 포맷은 FAT 등 메타데이터만 초기화하므로 빠르지만, 실제 데이터는 디스크에 남아 있어 복원 가능성이 있다. 느린 포맷(전체 포맷)은 모든 섹터를 0으로 덮어쓰고 배드 섹터 검사까지 수행하므로 시간이 오래 걸리지만, 데이터 복원이 사실상 불가능하고 디스크 상태까지 점검할 수 있다.
5. 조각모음이 SSD에서 의미 없는 이유는?
HDD에서 조각모음이 필요한 이유는 흩어진 데이터를 읽기 위해 헤드가 물리적으로 이동해야 하기 때문이다. SSD는 물리적 이동 부품이 없으며, 어떤 위치의 데이터든 전기 신호로 동일한 속도로 접근할 수 있다. 따라서 파일이 흩어져 있어도 성능 차이가 없으며, 불필요한 쓰기 작업은 오히려 SSD 수명을 단축시킨다. SSD는 대신 TRIM 명령으로 최적화한다.