• 홈
  • 가이드
  • Mac에서 만든 ZIP의 파일명이 Windows에서 깨지는 이유(해결 방법 3가지)

Mac에서 만든 ZIP의 파일명이 Windows에서 깨지는 이유(해결 방법 3가지)

작성자: @SoNiceInfo · 게시일: 2026. 10. 13.


Mac에서 폴더를 ZIP으로 압축해 보냈더니, Windows를 쓰는 상대방에게는 Résumé.pdf가 아니라 R├⌐sum├⌐.pdf 같은 이름으로 보입니다. 파일 자체에는 문제가 없습니다. 문제는 ZIP이 파일명의 문자 인코딩을 표시하는 방식에 있습니다. 이 가이드에서는 Finder의 “압축”과 zip 명령어로 실제로 만든 ZIP을 바탕으로 원인을 설명하고, Windows에서도 파일명이 깨지지 않는 ZIP을 Mac에서 만드는 세 가지 방법과 .DS_Store, __MACOSX 같은 Mac 전용 파일을 빼는 방법을 소개합니다.

파일명이 깨지는 이유

ZIP 형식은 파일명의 문자 인코딩을 하나로 정해 두지 않습니다. 그 대신 각 파일의 헤더에 UTF-8 플래그가 있어, 이 플래그가 설정되어 있으면 파일명이 UTF-8이라는 뜻입니다. 플래그가 없으면 받는 쪽 시스템이 제멋대로 파일명을 해석합니다. Windows는 플래그가 없는 파일명을 기존 코드 페이지로 읽습니다. 미국 영어판 Windows는 CP437, 일본어판 Windows는 Shift_JIS(CP932)입니다.

Mac은 파일명을 UTF-8로 기록하지만 플래그는 설정하지 않습니다. 그래서 Windows가 UTF-8 바이트를 CP437이나 Shift_JIS로 해석하게 되고, Résumé.pdf는 R├⌐sum├⌐.pdf가 되며, 見積書.pdf 같은 일본어 파일명은 전혀 상관없는 문자들의 나열로 바뀝니다.

악센트 부호와 일본어 탁점에 관한 문제도 하나 더 있습니다. Mac은 é 같은 문자를 e와 결합용 악센트라는 두 문자로 저장하는 경우가 있습니다(NFD라는 형태). 이것을 그대로 ZIP에 넣으면 Windows의 일부 도구에서는 악센트가 따로 떨어져 표시됩니다. 이를 한 문자로 합치면(NFC 정규화) 이 문제를 피할 수 있습니다.

기본 도구로 만든 ZIP 확인 결과

macOS 27에서 일본어 이름의 파일과 .DS_Store 파일이 들어 있는 폴더를 압축한 뒤 ZIP을 조사했습니다. Finder의 “압축”은 ditto -c -k --sequesterRsrc --keepParent로 재현했습니다. ditto의 man 페이지에 Finder의 “압축”과 비슷한 압축 파일을 만든다고 나와 있기 때문입니다.

방법UTF-8 플래그.DS_Store__MACOSX
Finder의 “압축”설정 안 됨포함됨포함됨(파일에 확장 속성이 있을 때)
zip 명령어(zip -r)설정 안 됨(설정하는 옵션 없음)포함됨(-x로 제외)포함 안 됨
Python의 zipfile설정됨포함됨포함 안 됨
ZipScope설정됨(NFC 정규화도 함께)포함 안 됨포함 안 됨

macOS에 기본으로 들어 있는 zip 명령어는 UTF-8 플래그를 설정하는 옵션(-UN) 없이 빌드되어 있어, 이 옵션을 쓰면 오류가 납니다. 즉, 기본 도구만으로는 ASCII가 아닌 파일명이 Windows에서도 깨지지 않는 ZIP을 만들 수 없습니다.

__MACOSX 폴더는 다운로드한 파일이나 Finder에서 태그를 붙인 파일처럼 확장 속성이 있는 파일이 들어 있을 때 생깁니다. 이 폴더에는 이름이 ._로 시작하는 파일이 들어 있습니다.

추천방법 1: 앱(ZipScope)으로 압축하기

ZipScope는 이 가이드의 필자가 만든 압축·압축 해제용 Mac 앱으로, Windows 사용자가 파일명이 깨지지 않은 채 열 수 있는 ZIP을 만듭니다. ASCII가 아닌 파일명에 UTF-8 플래그를 설정하고 NFC로 정규화합니다. .DS_Store, __MACOSX, ._ 파일은 기본적으로 제외합니다.

1

오른쪽 클릭으로 압축

Finder에서 파일이나 폴더를 선택하고 오른쪽 클릭한 뒤 “Compress with ZipScope”를 선택합니다. 메뉴 막대 아이콘에 드롭해도 됩니다.

2

설정 확인

.DS_Store 제외와 NFC 정규화는 처음부터 켜져 있습니다. 파일명과 저장 위치를 확인하세요.

3

“Create” 클릭

Windows에서도 파일명이 깨지지 않는 ZIP이 만들어지고 Finder에 표시됩니다.

Windows용 옵션이 기본으로 켜져 있는 ZipScope의 ZIP 생성 윈도우

비밀번호 없는 ZIP 만들기는 무료입니다. 비밀번호가 걸린 ZIP과 7z 파일 만들기는 Pro(1회성 앱 내 구입) 기능입니다. ZipScope는 네트워크를 전혀 사용하지 않으므로 파일이 Mac 밖으로 나가지 않습니다.

ZipScope 보기 →

macOS 14 이상 · Apple 실리콘 및 Intel

터미널 사용자용방법 2: Python의 zipfile로 압축하기

Python에 기본으로 포함된 zipfile 모듈은 ASCII가 아닌 파일명에 UTF-8 플래그를 설정합니다. 터미널에서 압축할 항목이 있는 폴더로 이동한 뒤 다음을 실행합니다.

cd ~/Desktop
python3 -m zipfile -c Documents.zip Documents/

python3을 처음 실행하면 macOS가 명령어 라인 개발자 도구를 설치하라고 안내할 수 있습니다. 이 방법에는 몇 가지 제약이 있습니다.

  • .DS_Store 파일이 포함됩니다(제외하는 옵션이 없습니다).
  • 파일명을 NFC로 정규화하지 않으므로 분해된(NFD) 파일명이 그대로 들어갑니다.
  • 매번 터미널을 열어야 합니다.

.DS_Store를 빼려면 먼저 원본 폴더에서 삭제하세요(폴더의 Finder 보기 설정이 초기화될 뿐입니다).

find Documents -name .DS_Store -delete

설치 불필요방법 3: 먼저 파일명을 ASCII로 바꾸기

모든 파일과 폴더의 이름이 ASCII 영문자와 숫자로만 되어 있다면 어떤 도구를 써도 되고 인코딩 문제도 생기지 않습니다. 확실한 방법이지만 파일이 많으면 이름을 바꾸는 데 시간이 걸리고, 받는 사람에게 이름의 의미가 잘 전달되지 않을 수 있습니다.

Finder의 “압축”은 여전히 .DS_Store와 __MACOSX를 넣으므로, 이것이 신경 쓰인다면 zip 명령어로 .DS_Store를 제외하세요.

cd ~/Desktop
zip -r Documents.zip Documents -x "*.DS_Store"

-x "*.DS_Store"는 .DS_Store 파일을 제외합니다. zip 명령어는 __MACOSX 폴더를 만들지 않습니다.

.DS_Store와 __MACOSX 빼기

.DS_Store는 Finder가 폴더의 보기 설정을 저장하는 파일입니다. __MACOSX는 Finder의 “압축”이 확장 속성을 보관하려고 만드는 폴더입니다. 둘 다 Mac에서는 숨겨져 있지만 Windows에서는 일반 파일로 보이기 때문에, 받는 사람이 정체 모를 파일이 들어 있다며 묻곤 합니다.

  • Finder의 “압축” ─ 이 파일들을 빼는 설정이 없습니다.
  • zip 명령어 ─ -x "*.DS_Store"로 .DS_Store를 제외합니다. __MACOSX 폴더는 만들어지지 않습니다.
  • ZipScope ─ .DS_Store, __MACOSX, ._ 파일을 기본적으로 제외합니다. Mac에서 만든 ZIP을 압축 해제할 때도 이 파일들을 건너뜁니다(“Settings”에서 변경 가능).

Windows에서 만든 ZIP이 Mac에서 깨질 때

반대 방향에서도 같은 문제가 생깁니다. Windows는 ZIP의 파일명을 UTF-8 플래그 없이 기존 코드 페이지로 기록하므로, 일본어판 Windows에서 만든 ZIP은 파일명이 Shift_JIS로 저장됩니다. macOS 27에서 이런 ZIP을 기본 도구(ditto)로 압축 해제해 보았습니다. Mac의 언어가 일본어로 설정되어 있을 때는 파일명이 올바르게 표시되었지만, 시스템 인코딩이 영어일 때는 å©êœèë처럼 표시되었고 unzip 명령어는 오류로 멈췄습니다. 즉, 기본 도구가 제대로 처리할 수 있는지는 Mac의 언어 설정에 달려 있습니다.

ZipScope는 Mac의 언어와 관계없이 Shift_JIS(CP932) 파일명을 자동으로 감지해 올바른 일본어로 표시합니다. 감지가 틀렸다면 CP932, UTF-8, EUC-JP, GBK, EUC-KR, CP437 중에서 직접 전환할 수 있습니다. 일본어 비밀번호가 걸린 ZIP은 UTF-8과 CP932를 모두 시도합니다.

잘못된 인코딩으로 읽어 파일명이 깨진 파일 목록
ZipScope의 자동 감지 후 올바른 일본어로 표시된 같은 파일 목록

나에게 맞는 방법

  • 업무로 Windows 사용자와 ZIP을 주고받는다 ─ ZipScope. 오른쪽 클릭만으로 파일명이 깨지지 않고 .DS_Store도 없는 ZIP을 만들 수 있으며, Windows에서 온 깨진 ZIP도 처리할 수 있습니다.
  • 가끔 ZIP을 보내고 터미널 사용이 괜찮다 ─ Python의 zipfile. 먼저 .DS_Store를 삭제하세요.
  • 파일이 몇 개뿐이고 이름을 바꿔도 된다 ─ ASCII로 이름 바꾸기.

자주 묻는 질문

Q. ZIP 파일의 UTF-8 플래그란 무엇인가요?

각 파일의 헤더에 들어 있는 “이 파일명은 UTF-8로 기록되어 있다”는 표시입니다. ZIP 사양에서는 범용 플래그(general purpose flag)의 비트 11로, Language encoding flag(EFS)라고도 부릅니다. 이 플래그가 있으면 Windows는 파일명을 UTF-8로 읽습니다. 플래그가 없으면 Windows는 기존 코드 페이지(미국 영어판 Windows는 CP437, 일본어판 Windows는 Shift_JIS)로 파일명을 읽기 때문에 Mac에서 만든 파일명이 깨집니다.

Q. Windows에서도 깨지지 않는 ZIP을 보냈는데, 상대방에게는 여전히 파일명이 깨져 보입니다.

UTF-8 플래그를 무시하는 오래된 압축 해제 도구를 쓰고 있을 수 있습니다. 최근 버전의 Windows는 기본 도구(파일 탐색기)로 UTF-8 플래그가 있는 ZIP을 올바르게 읽으므로, 기본 도구로 열어 달라고 하거나 파일명을 ASCII 문자만으로 바꿔 다시 압축하세요.

Q. 받는 쪽에서 Windows로 파일명을 고칠 수 있나요?

파일명을 UTF-8로 다시 읽을 수 있는 압축 해제 도구라면 올바르게 표시될 수 있습니다. 그래도 보내는 쪽에서 UTF-8 플래그가 있는 ZIP을 만드는 편이 더 확실하고 받는 사람의 수고도 덜어 줍니다.

Q. .DS_Store 파일을 삭제해도 괜찮나요?

.DS_Store는 Finder가 폴더의 보기 설정(아이콘 위치, 보기 방식 등)을 저장하는 파일입니다. 삭제해도 문서에는 영향이 없으며, 필요하면 Finder가 다시 만듭니다. ZIP에서 빼기 위해 굳이 삭제할 필요는 없습니다. .DS_Store와 __MACOSX 빼기를 참고하세요.

Q. 비밀번호가 걸린 ZIP도 Windows에서 파일명이 깨지지 않게 할 수 있나요?

네. ZipScope Pro(1회 구매)는 UTF-8 플래그가 설정되어 Windows 기본 도구로 열리는 비밀번호 ZIP을 만듭니다. zip 명령어는 비밀번호는 걸 수 있지만 UTF-8 플래그는 설정할 수 없습니다. Mac에서 비밀번호 ZIP 만드는 방법을 참고하세요.

정리

Mac에서 만든 ZIP의 파일명이 Windows에서 깨지는 것은, Mac이 파일명을 UTF-8로 기록하면서도 그 사실을 알리는 플래그를 설정하지 않기 때문입니다. Finder의 “압축”과 zip 명령어로는 이 플래그를 설정할 수 없으므로, ASCII가 아닌 파일명을 지키려면 ZipScope처럼 UTF-8 플래그를 설정하는 앱이나 Python의 zipfile을 사용하세요. .DS_Store와 __MACOSX를 빼 두면 받는 사람의 혼란도 줄일 수 있습니다.