
최근 macOS 관련 소식을 주목해 왔다면 'Apple File System', 줄여서 APFS라는 용어를 한 번쯤 들어보셨을 것입니다. 다소 생소하고 기술적인 주제라 큰 주목을 받지는 못하지만, 사실 파일 시스템은 운영체제 사용 경험의 가장 근간을 이루는 핵심 구조입니다. 당시 APFS는 2017년에야 정식으로 완성될 예정이었지만, 시에라(Sierra) 개발자 프리뷰를 통해 미리 그 모습을 확인할 수 있었습니다.
차이점과 개선 사항
간단히 짚고 넘어가자면, 파일 시스템(file system)이란 운영체제가 데이터를 저장하고 불러올 때 사용하는 기본 구조를 말합니다. 파일 시스템마다 이 작업에 접근하는 방식이 다르며, 컴퓨터 성능이 빨라질수록 새로운 파일 시스템들은 이러한 발전을 활용해 새로운 기능을 제공하고 현대적인 저장 환경의 요구에 맞춰 진화해 왔습니다.
오늘날 새 Mac에 탑재되어 있던 HFS+는 무려 18년 된 파일 시스템입니다. 그 전신인 HFS는 영화 '탑건(Top Gun)'이 개봉하기도 전에 등장했습니다. 마치 오래된 도요타 자동차와 같아서, 여전히 (의외로 잘) 작동하지만 어떤 상도 받기 어려운 노후한 시스템이라 할 수 있습니다.
APFS는 단순한 HFS+의 업그레이드가 아니라 '현재'로의 도약에 가깝습니다. 애플 사용자에게는 분명 큰 변화지만, 사실 다른 운영체제들을 따라잡는 데 가까웠지 앞서나간 것은 아니었습니다. 그럼에도 이 업데이트는 하루라도 빨리 필요한 것이었습니다.
클론(Cloning)과 데이터 무결성

APFS는 'copy-on-write(쓰기 시 복사)' 방식을 활용해 복제된 파일을 순식간에 클론(clone)으로 만듭니다. HFS+에서는 파일을 복제할 때 모든 비트를 하나하나 복사해야 했습니다. 반면 APFS는 메타데이터를 조작하고 디스크 공간을 할당하는 방식으로 클론을 생성합니다. 실제 비트 복사는 클론된 파일이 수정될 때까지 일어나지 않으며, 원본과 달라진 부분만 저장됩니다.
Copy-on-write는 데이터 무결성(data integrity)도 함께 개선합니다. 기존 방식에서는 덮어쓰기 작업이 대기 중인 상태로 볼륨이 마운트 해제되면 파일 시스템의 일부가 나머지와 어긋날 수 있습니다. Copy-on-write는 기존 파일을 덮어쓰는 대신 변경 사항을 여유 디스크 공간에 기록함으로써 이 문제를 피합니다. 쓰기 작업이 성공적으로 완료될 때까지는 기존 파일이 유효한 버전으로 유지되며, 새 파일이 온전히 기록된 후에야 이전 파일이 삭제됩니다.
시스템 스냅샷(System Snapshots)

스냅샷은 copy-on-write 아키텍처가 가능하게 해주는 핵심 업그레이드 중 하나입니다. 스냅샷이란 특정 시점의 파일 시스템에 대한 읽기 전용 마운트 가능 이미지를 말합니다. 파일 시스템이 변경되더라도 수정된 부분만 저장되므로 백업이 더 간단하고 안정적이 됩니다. 하드 링크 방식으로 인해 아쉬움이 많았던 타임 머신(Time Machine)에게는 꽤 의미 있는 개선이 될 수 있습니다.
I/O 품질 서비스(QoS)
'Quality of Service(QoS)'라는 용어를 공유기 설정 화면에서 본 적이 있을 겁니다. QoS는 대역폭 사용 우선순위를 조정해 중요한 작업이 느려지지 않도록 하는 기능으로, 공유기에서는 사용자가 정의한 규칙에 따라 특정 작업에 더 많은 대역폭을 배분합니다. 애플의 QoS 역시 활성 창과 같은 사용자 작업을 우선 처리하고, 타임 머신 백업 같은 백그라운드 작업은 우선순위를 낮추는 방식으로 동작한다고 알려졌습니다. 그렇다면 익숙한 '비치볼' 스피닝 커서를 좀 덜 볼 수 있을지도 모릅니다.
네이티브 암호화

스노든 사건 이후 암호화는 그 어느 때보다 중요한 화두가 되었습니다. 애플 역시 시스템 보안을 점점 더 강조해 왔으니, 강력한 내장 암호화가 지원되는 것은 놀라운 일이 아닙니다. APFS는 기존의 '디스크 전체 또는 전혀 안 함' 방식보다 훨씬 세분화된 암호화 체계를 도입했습니다. 하나의 키로 모든 데이터를 암호화할 수도 있고, 여러 개의 암호화 키를 사용해 개별 파일과 폴더를 따로따로 잠글 수도 있습니다. 물론 아무것도 암호화하지 않는 선택도 가능합니다.
SSD 및 플래시 최적화

플래시 스토리지 최적화는 APFS의 대표 기능으로 소개되었지만, 실제 구현은 그다지 인상적이지 않았습니다. 애플은 뛰어난 시스템 통합도를 활용하는 대신, 기존에 SSD 칩이 담당하던 일부 기능을 OS 쪽으로 옮겼습니다. SSD를 위해 최적화되었다기보다는 SSD의 존재를 '인식'하는 수준에 가깝다는 평가입니다.
동적 파티션 크기 조절

APFS 드라이브의 논리 파티션은 크기를 동적으로 조절할 수 있습니다. 사용자는 원하는 파티션 개수만 지정하면 되고, 디스크 공간 배분은 파일 시스템이 실시간으로 알아서 처리합니다. 각 파티션은 실제로 파일을 저장하는 데 쓰는 공간만 차지하며, 나머지 공간은 어떤 파티션이든 자유롭게 가져다 쓸 수 있습니다. 편리하지만, 사실상 폴더를 묶어 올린 '메타 폴더'와 비슷한 개념이라는 평가도 있습니다.
결론
이 변화가 우리에게 의미가 있을까요? 개발자와 파워 유저에게는 분명 훌륭한 소식입니다. 일반 Mac 사용자에게는 겉으로 드러나는 차이가 크지 않을 것입니다. 물론 아쉬운 점도 남아 있었습니다. 네이티브 압축 기능이 빠져 있었고, 사용자 데이터에 대한 체크섬(checksumming)도 지원되지 않았습니다. 참고로 APFS는 이후 2017년 macOS High Sierra부터 기본 파일 시스템으로 채택되며, 현재는 아이폰과 맥을 포함한 모든 애플 기기의 표준 파일 시스템으로 자리 잡았습니다.