CONCLUSION

이 macOS 파일시스템에서는 NFC와 NFD로 차례로 만든 같은 표시 이름이 별도 두 파일로 남지 않았고 두 번째 내용이 첫 파일을 덮었습니다. 다른 운영체제와 압축 도구의 결과까지 같다고 일반화할 수는 없습니다.

확인 방법

  1. Python unicodedata로 ‘한글파일.txt’를 NFC와 NFD 두 방식으로 만들었습니다.
  2. 각 문자열의 유니코드 코드포인트를 기록했습니다.
  3. 같은 폴더에 두 이름으로 파일을 쓴 뒤 실제 디렉터리 항목과 내용을 확인했습니다.
화면에 같은 한글 파일명이 NFC와 NFD로 표현될 때 macOS에서 한 항목으로 충돌한 실험
실험 증거서로 다른 코드포인트 배열을 차례로 기록했지만 이 macOS 파일시스템에서는 디렉터리 항목 하나만 남았습니다.

문자열은 달랐지만 표시 이름은 같았다

NFC는 한·글·파·일을 U+D55C, U+AE00, U+D30C, U+C77C 네 음절 코드포인트로 표현했습니다. NFD는 각 음절을 초성·중성·종성 코드포인트로 풀어 표현했습니다.

두 번째 파일을 쓴 뒤 폴더에는 한 항목만 남았고 내용은 두 번째로 쓴 ‘NFD’였습니다. 이 환경에서는 두 표현을 동일한 파일명으로 취급했다는 뜻입니다.

같은 표시 이름의 내부 표현
형식한 글자의 예실험 결과
NFC한 = U+D55C첫 파일 생성
NFD한 = U+1112 U+1161 U+11AB같은 항목을 덮어씀

왜 ZIP과 협업 폴더에서 문제가 보일까

압축 형식, 파일 동기화 서비스, 운영체제와 애플리케이션이 정규화를 다르게 처리하면 검색 실패, 중복처럼 보이는 항목, 업로드 오류가 생길 수 있습니다. 단순히 글꼴이 깨진 문제와는 다릅니다.

안전한 처리 원칙

일괄 변환 전에 원본 폴더를 복사하고 NFC 또는 조직이 정한 한 방식으로 이름을 정규화합니다. 이름 충돌을 먼저 탐지하고 자동 덮어쓰기를 막아야 합니다.

  • 표시 문자열이 아닌 정규화한 이름으로 중복 검사
  • 충돌 시 자동 번호 부여 전에 사용자 확인
  • 압축 해제 전 파일 목록과 대상 경로 기록
  • 동기화 서비스에 올리기 전 소수 표본으로 왕복 테스트

확인한 1차 자료

작성·검수

파일 처리 실험을 직접 재현하고, 측정값과 해석의 경계를 검수합니다. 전문 감정이나 법률 판단을 대신하지 않습니다.