CP949는 한국어 텍스트를 처리하기 위한 문자 인코딩 방식으로, 주로 Microsoft Windows 환경에서 사용되는 한국어 기본 코드 페이지입니다. 한글과 영어를 포함한 다국어 지원을 위해 개발되었으며, EUC-KR의 확장 버전으로 알려져 있습니다. '통합 완성형' 또는 '확장 완성형'이라고도 불리며, 웹 개발이나 파일 처리 시 자주 마주치는 인코딩 문제의 원인이 되기도 합니다. 이 글에서는 CP949의 기본 개념, 역사, 특징, 그리고 티스토리 블로그 운영 시 유용한 팁을 간단히 정리하겠습니다.
1. CP949의 기본 개념
- 정의: 컴퓨터가 텍스트를 숫자로 변환하는 '인코딩' 방식 중 하나. CP949는 한글 문자를 2바이트로 표현하는 고정 길이 인코딩으로, KS C 5601 표준을 기반으로 합니다. ASCII(영문)와 한글을 함께 처리할 수 있어 Windows의 기본 설정으로 채택되었습니다.
- 왜 필요한가?: 과거 컴퓨터는 한글을 제대로 표시하지 못했는데, CP949는 이를 해결하기 위해 개발된 '완성형' 코드(초성·중성·종성 조합으로 완성된 글자)입니다. 예를 들어, '가'는 별도의 코드로 저장되어 깨짐 현상을 방지합니다.
2. 역사와 배경
- 개발 배경: 1990년대 Microsoft가 Windows 95용으로 EUC-KR을 확장해 만들었습니다. EUC-KR(한국 표준 인코딩)이 일부 한글 문자를 커버하지 못하자, 이를 보완한 버전으로 등장했습니다.
- 현재 상태: Windows 10/11에서도 여전히 기본이지만, 웹 표준으로는 UTF-8이 대세입니다. (2025년 기준, 유니코드 전환이 진행 중이지만 레거시 시스템에서 자주 보입니다.)
3. 주요 특징
| 특징 | 설명 | 예시 |
| 바이트 길이 | 고정 2바이트 (한글) / 1바이트 (ASCII) | '안녕' → 4바이트 |
| 지원 문자 | KS X 1001 한글 11,172자 + 추가 확장 문자 (총 23,540자) | EUC-KR보다 더 많은 한글 포함 |
| 장점 | Windows 호환성 높음, 파일 크기 효율적 | 엑셀/워드 파일 처리 시 안정적 |
| 단점 | 유니코드와 호환성 낮아 웹에서 깨짐 발생 | UTF-8로 변환 필요 |
- 인코딩 예시: Python에서 확인해보면 text.encode('cp949')으로 변환 가능. (코드 실행 시 에러 발생 시 errors='ignore' 옵션 추가.)
4. EUC-KR / UTF-8과의 비교
- EUC-KR: 한국 표준 인코딩. CP949의 기반이지만, 일부 한글(예: 'ㆍ' 같은 특수문자) 미지원. CP949는 이를 모두 커버합니다.
- UTF-8: 유니코드 기반 가변 길이(1~4바이트). 웹/모바일 표준으로, CP949보다 범용적. 하지만 CP949 파일을 UTF-8로 읽을 때 UnicodeDecodeError 에러가 발생할 수 있습니다.
| 인코딩 | 기반 | 바이트 | 주요 용도 |
| CP949 | MS Windows | 2바이트 고정 | 데스크톱 앱 |
| EUC-KR | KS C 5601 | 2바이트 고정 | Unix/Linux |
| UTF-8 | Unicode | 1~4바이트 가변 | 웹/모바일 |
CP949는 레거시지만, 여전히 Windows 중심 작업에서 필수입니다.
반응형
'IT관련 > C#' 카테고리의 다른 글
| Serilog 사용법 정리 (1) | 2025.11.14 |
|---|---|
| .NET의 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)란? (0) | 2025.10.27 |
| C# 원격 디버깅 자격 증명: MS 계정 이메일의 'abc'만 입력하는 이유 완벽 해부 (0) | 2025.10.23 |
| C# 원격 디버깅 통신 메커니즘: 깊이 파헤치기 (상세 버전) (0) | 2025.10.23 |
| VS2017: "원격 컴퓨터 사용" 옵션 vs. "디버그 > 프로세스에 연결" 차이점 완벽 정리 (1) | 2025.10.23 |