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

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

... 136  137  [138]  139  140  141  142  143  144  145  146  147  148  149  150  ...
NoWriterDateCnt.TitleFile(s)
1639정성태2/23/201423282기타: 41. BBS 스토어 앱 개인정보 보호 정책 안내
1638정성태2/18/201446101Windows: 90. 실행 파일로부터 관리자 요구 권한을 제거하는 방법(부제: 크랙 버전을 보다 안전하게 실행하는 방법) [8]
1637정성태2/14/201426965Windows: 89. 컴퓨터를 껐는데도 어느 순간 자동으로 켜진다면? - 두 번째 이야기
1636정성태2/14/201423030Windows: 88. Hyper-V가 설치된 컴퓨터의 윈도우 백업 설정
1635정성태2/14/201423879오류 유형: 221. SharePoint - System.InvalidOperationException: The farm is unavailable.
1634정성태2/14/201424066.NET Framework: 424. C# - CSharpCodeProvider로 컴파일한 메서드의 실행이 일반 메서드보다 더 빠르다? [1]파일 다운로드1
1633정성태2/13/201426904오류 유형: 220. 2014년 2월 13일 이후로 Visual Studio 2010 Macro가 동작하지 않는다면? [3]
1632정성태2/12/201444906.NET Framework: 423. C#에서 DirectShow를 이용한 미디어 재생 [2]파일 다운로드1
1631정성태2/11/201423658개발 환경 구성: 217. Realtek 사운드 장치에서 재생되는 오디오를 GraphEditor로 녹음하는 방법
1630정성태2/5/201424136개발 환경 구성: 216. Hyper-V에 올려진 윈도우 XP VM에서 24bit 컬러 및 ClearType 활성화하는 방법
1629정성태2/5/201433912개발 환경 구성: 215. DOS batch - 하나의 .bat 파일에서 다중 .bat 파일을 (비동기로) 실행하는 방법 [1]
1628정성태2/4/201435294Windows: 87. 윈도우 8.1에서 .NET 3.5 설치가 안된다면? [2]
1627정성태2/4/201430351개발 환경 구성: 214. SQL Server Reporting Services를 이용해 간단한 리포트 제작하는 방법
1626정성태2/4/201422361Windows: 86. 윈도우 8.1의 Skydrive 내용이 동기화가 안된다면?
1625정성태2/2/201429438.NET Framework: 422. C++과 C#의 Event 공유파일 다운로드1
1624정성태2/2/201425128.NET Framework: 421. ASP.NET에서 Server.CreateObject와 COM Interop 클래스 생성의 차이점
1623정성태2/1/201429875개발 환경 구성: 213. x86/x64별로 나뉘어진 어셈블리를 한 프로젝트에서 참조하는 방법 [1]파일 다운로드1
1622정성태1/31/201430202VC++: 74. 어떤 것을 쓰면 좋을까요? wvnsprintf, _vsnwprintf_s, StringCbVPrintfW [4]
1621정성태1/31/201422018.NET Framework: 420. 베트남의 11학년(한국의 고2)이 45분만에 푼다는 알고리즘 문제파일 다운로드1
1620정성태1/30/201432090.NET Framework: 419. C# - BigDecimal파일 다운로드1
1619정성태1/30/201428781VS.NET IDE: 85. T4를 이용한 INotifyPropertyChanged 코드 자동 생성파일 다운로드1
1618정성태1/29/201444382Linux: 2. 우분투에서 Active Directory 계정을 이용한 파일 공유
1617정성태1/29/201425678.NET Framework: 418. Thread.Abort 호출의 hang 현상 [1]
1616정성태1/29/201426246디버깅 기술: 63. windbg 디버깅 사례: AppDomain 간의 static 변수 사용으로 인한 crash
1615정성태1/29/201428066.NET Framework: 417. WPF WebBrowser 컨트롤에서 SHDocVw.IWebBrowser2 인터페이스를 구하는 방법 및 순수 WPF 웹 브라우저 컨트롤 소개
1614정성태1/29/201425105.NET Framework: 416. System.Net.Sockets.NetworkStream이 Thread-safe할까?파일 다운로드1
... 136  137  [138]  139  140  141  142  143  144  145  146  147  148  149  150  ...