안녕하세요!
오늘은 Text를 사용하다가 겪은 자음-모음 분리 문제에 대해 알아볼 예정입니다.
API를 호출하고 받은 데이터로 VStack에 데이터를 쌓는 중에 이상한 걸 발견했어요.

한글이 자음 모음이 분리되어 나오는 겁니다..!!
혹시 몰라서 콘솔에 로그를 찍어봤는데

이 문제는 유니코드 표현 방식 때문이라고 합니다. 유니코드는 같은 문자라도 여러 가지 방식으로 표현될 수 있습니다. 예를 들어, 한글 '가'는 다음과 같이 나타낼 수 있습니다.

- NFC (정준 정규화 형식 C): "가" (U+AC00)
- NFD (정준 정규화 형식 D): "ㄱ" (U+1100) + "ㅏ" (U+1161)
macOS에서는 NFD 방식으로 파일명을 저장하는 반면 Windows에서는 NFC 형식으로 파일명을 저장하고 있어 이런 문제가 발생한 것입니다.
→ 👀 겉보기엔 같아 보이지만, Unicode 인코딩이 다름
→ 파일 검색, 정렬, 비교에서 예상치 못한 오류 발생 가능
💡 해결 방법: NFC로 변환해서 저장하기
let filename = file.filename.precomposedStringWithCanonicalMapping
이렇게 파일명을 나타내는 String 뒤에 precomposedStringWithCanonicalMapping를 붙여주면 됩니다.