조합형(NFD) vs 완성형(NFC)

Reading-Snail·2024년 3월 21일
1

💡 Qurious 팽이! 💡

목록 보기
14/14

사내 사이드 프로젝트를 하던 도중 한글명을 갖는 파일들의 이름의 자음 모음이 분리되는 현상이 일어났습니다. 맥북이나 리눅스 노트북으로 확인하였을 때는 이상이 없었으나, 윈도우로 확인하였을 때 증상이 나타났습니다.

해당 문제는 한글의 입력 방식의 차이로 인해 발생하는 문제였습니다.

맥북 = 조합형(NFD) + 완성형(NFC)

리눅스 = 조합형(NFD) + 완성형(NFC)

윈도우 = 완성형(NFC)

위의 나열한 것 처럼 맥북의 경우 조합형으로 작성하지만 완성형도 지원합니다. 윈도우의 경우 조합형은 지원하지 않고 완성형만 지원하며 작성도 완성형으로 이루어집니다.

이러한 차이로 인해 맥북에서는 모두 호환이 되다 보니 이상이 없었지만 윈도우의 경우 조합형을 인식하지 못하여 문제가 발생한 것이었습니다.

해결방법은 첨부파일을 업로드하기 이전에 NFD로 확인되는 파일은 NFC로 변환하여 업로드 하는 방법이었습니다. 단, 포맷이지만 사용자의 파일을 수정한다는 문제가 있어서 인지 구글드라이브에서는 이러한 기능이 추가가 안된 것 같습니다. 꼭, 도입을 해야되는가에 대해서는 비즈니스 로직과 사용자의 환경에 따라 다를 것 같습니다.

import java.text.Normalizer; 

public class Main { public static void main(String[] args) { 
	String input = "NFD 를 NFC로 변환해주는 java 코드"; 
	String normalized = normalizeToNFC(input); 
	System.out.println("NFD를 NFC로 변환한 결과: " + normalized); 
} 
				   
public static String normalizeToNFC(String input) { 
	return Normalizer.normalize(input, Normalizer.Form.NFC); 
	} 				  
}

https://peterica.tistory.com/500

profile
책읽는 달팽이 || 공학도에서 개발자로! || 결국 과거의 흐름을 이해했을 때 지금의 것들을 통찰력있게 바라볼 수 있다고 믿습니다.

0개의 댓글

관련 채용 정보