Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 16개 있습니다.)
(시리즈 글이 3개 있습니다.)
개발 환경 구성: 48. 개발자 PC 환경 - 유니코드(Unicode)를 위한 설정
; https://www.sysnet.pe.kr/2/0/762

.NET Framework: 2122. C# - "Use Unicode UTF-8 for worldwide language support" 설정을 한 경우, 한글 입력이 '\0' 문자로 처리
; https://www.sysnet.pe.kr/2/0/13354

개발 환경 구성: 728. 윈도우 환경의 개발자를 위한 UTF-8 환경 설정
; https://www.sysnet.pe.kr/2/0/13775




개발자 PC 환경 - 유니코드(Unicode)를 위한 설정


개발자라면!

개인적으로 다음의 2가지 설정은 강제화해야 한다고 봅니다.

  1. UAC 설정
  2. Unicode 사용 확인이 쉽도록 설정

사실 UAC 같은 경우에는 개발자들일수록 더욱 풀어놓는 경향이 있는데요. 제 개인적으로는 반대입장입니다. 왜냐하면, 개발자야말로 자신이 개발하는 응용 프로그램의 어떤 면이 UAC에 걸리는지를 자신의 환경에서 평소에 알고 있어야 하기 때문입니다.

그 다음으로는, 유니코드의 사용!
요건 어떻게 강제화할 수 있을까요?

생각보다 간단합니다. 제어판의 "Region and Language" 설정에 가서 비-유니코드 문자열들에 대한 언어설정을 명시적으로 "영어"로 바꿔주시면 됩니다.

[그림 1: non-Unicode 응용 프로그램을 위한 언어 설정]
two_settings_for_dev_1.png

자! 그럼 이렇게 바뀌었을 경우에 어떤 문제들이 있을까요?

우선, 국내에서 제작된 응용 프로그램들중에서 "한글"을 유니코드로 인코딩하지 않고 사용하는 프로그램들은 아래와 같이 글자들이 깨져서 나오게 됩니다. (의외군요. 알툴즈 제품들은 해외에도 서비스되고 있는데 기본적으로 유니코드를 사용하고 있지 않습니다.)

[그림 2: 한글이 깨지는 응용 프로그램]
two_settings_for_dev_2.png

비단, 국내 응용 프로그램만 문제되는 것은 아닙니다. 윈도우즈 탐색기는 유니코드를 사용하기 때문에 "폴더 경로"에 한글이 허용되는데요. 유니코드를 지원하지 않는 영문 프로그램에서 그런 "한글이 섞인 폴더"에 파일을 저장하려면 다음과 같은 식으로 오류가 발생합니다.

[그림 3: 한글 폴더에 저장이 안 되는 응용 프로그램]
two_settings_for_dev_3.png

사실, 국외 프로그램들 - 특히 영어권 개발자들은 유니코드를 강제화하기 쉽지 않을 것 같습니다. 평소에 쓰는 언어가 영어이다 보니 일부러 모르는 외국어 폴더를 만들어 놓고 매번 테스트하기도 쉽지 않을테니까요.

어떠세요? 그래도, 보니까 좀 심각하죠?
개발자들의 PC만이라도 유니코드를 사용했는지 여부를 쉽게 확인할 수 있는 환경으로 설정해 놓고 쓴다면 적어도 국내 응용 프로그램 중에서 저렇게 문제가 되는 경우는 많이 줄어들지 않을까요? ^^




[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/15/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2009-08-28 11시11분
이에 더해서. 요즘에는 64비트 운영체제 설치가 부각되지요. ^^
kevin25
2011-11-30 03시24분
유용했습니다 감사합니다~^^
스포너
2011-11-30 04시10분
제 경우에는 꼭 저렇게 설정하고 시스템을 사용하는데요.
가끔 이것때문에 시행착오를 겪는 경우도 있습니다.

UTF-8 포맷의 INI 파일에 대한 GetPrivateProfile... API 사용 불가
; http://www.sysnet.pe.kr/2/0/927

File cannot be opened. Ensure it is a valid Data Link file.
; http://www.sysnet.pe.kr/2/0/1035

또한, 일부 국내 프로그램들이 여전히 유니코드 지원이 미흡해서 발생하는 불편함들이 소소하게 있고. ^^
정성태

... 46  47  [48]  49  50  51  52  53  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
12737정성태7/28/202115011오류 유형: 744. Azure Active Directory - The resource principal named api://...[client_id]... was not found in the tenant
12736정성태7/28/202115271오류 유형: 743. Active Azure Directory에서 "API permissions"의 권한 설정이 "Not granted for ..."로 나오는 문제
12735정성태7/27/202115174.NET Framework: 1081. C# - Azure AD 인증을 지원하는 데스크톱 애플리케이션 예제(Windows Forms) [2]파일 다운로드1
12734정성태7/26/202131992스크립트: 20. 특정 단어로 시작하거나/끝나는 문자열을 포함/제외하는 정규 표현식 - Look-around
12733정성태7/23/202119868.NET Framework: 1081. Self-Contained/SingleFile 유형의 .NET Core/5+ 실행 파일을 임베딩한다면? [1]파일 다운로드2
12732정성태7/23/202113311오류 유형: 742. SharePoint - The super user account utilized by the cache is not configured.
12731정성태7/23/202115362개발 환경 구성: 584. Add Internal URLs 화면에서 "Save" 버튼이 비활성화 된 경우
12730정성태7/23/202116784개발 환경 구성: 583. Visual Studio Code - Go 코드에서 입력을 받는 경우
12729정성태7/22/202115266.NET Framework: 1080. xUnit 단위 테스트에 메서드/클래스 수준의 문맥 제공 - Fixture
12728정성태7/22/202115292.NET Framework: 1079. MSTestv2 단위 테스트에 메서드/클래스/어셈블리 수준의 문맥 제공
12727정성태7/21/202116471.NET Framework: 1078. C# 단위 테스트 - MSTestv2/NUnit의 Assert.Inconclusive 사용법(?) [1]
12726정성태7/21/202116247VS.NET IDE: 169. 비주얼 스튜디오 - 단위 테스트 선택 시 MSTestv2 외의 xUnit, NUnit 사용법 [1]
12725정성태7/21/202114714오류 유형: 741. Failed to find the "go" binary in either GOROOT() or PATH
12724정성태7/21/202117605개발 환경 구성: 582. 윈도우 환경에서 Visual Studio Code + Go (Zip) 개발 환경 [1]
12723정성태7/21/202114515오류 유형: 740. SharePoint - Alternate access mappings have not been configured 경고
12722정성태7/20/202114270오류 유형: 739. MSVCR110.dll이 없어 exe 실행이 안 되는 경우
12721정성태7/20/202115436오류 유형: 738. The trust relationship between this workstation and the primary domain failed. - 세 번째 이야기
12720정성태7/19/202114686Linux: 43. .NET Core/5+ 응용 프로그램의 Ubuntu (Debian) 패키지 준비
12719정성태7/19/202113904오류 유형: 737. SharePoint 설치 시 "0x800710D8 The object identifier does not represent a valid object." 오류 발생
12718정성태7/19/202113910개발 환경 구성: 581. Windows에서 WSL로 파일 복사 시 root 소유권으로 적용되는 문제파일 다운로드1
12717정성태7/18/202114106Windows: 195. robocopy에서 파일의 ADS(Alternate Data Stream) 정보 복사를 제외하는 방법
12716정성태7/17/202115237개발 환경 구성: 580. msbuild의 Exec Task에 robocopy를 사용하는 방법파일 다운로드1
12715정성태7/17/202122433오류 유형: 736. Windows - MySQL zip 파일 버전의 "mysqld --skip-grant-tables" 실행 시 비정상 종료 [1]
12714정성태7/16/202115797오류 유형: 735. VCRUNTIME140.dll, MSVCP140.dll, VCRUNTIME140.dll, VCRUNTIME140_1.dll이 없어 exe 실행이 안 되는 경우
12713정성태7/16/202117193.NET Framework: 1077. C# - 동기 방식이면서 비동기 규약을 따르게 만드는 Task.FromResult파일 다운로드1
12712정성태7/15/202116109개발 환경 구성: 579. Azure - 리눅스 호스팅의 Site Extension 제작 방법
... 46  47  [48]  49  50  51  52  53  54  55  56  57  58  59  60  ...