Time Machine이란?
Time Machine은 macOS에 내장된 자동 백업 시스템입니다. 시간별, 일별, 주별 스냅샷을 자동으로 생성하며, 파일 단위부터 전체 시스템까지 복원할 수 있습니다. 외장 디스크, NAS, Time Capsule을 백업 대상으로 사용할 수 있습니다.
이 글에서는 Time Machine의 기본 설정, 제외 폴더 관리, 파일 복원, NAS 네트워크 백업을 정리합니다.
기본 설정
외장 디스크를 연결하면 Time Machine 백업 디스크로 사용할 것인지 자동으로 묻습니다. 수동 설정도 가능합니다.
# Time Machine 상태 확인
tmutil status
# 출력 예시:
# {
# BackupPhase = Copying;
# DateOfStateChange = "2026-03-05 01:00:00 +0000";
# Percent = "0.85";
# Running = 1;
# }
# 백업 디스크 목록 확인
tmutil destinationinfo
# 출력 예시:
# ====================================================
# Name : Backup HD
# Kind : Local
# Mount Point : /Volumes/Backup HD
# ID : XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
# 외장 디스크를 Time Machine 백업 대상으로 추가
sudo tmutil setdestination /Volumes/BackupDisk
# 여러 백업 대상 추가 (기존 유지하고 추가)
sudo tmutil setdestination -a /Volumes/SecondBackup
백업 활성화 및 스케줄
# Time Machine 활성화
sudo tmutil enable
# Time Machine 비활성화
sudo tmutil disable
# 수동 백업 즉시 시작
tmutil startbackup
# 백업 진행 중지
tmutil stopbackup
# 다음 백업 예정 시간 확인
tmutil status | grep -i "date"
# 최근 백업 시간 확인
tmutil latestbackup
# 출력 예시: /Volumes/Backup HD/Backups.backupdb/MacBook/2026-03-05-010000
# 모든 백업 스냅샷 목록
tmutil listbackups
# 출력: 날짜별 백업 경로 목록
기본적으로 Time Machine은 매시간 자동 백업합니다. macOS Ventura 이후에는 설정에서 백업 빈도를 변경할 수 있습니다(수동, 매시간, 매일, 매주).
제외 폴더 설정
개발 관련 폴더 중 백업이 불필요한 대용량 디렉토리를 제외하면 백업 속도와 디스크 공간을 절약할 수 있습니다.
# 제외 폴더 추가
sudo tmutil addexclusion ~/Library/Caches
sudo tmutil addexclusion ~/node_modules
sudo tmutil addexclusion ~/.docker
sudo tmutil addexclusion ~/Library/Developer/Xcode/DerivedData
# 개발 프로젝트 내 불필요한 폴더 제외
sudo tmutil addexclusion ~/Projects/myapp/node_modules
sudo tmutil addexclusion ~/Projects/myapp/.next
sudo tmutil addexclusion ~/Projects/myapp/dist
# 고정 제외 (경로가 바뀌어도 유지)
sudo tmutil addexclusion -p ~/VirtualMachines
# 현재 제외 목록 확인
sudo tmutil isexcluded ~/Library/Caches
# 출력: [Excluded] /Users/사용자/Library/Caches
# 제외 해제
sudo tmutil removeexclusion ~/Library/Caches
개발자가 일반적으로 제외하면 좋은 폴더 목록입니다.
# 개발자용 제외 목록 일괄 설정 스크립트
#!/bin/bash
# exclude-dev-dirs.sh
# 패키지 매니저 캐시
EXCLUDE_DIRS=(
"$HOME/Library/Caches"
"$HOME/Library/Developer/Xcode/DerivedData"
"$HOME/Library/Developer/CoreSimulator"
"$HOME/.docker"
"$HOME/.gradle"
"$HOME/.m2"
"$HOME/.cargo/registry"
"$HOME/.npm/_cacache"
"$HOME/.pyenv/versions"
)
for dir in "${EXCLUDE_DIRS[@]}"; do
if [ -d "$dir" ]; then
sudo tmutil addexclusion "$dir"
echo "제외됨: $dir"
fi
done
# node_modules 전체 검색 후 제외
find "$HOME/Projects" -name "node_modules" -type d -maxdepth 4 | while read dir; do
sudo tmutil addexclusion "$dir"
echo "제외됨: $dir"
done
echo "제외 설정 완료!"
파일 복원
삭제하거나 덮어쓴 파일을 Time Machine에서 복원할 수 있습니다. GUI와 CLI 두 가지 방법이 있습니다.
GUI로 복원
Finder에서 복원할 폴더를 열고 메뉴바의 Time Machine 아이콘 → “Time Machine 시작”을 클릭합니다. 타임라인에서 원하는 시점을 선택한 후 “복원” 버튼을 클릭합니다.
CLI로 복원
# 백업에서 특정 파일 찾기
tmutil listbackups | tail -5
# 최근 5개 백업 경로 확인
# 백업 경로에서 파일 직접 복사
BACKUP="/Volumes/Backup HD/Backups.backupdb/MacBook/2026-03-04-150000"
cp "$BACKUP/Data/Users/사용자/Documents/중요파일.txt" ~/Desktop/
# 특정 날짜의 백업에서 폴더 전체 복원
tmutil restore \
"$BACKUP/Data/Users/사용자/Projects/myapp/" \
~/Desktop/myapp-restored/
# APFS 스냅샷 목록 확인 (로컬 스냅샷)
tmutil listlocalsnapshots /
# 출력 예시:
# com.apple.TimeMachine.2026-03-05-010000.local
# com.apple.TimeMachine.2026-03-04-230000.local
로컬 스냅샷 관리
Time Machine은 외장 디스크가 연결되어 있지 않아도 로컬 APFS 스냅샷을 자동으로 생성합니다. 이 스냅샷으로 외장 디스크 없이도 최근 변경을 복원할 수 있습니다.
# 로컬 스냅샷 목록
tmutil listlocalsnapshots /
# 출력:
# com.apple.TimeMachine.2026-03-05-010000.local
# com.apple.TimeMachine.2026-03-04-230000.local
# com.apple.TimeMachine.2026-03-04-210000.local
# 특정 로컬 스냅샷 삭제 (디스크 공간 확보)
sudo tmutil deletelocalsnapshots 2026-03-04-210000
# 모든 로컬 스냅샷 삭제
for snapshot in $(tmutil listlocalsnapshots / | grep -o '20[0-9-]*'); do
sudo tmutil deletelocalsnapshots "$snapshot"
done
# 로컬 스냅샷이 사용하는 디스크 공간 확인
tmutil listlocalsnapshots / | wc -l
# 스냅샷 개수 확인
df -h /
# "purgeable" 영역이 로컬 스냅샷 포함
NAS 네트워크 백업
Time Machine은 네트워크 드라이브(NAS)로의 백업도 지원합니다. Synology, QNAP 등 대부분의 NAS에서 Time Machine 서비스를 제공합니다.
# SMB 공유를 Time Machine 백업 대상으로 설정
# 1. 먼저 Finder에서 NAS에 연결
# Cmd+K → smb://nas-ip/TimeMachine
# 2. CLI로 백업 대상 추가
sudo tmutil setdestination -a "smb://사용자:비밀번호@nas-ip/TimeMachine"
# 3. 네트워크 백업 대상 확인
tmutil destinationinfo
# 출력 예시:
# ====================================================
# Name : TimeMachine
# Kind : Network
# URL : smb://nas-ip/TimeMachine
# ID : YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY
# 네트워크 백업 디스크 크기 제한 설정
# NAS 관리 페이지에서 할당량 설정 또는:
sudo defaults write /Library/Preferences/com.apple.TimeMachine \
MaxSize -integer 500 # 500GB 제한
NAS에서 Time Machine 서비스를 활성화하는 일반적인 단계입니다.
- NAS 관리자 페이지 접속
- 공유 폴더 “TimeMachine” 생성
- 파일 서비스에서 SMB 활성화
- Time Machine 서비스 활성화 및 공유 폴더 지정
- Mac에서 Time Machine 설정에서 NAS 선택
새 Mac으로 마이그레이션
Time Machine 백업을 사용하여 새 Mac으로 전체 환경을 이전할 수 있습니다.
# 마이그레이션 전 최신 백업 확인
tmutil latestbackup
# 마이그레이션 방법:
# 1. 새 Mac 초기 설정 시 "마이그레이션 지원" 선택
# 2. "Time Machine 백업에서" 선택
# 3. 백업 디스크 연결 또는 네트워크 선택
# 4. 전송할 항목 선택 (앱, 설정, 문서 등)
# 마이그레이션 후 확인 사항
# - 앱 라이선스 재인증
# - SSH 키 동작 확인
ssh -T git@github.com
# - Homebrew 패키지 확인
brew list
# - 개발 도구 버전 확인
node --version
python --version
정리
Time Machine 백업 관리의 핵심 포인트를 정리합니다.
- 자동 백업: Time Machine을 활성화하면 매시간 자동 백업되므로 별도 관리 불필요
- 제외 폴더:
node_modules,DerivedData,.docker등 재생성 가능한 대용량 폴더는 제외 설정 - 로컬 스냅샷: 외장 디스크 없이도 APFS 스냅샷으로 최근 변경을 복원 가능
- NAS 백업: 외장 디스크를 매번 연결할 필요 없이 네트워크로 자동 백업
- 디스크 크기: 백업 디스크는 Mac 저장 공간의 2~3배를 권장
- 마이그레이션: 새 Mac으로의 환경 이전이 Time Machine으로 간단하게 가능
- 암호화: 백업 디스크 암호화 옵션을 활성화하면 외장 디스크 분실 시에도 데이터 보호