유니코드 정규화 (NFC, NFD, NFKC, NFKD)
텍스트
같은 모양의 텍스트도 서로 다른 코드포인트 시퀀스로 저장될 수 있습니다 — é는 하나의 합성 문자(U+00E9)일 수도, 'e'와 결합 악센트(U+0065 U+0301)일 수도 있습니다. 유니코드 정규화는 텍스트를 정규 형식으로 다시 써서, 같아 보이는 문자열이 같게 비교되고 예측 가능하게 정렬되며 파일시스템·데이터베이스를 통해 왕복되게 합니다. NFC는 가장 짧은 합성 형식으로 결합(저장·웹의 기본값으로 최적), NFD는 완전 분해(macOS 파일명에 흔함), NFKC·NFKD는 추가로 호환 매핑을 적용해 합자(fi → fi), 전각 문자(2024 → 2024), 로마 숫자(Ⅻ → XII) 등을 폴딩합니다. 결합 표시를 제거해 악센트를 완전히 없앨 수도 있습니다. 비교 표는 각 형식의 코드포인트·UTF-8 바이트 길이를 보여 주고 입력이 이미 어떤 형식인지 표시합니다 — NFC를 기대했는데 NFD인 데이터를 찾는 데 유용합니다. 모든 처리는 로컬에서 실행되며 텍스트는 브라우저를 떠나지 않습니다.
정규화 출력 · 17 글자 · 32 바이트
Café file 2024 Ⅻ ①
입력이 이미 NFC 형식입니다.
모든 형식 비교
| 형식 | 글자 | 바이트 | = 입력? |
|---|---|---|---|
| NFC | 17 | 32 | 예 |
| NFD | 18 | 33 | 아니오 |
| NFKC | 20 | 21 | 아니오 |
| NFKD | 21 | 22 | 아니오 |
NFC가 저장·웹의 가장 안전한 기본값입니다. NFKC·NFKD와 기호 제거는 손실이 있으니 정확히 유지할 텍스트엔 쓰지 마세요.
사용법
- 입력 상자에 텍스트를 붙여넣거나 입력하세요.
- 대상 형식(NFC·NFD·NFKC·NFKD)을 선택하고 정규화된 출력을 복사하세요.
- '발음 구별 기호 제거'를 켜면 악센트도 제거되며, 표에서 입력이 이미 어떤 형식인지 확인하세요.
자주 묻는 질문
- 어떤 형식을 써야 하나요?
- NFC가 저장·전송·웹에서 가장 안전한 기본값입니다 — 가장 짧은 정규 형식이며 대부분의 시스템이 기대하는 형식입니다. 시스템이 분해 텍스트를 요구할 때(예: 일부 macOS 환경) NFD를 쓰세요. NFKC·NFKD는 합자·전각·위/아래 첨자 폴딩 같은 호환 변환을 의도적으로 원할 때만 쓰세요 — 손실 변환이기 때문입니다.
- '발음 구별 기호 제거'는 무엇을 하나요?
- 텍스트를 분해(NFD)하고 모든 결합 표시를 제거한 뒤 선택한 형식으로 다시 정규화합니다 — 'café'는 'cafe', 'Crème Brûlée'는 'Creme Brulee'가 됩니다. ASCII 슬러그나 악센트 무시 검색 키를 만들 때 유용하지만, 많은 언어에서 의미가 바뀌므로 정확히 유지해야 하는 텍스트에는 쓰지 마세요.
- 왜 형식 간 바이트 수가 다른가요?
- 분해 형식(NFD·NFKD)은 보통 더 많은 코드포인트를 씁니다 — 합성 'é'는 UTF-8에서 2바이트 한 문자지만, 'e' + 결합 악센트는 합계 3바이트의 두 문자입니다. 호환 형식은 양쪽 다 가능합니다. 표에서 정확한 코드포인트·바이트 길이를 비교할 수 있습니다.
- 정규화는 가역적인가요?
- NFC ↔ NFD는 정규 동등성에 대해 정보를 보존하며 가역적입니다. NFKC·NFKD는 가역적이지 않습니다 — 합자나 전각 숫자가 폴딩되면 원래 구분은 사라집니다. 발음 구별 기호 제거도 단방향입니다.
관련 도구
Markdown 표 → CSV 변환기
GitHub 방식 Markdown 표를 CSV, TSV 또는 세미콜론 구분 행으로 변환합니다. 브라우저에서 동작합니다.
마크다운 표 생성기
CSV·TSV·파이프 구분 데이터를 정렬된 GitHub 마크다운 표로 변환합니다.
텍스트 Diff 뷰어
두 텍스트를 비교해 줄·단어 단위로 추가·삭제를 강조해서 보여 줍니다.
Lorem Ipsum 생성기
문단·문장·단어 단위로 자리표시자 텍스트를 생성하세요.
대소문자 변환기
대문자·소문자·Title·camelCase·snake_case 등으로 변환하세요.
글자수 단어수 카운터
글자·단어·문장·줄·바이트 수를 실시간으로 셉니다.