본문 바로가기

CS BASIC/정보시스템 일반

[CS BASIC] Windows USB 저장 장치와 파일 시스템

개요(Overview)

 

오늘은 Windows의 파일 시스템과 USB 저장 장치에 대해서 알아보도록 하겠습니다.

컴퓨터를 구성하는 하드웨어 장치에는 CPU, RAM, 전원 공급 장치와 같이 기계가 잘 동작하도록 돕는 요소들도 있지만,

SSD, HDD, USB 저장 장치와 같이 프로그램이나 자료 등이 저장되는 장치도 존재합니다.

 

오늘은 이러한 저장 장치에 대해 질문과 답변 형식으로 컨텐츠를 구성해보았습니다.

 


 

Q. 파일 시스템이란 무엇이며, 왜 고안되었을까?

 파일 시스템(File System)은 운영체제가 데이터를 저장하고 관리하는 구조적인 방식입니다.

쉽게 말하면, 저장 장치(USB, SSD, HDD 등)에서 데이터를 어떻게 저장할지, 파일을 어떻게 조직할지 정하는 규칙을 파일 시스템이라고 부릅니다.

 

 

https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC_%EC%8B%9C%EC%8A%A4%ED%85%9C

 

파일 시스템 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 파일 시스템(file system)은 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제를 가리키는 말이다. 파일 시스템은 통상 하드

ko.wikipedia.org

 

 

 

Q.  왜 파일 시스템이 필요할까?

파일 시스템은 컴퓨터 시스템에서 저장 장치가 용어에 함의하는 뜻 그대로 '저장'이라는 역할을 잘 수행하도록 고안된 것입니다.

Windows와 같은 OS가 물리적으로 연결된 하드웨어를 어떤 방식으로 '이해' 하고 '저장'이라는 작업을 수행하는지 돕는 역할을 합니다.

따라서, 파일 시스템은 아래와 같은 의의가 있다고 할 수 있습니다.

  

  • 데이터 저장과 검색: 물리적으로 저장된 데이터를 체계적으로 정리하여 빠르게 찾을 수 있도록 함.
  • 파일 관리: 이름, 크기, 속성, 위치 등의 파일 정보를 효율적으로 유지.
  • 디스크 공간 관리: 파일이 차지하는 공간을 최적화하여 낭비를 줄임.
  • 데이터 보호 및 보안: 권한 설정, 암호화, 백업 등을 지원.

 

Q. 파일 시스템의 주요 규격과 NTFS, FAT32가 널리 쓰이는 이유는 무엇일까?

Windows를 사용하는 사용자라면 한 번쯤은 USB 저장장치를 포맷하기 위해 아래와 같은 창을 보았을 것입니다.

 

<Fig 1.1. Windows USB  디스크 포맷 >

 

 

디스크를 포맷하기 위해 여러가지 설정들을 편집하게 되는데,

이때 파일 시스템 항목에서는 주로 NTFS나 FAT32와 같은 시스템을 일반적으로 사용합니다.

 

그렇다면 왜 이런 두 파일 시스템을 범용적으로 사용하는 것일까요?

 

그 이유는 Window라는 OS와 관련이 매우 깊습니다.

파일 시스템의 주요 규격은 아래와 같이 크게 다섯 가지 요소를 기준으로 평가를 받게 됩니다.

 

평가 항목 설명
파일 이름 규칙 최대 길이, 확장자 형식 등 (: FAT32 8.3 형식 제한이 있었지만 VFAT 이후 긴 파일명 지원)
파일 크기 제한 파일당 최대 크기 (: FAT32는 최대 4GB, NTFS 16TB 이상)
디스크 크기 제한 전체 저장 장치에서 사용할 수 있는 최대 공간 (: FAT32는 최대 2TB, NTFS는 이론상 8PB)
보안 및 권한 설정 NTFS는 파일/폴더별 권한 관리 가능하지만 FAT32는 불가능
저널링(파일 손상 복구 기능) NTFS는 지원하지만 FAT32는 지원하지 않음.

 

 

위와 같은 항목을 고려했을 때, NTFS와 FAT32가 널리 쓰이는 이유는 각각 아래와 같이 정리해볼 수 있습니다.

 

FAT32

  • 오래된 운영체제(Windows 98, XP 등)부터 사용되어 호환성이 뛰어남.
  • USB 드라이브, 메모리 카드 등에서 범용적으로 사용.
  • 단점: 4GB 이상의 단일 파일 저장 불가, 보안 기능 부족.

 

NTFS

  • Windows의 기본 파일 시스템으로, 보안 및 성능이 뛰어남.
  • 4GB 이상의 파일 저장 가능, 권한 설정 가능, 저널링 지원.
  • 단점: 일부 OS(Linux, macOS)에서 기본적으로 읽기만 가능(쓰기 위해 별도 드라이버 필요).

 

결론적으로 FAT32는 범용적인 호환성이 강점이고,

NTFS는 성능과 보안이 강점이기 때문에 Windows 환경에서 널리 쓰이게 된 것입니다.

 

 

Q. 할당 단위 크기는 무엇일까?

할당 단위(Cluster Size)란 데이터를 저장할 때 최소한으로 차지하는 공간을 의미합니다.

쉽게 말하면, 저장 장치에서 데이터를 넣을 때 사용하는 "최소 박스 크기"라고 설명할 수 있습니다.

 

❓ 할당 단위 크기가 크면?

  • 작은 파일도 큰 공간을 차지 → 공간 낭비 가능.
  • 하지만 큰 파일을 처리할 때 속도가 빨라질 수 있음.\ 

 

❓  할당 단위 크기가 작으면?

  • 작은 파일 저장에 최적화되어 공간 낭비 적음.
  • 하지만 파일 조각화(Fragmentation)가 많아져 성능이 저하될 수도 있음. 

 

Q. 만약 할당 단위 1024 BYTE인 저장장치에 3567 BYTE 크기의 데이터가 있다면 어떻게 저장되는 것일까?

 바로 이와 같은 황에서  "할당 단위 크기"는 의미 있는 설정 값이 됩니다.

현재 사례에서 할당 단위 크기가 1024B라면, 3567B의 데이터는 1024B 단위로 나뉘어 저장됩니다.

 

3567 / 1024 = 3.48 (올림) → 4개의 클러스터 필요

따라서 실제 차지하는 공간은 4 × 1024 = 4096 BYTE

 

즉, 데이터 크기가 애매하면 마지막 남은 클러스터의 일부가 필연적으로 낭비되기 때문에

이러한 현상을 내부 단편화(Internal Fragmentation) 라고 합니다.

 

하지만 내부 단편화는 항상 나쁜 현상으로 보고 줄이는 것이 최선의 선택은 아닐 수 있습니다.

 

왜냐하면 당연히 할당 단위가 작으면 낭비되는 공간이 적어지겠지만, 이러한 할당 단위 크기를 바탕으로

특정 데이터를 쓰거나 읽기 때문에 데이터의 입출력 (I/O) 성능 부문에서 저하를 유발할 수 있기 때문입니다.

 

그러므로 너무 크거나 작지도 않은 적당한 크기를 선택하는 것이 좋습니다.

실제로 Windows에서는 아래의 그림 같이 기본 설정 크기를 제공하기도 하여 사용자의 선택을 편리하게 해주기도 합니다.

 

 

<Fig 1.2. USB  할당 단위 크기 >

  

 

 

정리하자면,

- 파일 시스템은 운영체제가 데이터를 저장하고 관리하는 방법을 정하는 구조입니다.

- FAT32는 호환성이 뛰어나고, NTFS는 보안과 성능이 뛰어나서 널리 사용됩니다.

- 할당 단위 크기는 파일 저장 시 최소 단위를 결정하며, 너무 크면 낭비되고, 너무 작으면 속도가 떨어질 수 있습니다.

- 할당 단위 크기 때문에 파일 크기가 애매하면 실제 저장 공간이 더 많이 차지될 수 있습니다(내부 단편화).


 

[추가] Q. USB 저장장치를 윈도우나 리눅스 같은 OS 이미지를 담는데 사용하기도 하는데,
이떄 왜 자연스레 파티션이 생길까?

 

일반적인 USB는 단순히 데이터를 저장하는 용도로 사용하지만, 부팅 디스크로 만들면 컴퓨터가 이 USB에서 직접 운영체제를 실행할 수 있도록 특정한 파일 시스템과 부팅 관련 데이터를 구성하게 됩니다.

 

주로 USB 저장장치를 Rufus와 같은 소프트웨어로 부팅 디스크로 만들 때 아래와 같은 작업이 일어나게 됩니다.

 

Step 1. MBR (Master Boot Record) 또는 GPT (GUID Partition Table) 설정

MBR (구형 BIOS용): 부팅 가능한 정보(부트로더 코드)가 저장됨.

GPT (UEFI 전용): 최신 방식으로 더 큰 저장 장치를 지원하고 여러 개의 파티션을 가짐.

 

Step2.  파일 시스템 변경 (FAT32, NTFS, exFAT 등)

BIOS 기반 시스템은 일반적으로 FAT32로 포맷된 USB에서 부팅할 수 있음.

최신 UEFI 시스템은 FAT32 또는 NTFS로도 부팅 가능하지만, 보통 FAT32를 선호함.

 

Step3. 부트로더(BOOTMGR 또는 GRUB 등) 설치

윈도우 USB 설치 디스크 → BOOTMGR(Windows Boot Manager)

리눅스 설치 USB → GRUB(GNU GRUB 부트로더)

 

위와 같은 부팅 디스크 만드는 과정을 거치면 USB에 자연스레 파티션이 생기게 되는데,

그 이유는 UEFI 환경에서는 FAT32 파티션이 필요하기 때문입니다.

 

https://namu.wiki/w/UEFI

 

UEFI

U nified E xtensible F irmware I nterface(통합 확장 펌웨어 인터페이스) 읽을

namu.wiki

 

 

 

UEFI 시스템에서는 부팅 가능한 파티션을 FAT32로 유지해야 하기 때문에

부트로더와 OS 설치 파일을 따로 저장할 수 있도록 두 개 이상의 파티션을 생성하는 경우가 많습니다.

 

예를 들어, Windows 설치 USB를 만들면 이렇게 파티션이 나뉠 수 있습니다.

 

EFI 시스템 파티션 (FAT32, 100~500MB 정도) → 부팅용

주 파티션 (NTFS, 나머지 공간) → 설치 파일 저장용

 

이처럼 부팅 디스크가 올바르게 작동하려면 특정한 파티션 구조가 필요해서 자동으로 나뉘게 됩니다.

 

 

<Fig 1.4.  USB 파티션이 나뉜 경우 >

 

 

일반 USB와 부팅 USB의 차이점 정리

특징 일반 USB 부팅 USB
사용 목적 단순 데이터 저장 OS 설치 및 부팅
파일 시스템 exFAT, NTFS, FAT32 등 자유롭게 선택 가능 보통 FAT32, NTFS 사용 (UEFI는 FAT32 필수)
파티션 구조   대부분 하나의 파티션 MBR/GPT에 따라 여러 개의 파티션 생성 가능
부트로더 없음 BOOTMGR, GRUB 등 포함

 

 

부팅 가능한 USB를 만들면, 일반 저장 장치처럼 동작하지 않고 운영체제를 부팅하기 위한 특정 구조(MBR/GPT, 부트로더, FAT32 파티션 등)가 필요하기 때문에 기존과 다른 파티션 구조로 변하는 것입니다.