JS Mac 파일 이름 정규화 인코딩 문제
문제 파일 업로드 시 파일명에 '-', '_' 을 제외한 특수 문자 사용 시 예외를 발생시키는 코드에서 아래와 같은 정규표현식을 사용했고, 테스트 결과 문제가 없음을 확인했다. /^[ㄱ-ㅎ가-힣a-zA-Z0-9_\s-]*$/ 이후 파일명에 문제가 있는지 확인하기 위해 파일명과 똑같은 문자열을 비교하였으나, 다른 결과가 나왔고 문자열의 길이 또한 다르게 출력되었다. 원인 MacOS의 유니코드 정규화 인코딩 방식이 javascript의 기본 문자열과 다르기 때문이었다. Mac에서는 NFD 방식을 사용하는데, NFD 방식으로 작성된 문자열은 ['ㅎ', 'ㅏ', 'ㄴ', 'ㄱ', 'ㅡ', 'ㄹ']과 같이 초성, 중성, 종성으로 분리된 문자 배열이고 Javascript에 일반 문자열은 ['한', '글']과 같이 ..