콤마(,) 때문에 게임이 멈춘다고? Unity 문자열 파싱 오류와 InvariantCulture의 중요성
·
Unity
게임 개발 중, 특정 국가의 유저에게서 `게임이 튕긴다`, `버그 때문에 앱이 종료된다`는 보고를 받았다면 가장 당황스러울 것이다. 특히 이 문제가 터키, 러시아 등 일부 지역에서만 문자열 파싱 과정 중에 발생한다면, 디버깅은 미궁에 빠지기 쉽다.대부분의 경우, 이 현상은 문화권마다 다른 소수점 구분 기호(Decimal Separator) 때문에 발생한다. 유니티(Unity)에서 문자열을 숫자로 변환할 때, 시스템의 지역 설정에 따라 `콤마(,)`와 `마침표(.)` 중 어떤 것을 소수점으로 인식할지가 달라지기 때문이다. 이 글에서는 이 미스터리한 버그의 원인을 파헤치고, 모든 문화권에서 안전하게 문자열을 파싱하는 `CultureInfo.InvariantCulture` 사용법을 알아본다. 문화권별 소수점..