맥 한글 자소 분리 해결 — 유니코드 정규화(NFC·NFD) 변환
자소가 분리된 한글을 합치고 NFC·NFD·NFKC·NFKD로 유니코드 정규화하는 도구
브라우저에서 처리 · 서버로 전송되지 않음
정규화 형식
자소가 분리된 한글을 고치려면 NFC를 고르세요. 맥에서 만든 파일 이름은 대부분 NFD예요.
글 변환
예시는 맥처럼 자소를 나눠(NFD) 저장한 글이에요. 화면에서는 붙어 보여도 컴퓨터는 다른 글자로 봐요.
- 자소로 나뉜 한글 낱자 23개
- NFKC에서 바뀌는 호환 문자 0개
NFC로 바꿨어요. 코드 포인트 30개 → 17개
맥에서 보낸 보고서 최종.hwp
코드 포인트 보기
- 변환 전
- U+1106 U+1162 U+11A8 U+110B U+1166 U+1109 U+1165 U+0020 U+1107 U+1169 U+1102 U+1162 U+11AB U+0020 U+1107 U+1169 U+1100 U+1169 U+1109 U+1165 U+0020 U+110E U+116C U+110C U+1169 U+11BC U+002E U+0068 U+0077 U+0070
- 변환 후
- U+B9E5 U+C5D0 U+C11C U+0020 U+BCF4 U+B0B8 U+0020 U+BCF4 U+ACE0 U+C11C U+0020 U+CD5C U+C885 U+002E U+0068 U+0077 U+0070
파일 이름 일괄 정리
파일 이름을 한 줄에 하나씩 붙여 넣거나, 파일을 골라서 이름을 정리한 ZIP으로 받을 수 있어요. 파일은 브라우저 밖으로 나가지 않아요.
유니코드 표준 부속서 UAX #15(유니코드 정규화 형식)를 브라우저의 String.prototype.normalize로 적용해요. NFC·NFD는 글자의 모양과 뜻을 바꾸지 않고, NFKC·NFKD는 전각 영문(A→A), 원 문자(①→1), 단위 기호(㎏→kg) 같은 호환 문자를 일반 글자로 바꿔서 겉모습이 달라질 수 있어요. ZIP 안의 파일 이름은 UTF-8로 저장돼요.
소개
유니코드 정규화 도구는 화면에서는 같아 보이지만 컴퓨터가 다르게 저장한 글자를 한 가지 형식으로 맞춰 줘요. 가장 흔한 예는 맥에서 만든 한글 파일 이름이에요. 맥은 “한”을 ㅎ, ㅏ, ㄴ 세 개의 낱자로 나눠 저장하기 때문에 윈도우나 메신저, 웹 업로드 화면에서 자소가 분리된 이름으로 보이곤 해요. 이 도구에 글이나 파일 이름을 넣고 NFC를 고르면 낱자가 다시 한 글자로 합쳐져요. 반대로 NFD로 나누거나, 전각 문자와 원 문자까지 일반 글자로 바꾸는 NFKC·NFKD도 쓸 수 있어요.
사용법
- 정규화 형식을 골라요. 자소 분리를 고치려면 NFC를 그대로 두면 돼요.
- 글 변환 칸에 글을 붙여 넣으면 바로 변환 결과가 나와요. 자소로 나뉜 낱자와 호환 문자가 몇 개인지도 함께 보여 줘요.
- 코드 포인트 보기를 열어 변환 전후에 실제 값이 어떻게 달라졌는지 확인해요.
- 파일 이름 일괄 정리에서는 이름을 한 줄에 하나씩 붙여 넣거나, 파일 고르기로 여러 파일을 골라요.
- 파일을 골랐다면 “정리한 이름으로 ZIP 받기”를 눌러 이름이 고쳐진 파일들을 한 번에 받아요.
기준
- 유니코드 표준 부속서 UAX #15(유니코드 정규화 형식)의 NFC·NFD·NFKC·NFKD를 브라우저의 String.prototype.normalize로 적용해요.
- 자소로 나뉜 한글은 첫가끝 조합용 자모(U+1100–U+11FF 등)로 세요. 키보드로 친 ㅋㅋ 같은 호환 자모(U+3131–U+318E)는 자소 분리로 세지 않아요.
- 호환 문자 수는 NFKC로 바꿨을 때 NFC와 결과가 달라지는 글자 수예요.
- ZIP 안의 파일 이름은 UTF-8로 저장되고, 파일 내용은 압축하지 않고 그대로 담아요. 한 번에 200개, 모두 합쳐 500MB까지 고를 수 있어요. ZIP을 메모리 안에서 만들기 때문에 휴대폰·태블릿에서는 150MB까지예요.
예시
| 입력 | 형식 | 결과 |
|---|---|---|
| ㅎㅏㄴㄱㅡㄹ.txt (NFD, 코드 포인트 10개) | NFC | 한글.txt (6개) |
| 각 | NFD | ᄀ ᅡ ᆨ (U+1100 U+1161 U+11A8) |
| A①㎏ | NFKC | A1kg |
| ㈜ | NFKC | (주) |
| café | NFD | cafe + U+0301 |
같은 이름의 파일이 폴더에 두 개 보이거나, 맥에서 받은 압축 파일을 윈도우에서 풀었더니 이름이 낱자로 흩어져 있다면 대부분 NFC와 NFD가 섞인 경우예요. 개발자라면 데이터베이스에 넣기 전이나 검색어를 비교하기 전에 NFC로 맞춰 두면 “분명 같은 글자인데 검색이 안 되는” 문제를 미리 막을 수 있어요.
자주 묻는 질문
맥에서 보낸 파일 이름이 왜 자소가 분리돼 보이나요?
macOS는 파일 이름의 한글을 초성·중성·종성 낱자로 나눈 NFD 형식으로 저장해요. 윈도우나 일부 웹 서비스는 이것을 합쳐서 보여 주지 않아 "ㅎㅏㄴㄱㅡㄹ"처럼 보이죠. NFC로 바꾸면 "한글"처럼 한 글자로 합쳐져요.
내 컴퓨터의 파일 이름이 바로 바뀌나요?
웹 브라우저는 컴퓨터의 파일 이름을 직접 바꿀 수 없어요. 대신 파일을 고르면 이름을 정리한 ZIP으로 내려받을 수 있고, 이름 목록만 복사해서 다른 곳에 쓸 수도 있어요.
NFC와 NFKC는 무엇이 다른가요?
NFC는 글자의 모양과 뜻을 그대로 두고 조합만 합쳐요. NFKC는 여기에 더해 전각 영문(A), 원 문자(①), 단위 기호(㎏), ㈜ 같은 호환 문자를 일반 글자로 바꿔요. 검색이나 비교용으로는 편하지만 겉모습이 달라질 수 있어요.
화면에서는 똑같아 보이는데 왜 바꿔야 하나요?
NFC와 NFD는 보이는 모양은 같아도 컴퓨터가 저장한 값이 달라서, 검색이 안 되거나 같은 이름의 파일이 두 개 생기거나 업로드 검사에서 막히기도 해요. 코드 포인트 보기를 열면 실제로 다른 값인지 확인할 수 있어요.
입력한 글이나 파일이 서버로 가나요?
아니요. 정규화와 ZIP 만들기는 모두 브라우저 안에서 이루어지고 아무것도 보내지 않아요.