UnicodeNormalize 모듈

UnicodeNormalize 모듈

UnicodeNormalize는 유니코드 문자열의 정규화(Normalization)를 담당하는 내부 모듈이에요. 문자열의 인코딩이 UTF-8일 때 String#unicode_normalize 같은 메서드가 이 모듈의 기능을 사용해요.

출처: Ruby 4.0 API — UnicodeNormalize

본문

공식 문서에서는 이 모듈에 대해 간략하게 "나중에(정규화 구현을) 찾아 쓰기 쉽도록 UnicodeNormalize 모듈을 여기에 정의해 둔다"고만 설명하고 있어요. 즉 이 모듈은 라이브러리 내부에서 유니코드 정규화 로직을 모아 두는 네임스페이스로, 애플리케이션 코드에서 직접 호출할 일은 거의 없어요.

실제 유니코드 정규화가 필요할 때는 문자열의 영역을 벗어나지 않고 다음 메서드를 쓰면 돼요.

  • String#unicode_normalize — 문자열을 지정한 정규화 형식(NFC, NFD, NFKC, NFKD)으로 변환해요.
  • String#unicode_normalized? — 이미 정규화되어 있는지 확인해요.
  • String#unicode_normalize! — 파괴적 변환 버전이에요.

정규화는 같은 글자를 다르게 인코딩한(예: 'é'를 하나의 코드 포인트로 vs. 'e' + 결합 악센트로) 문자열을 동일하게 맞춰 비교·검색할 때 유용해요.