이 macOS 파일시스템에서는 NFC와 NFD로 차례로 만든 같은 표시 이름이 별도 두 파일로 남지 않았고 두 번째 내용이 첫 파일을 덮었습니다. 다른 운영체제와 압축 도구의 결과까지 같다고 일반화할 수는 없습니다.
확인 방법
- Python unicodedata로 ‘한글파일.txt’를 NFC와 NFD 두 방식으로 만들었습니다.
- 각 문자열의 유니코드 코드포인트를 기록했습니다.
- 같은 폴더에 두 이름으로 파일을 쓴 뒤 실제 디렉터리 항목과 내용을 확인했습니다.
문자열은 달랐지만 표시 이름은 같았다
NFC는 한·글·파·일을 U+D55C, U+AE00, U+D30C, U+C77C 네 음절 코드포인트로 표현했습니다. NFD는 각 음절을 초성·중성·종성 코드포인트로 풀어 표현했습니다.
두 번째 파일을 쓴 뒤 폴더에는 한 항목만 남았고 내용은 두 번째로 쓴 ‘NFD’였습니다. 이 환경에서는 두 표현을 동일한 파일명으로 취급했다는 뜻입니다.
| 형식 | 한 글자의 예 | 실험 결과 |
|---|---|---|
| NFC | 한 = U+D55C | 첫 파일 생성 |
| NFD | 한 = U+1112 U+1161 U+11AB | 같은 항목을 덮어씀 |
왜 ZIP과 협업 폴더에서 문제가 보일까
압축 형식, 파일 동기화 서비스, 운영체제와 애플리케이션이 정규화를 다르게 처리하면 검색 실패, 중복처럼 보이는 항목, 업로드 오류가 생길 수 있습니다. 단순히 글꼴이 깨진 문제와는 다릅니다.
안전한 처리 원칙
일괄 변환 전에 원본 폴더를 복사하고 NFC 또는 조직이 정한 한 방식으로 이름을 정규화합니다. 이름 충돌을 먼저 탐지하고 자동 덮어쓰기를 막아야 합니다.
- 표시 문자열이 아닌 정규화한 이름으로 중복 검사
- 충돌 시 자동 번호 부여 전에 사용자 확인
- 압축 해제 전 파일 목록과 대상 경로 기록
- 동기화 서비스에 올리기 전 소수 표본으로 왕복 테스트
확인한 1차 자료
- Unicode Normalization Forms (2026-10-01 확인)
- Apple File System Programming Guide (2026-10-01 확인)