작성자: @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 정규화) 이 문제를 피할 수 있습니다.
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에서 태그를 붙인 파일처럼 확장 속성이 있는 파일이 들어 있을 때 생깁니다. 이 폴더에는 이름이 ._로 시작하는 파일이 들어 있습니다.
ZipScope는 이 가이드의 필자가 만든 압축·압축 해제용 Mac 앱으로, Windows 사용자가 파일명이 깨지지 않은 채 열 수 있는 ZIP을 만듭니다. ASCII가 아닌 파일명에 UTF-8 플래그를 설정하고 NFC로 정규화합니다. .DS_Store, __MACOSX, ._ 파일은 기본적으로 제외합니다.
오른쪽 클릭으로 압축
Finder에서 파일이나 폴더를 선택하고 오른쪽 클릭한 뒤 “Compress with ZipScope”를 선택합니다. 메뉴 막대 아이콘에 드롭해도 됩니다.
설정 확인
.DS_Store 제외와 NFC 정규화는 처음부터 켜져 있습니다. 파일명과 저장 위치를 확인하세요.
“Create” 클릭
Windows에서도 파일명이 깨지지 않는 ZIP이 만들어지고 Finder에 표시됩니다.

비밀번호 없는 ZIP 만들기는 무료입니다. 비밀번호가 걸린 ZIP과 7z 파일 만들기는 Pro(1회성 앱 내 구입) 기능입니다. ZipScope는 네트워크를 전혀 사용하지 않으므로 파일이 Mac 밖으로 나가지 않습니다.
macOS 14 이상 · Apple 실리콘 및 Intel
Python에 기본으로 포함된 zipfile 모듈은 ASCII가 아닌 파일명에 UTF-8 플래그를 설정합니다. 터미널에서 압축할 항목이 있는 폴더로 이동한 뒤 다음을 실행합니다.
cd ~/Desktop
python3 -m zipfile -c Documents.zip Documents/python3을 처음 실행하면 macOS가 명령어 라인 개발자 도구를 설치하라고 안내할 수 있습니다. 이 방법에는 몇 가지 제약이 있습니다.
.DS_Store를 빼려면 먼저 원본 폴더에서 삭제하세요(폴더의 Finder 보기 설정이 초기화될 뿐입니다).
find Documents -name .DS_Store -delete모든 파일과 폴더의 이름이 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는 Finder가 폴더의 보기 설정을 저장하는 파일입니다. __MACOSX는 Finder의 “압축”이 확장 속성을 보관하려고 만드는 폴더입니다. 둘 다 Mac에서는 숨겨져 있지만 Windows에서는 일반 파일로 보이기 때문에, 받는 사람이 정체 모를 파일이 들어 있다며 묻곤 합니다.
-x "*.DS_Store"로 .DS_Store를 제외합니다. __MACOSX 폴더는 만들어지지 않습니다.반대 방향에서도 같은 문제가 생깁니다. 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를 모두 시도합니다.


각 파일의 헤더에 들어 있는 “이 파일명은 UTF-8로 기록되어 있다”는 표시입니다. ZIP 사양에서는 범용 플래그(general purpose flag)의 비트 11로, Language encoding flag(EFS)라고도 부릅니다. 이 플래그가 있으면 Windows는 파일명을 UTF-8로 읽습니다. 플래그가 없으면 Windows는 기존 코드 페이지(미국 영어판 Windows는 CP437, 일본어판 Windows는 Shift_JIS)로 파일명을 읽기 때문에 Mac에서 만든 파일명이 깨집니다.
UTF-8 플래그를 무시하는 오래된 압축 해제 도구를 쓰고 있을 수 있습니다. 최근 버전의 Windows는 기본 도구(파일 탐색기)로 UTF-8 플래그가 있는 ZIP을 올바르게 읽으므로, 기본 도구로 열어 달라고 하거나 파일명을 ASCII 문자만으로 바꿔 다시 압축하세요.
파일명을 UTF-8로 다시 읽을 수 있는 압축 해제 도구라면 올바르게 표시될 수 있습니다. 그래도 보내는 쪽에서 UTF-8 플래그가 있는 ZIP을 만드는 편이 더 확실하고 받는 사람의 수고도 덜어 줍니다.
.DS_Store는 Finder가 폴더의 보기 설정(아이콘 위치, 보기 방식 등)을 저장하는 파일입니다. 삭제해도 문서에는 영향이 없으며, 필요하면 Finder가 다시 만듭니다. ZIP에서 빼기 위해 굳이 삭제할 필요는 없습니다. .DS_Store와 __MACOSX 빼기를 참고하세요.
네. 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를 빼 두면 받는 사람의 혼란도 줄일 수 있습니다.