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

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

1  2  3  4  5  [6]  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13829정성태11/25/20246693스크립트: 67. 파이썬 - Windows 버전에서 함께 설치되는 py.exe
13828정성태11/25/20245202개발 환경 구성: 735. Azure - 압축 파일을 이용한 web app 배포 시 디렉터리 구분이 안 되는 문제파일 다운로드1
13827정성태11/25/20246023Windows: 273. Windows 환경의 파일 압축 방법 (tar, Compress-Archive)
13826정성태11/21/20246394닷넷: 2313. C# - (비밀번호 등의) Console로부터 입력받을 때 문자열 출력 숨기기(echo 끄기)파일 다운로드1
13825정성태11/21/20247050Linux: 110. eBPF / bpf2go - BPF_RINGBUF_OUTPUT / BPF_MAP_TYPE_RINGBUF 사용법
13824정성태11/20/20245427Linux: 109. eBPF / bpf2go - BPF_PERF_OUTPUT / BPF_MAP_TYPE_PERF_EVENT_ARRAY 사용법
13823정성태11/20/20246629개발 환경 구성: 734. Ubuntu에 docker, kubernetes (k3s) 설치
13822정성태11/20/20246499개발 환경 구성: 733. Windbg - VirtualBox VM의 커널 디버거 연결 시 COM 포트가 없는 경우
13821정성태11/18/20246101Linux: 108. Linux와 Windows의 프로세스/스레드 ID 관리 방식
13820정성태11/18/20246558VS.NET IDE: 195. Visual C++ - C# 프로젝트처럼 CopyToOutputDirectory 항목을 추가하는 방법
13819정성태11/15/20245132Linux: 107. eBPF - libbpf CO-RE의 CONFIG_DEBUG_INFO_BTF 빌드 여부에 대한 의존성
13818정성태11/15/20246685Windows: 272. Windows 11 24H2 - sudo 추가
13817정성태11/14/20245897Linux: 106. eBPF / bpf2go - (BPF_MAP_TYPE_HASH) Map을 이용한 전역 변수 구현
13816정성태11/14/20246853닷넷: 2312. C#, C++ - Windows / Linux 환경의 Thread Name 설정파일 다운로드1
13815정성태11/13/20245469Linux: 105. eBPF - bpf2go에서 전역 변수 설정 방법
13814정성태11/13/20246119닷넷: 2311. C# - Windows / Linux 환경에서 Native Thread ID 가져오기파일 다운로드1
13813정성태11/12/20246665닷넷: 2310. .NET의 Rune 타입과 emoji 표현파일 다운로드1
13812정성태11/11/202410284오류 유형: 933. Active Directory - The forest functional level is not supported.
13811정성태11/11/20245858Linux: 104. Linux - COLUMNS 환경변수가 언제나 80으로 설정되는 환경
13810정성태11/10/20246884Linux: 103. eBPF (bpf2go) - Tracepoint를 이용한 트레이스 (BPF_PROG_TYPE_TRACEPOINT)
13809정성태11/10/20246517Windows: 271. 윈도우 서버 2025 마이그레이션
13808정성태11/9/20246833오류 유형: 932. Linux - 커널 업그레이드 후 "error: bad shim signature" 오류 발생
13807정성태11/9/20245684Linux: 102. Linux - 커널 이미지 파일 서명 (Ubuntu 환경)
13806정성태11/8/20245869Windows: 270. 어댑터 상세 정보(Network Connection Details) 창의 내용이 비어 있는 경우
13805정성태11/8/20245474오류 유형: 931. Active Directory의 adprep 또는 복제가 안 되는 경우
13804정성태11/7/20247071Linux: 101. eBPF 함수의 인자를 다루는 방법
1  2  3  4  5  [6]  7  8  9  10  11  12  13  14  15  ...