컴활 1급 필기 Ch1 세 번째 단원, 문자 코드임. 컴퓨터는 숫자만 다루는데 어떻게 글자를 저장하는지에 대한 단원이고, 비트 수와 표현 가능한 글자 수의 매칭이 시험 단골임. 매년 1문제씩 꾸준히 나오는 단원이라 표 하나만 외워두면 평생 점수임.
한 문자가 차지하는 비트 수
컴퓨터에 글자 'A'를 저장하면 실제로는 숫자로 변환돼서 저장됨. 그 변환 규칙이 문자 코드임. 코드마다 사용하는 비트 수가 다르고, 비트 수가 많을수록 표현 가능한 글자 수도 많아짐.
비트 수 → 표현 가능 글자 수는 단순한 2의 거듭제곱:
- 6비트 → 2⁶ = 64자
- 7비트 → 2⁷ = 128자
- 8비트 → 2⁸ = 256자
- 16비트 → 2¹⁶ = 65,536자
핵심: 비트 수만 알면 표현 글자 수는 2의 거듭제곱으로 자동.
영문권 코드 -- BCD, ASCII, EBCDIC
영문권에서 쓴 초기 코드 3종. 한 글자가 차지하는 비트 수와 함께 외워야 함.
BCD -- Binary Coded Decimal
가장 오래된 코드. 6비트로 64자 표현. 영문 대소문자 + 숫자 + 약간의 기호 정도라 한계가 명확했음. 지금은 거의 안 쓰지만 시험에는 등장.
ASCII -- American Standard Code for Information Interchange
7비트로 128자 표현. 영문 대문자(26) + 소문자(26) + 숫자(10) + 기호(33) + 제어문자(33) = 128. 이게 영문권 사실상의 표준이고, 지금도 모든 텍스트 포맷의 뼈대.
확장 ASCII는 ASCII에 1비트를 더한 8비트 코드 -- 256자 표현. 추가된 128자에 라틴 문자·기호·박스 그리기 문자가 들어감. ASCII와 확장 ASCII를 헷갈리는 함정이 시험에 자주 나옴.
EBCDIC -- Extended Binary Coded Decimal Interchange Code
IBM이 메인프레임용으로 만든 8비트 코드. ASCII와 비슷하지만 호환이 안 되고, 지금도 IBM 시스템에서만 살아남았음. 시험에는 "IBM 코드 = EBCDIC, 8비트" 정도만 기억하면 됨.
위 그림처럼 글자가 ASCII를 거쳐 10진수 → 2진수로 변환되는 과정이 인코딩. 'A'와 'a'가 한 비트만 차이 나는 게 ASCII의 영리한 설계임 (대소문자 비트 32 차이).
국제 표준 -- 유니코드
영문권 코드로는 한글·중국어·일본어·아랍 문자를 다 못 담음. 그래서 등장한 게 유니코드(Unicode). 16비트(또는 더 큼)로 전 세계 모든 언어를 한 코드 체계에 담는 게 목표.
- 유니코드: 문자 → 코드 포인트(숫자) 매핑 표준. 약 14만 자 이상 등록.
- UTF-8: 유니코드의 가변 길이 인코딩 (1~4바이트). 웹 표준. ASCII와 호환.
- UTF-16: 유니코드의 고정/가변 길이 인코딩 (2 또는 4바이트). Windows 내부에서 사용.
UTF-8이 가변 길이라는 점이 중요함. 영문은 1바이트, 한글은 보통 3바이트로 저장돼서 ASCII와 자연스럽게 섞을 수 있음.
한글 코드 -- KS X 1001
한국 산업 표준에서 정한 한글 코드. 16비트. 완성형(가, 나, 다... 한 글자씩 코드 부여)이 기본이고, 조합형(초성·중성·종성을 따로 저장)도 있음.
요즘은 유니코드(UTF-8)가 표준이라 KS X 1001을 직접 쓸 일은 거의 없지만, 시험에서는 "한글 표준 코드 = KS X 1001, 16비트" 정도로 알면 됨.
핵심: 한글이 들어가는 코드는 모두 16비트 이상. 7비트 ASCII로는 한글 표현 불가.
자주 나오는 시험 함정
1. ASCII의 비트 수
- "ASCII는 8비트 256자" → X. ASCII는 7비트 128자. 8비트 256자는 확장 ASCII.
- "ASCII는 6비트" → X. 6비트는 BCD.
2. EBCDIC
- "EBCDIC은 7비트" → X. 8비트 256자.
- "EBCDIC은 ASCII의 다른 이름" → X. 별개 코드, 호환 안 됨.
3. 유니코드와 UTF-8
- "유니코드 = UTF-8" → 정확히는 X. 유니코드는 표준(매핑), UTF-8은 그 인코딩 방식.
- "UTF-8은 무조건 1바이트" → X. 가변 길이(1~4바이트). 한글은 보통 3바이트.
4. 한글 표현
- "한글은 ASCII로 표현 가능" → X. 7비트 128자로는 한글 11,172자 표현 불가.
- "KS X 1001은 8비트" → X. 16비트.
한눈에 정리
기출 패턴 풀어보기 3선
5개년 기출 출제 패턴(ASCII vs 확장 ASCII, 유니코드 vs UTF, 코드별 비트 수)을 바탕으로 만든 변형 문제임.
Q1. ASCII의 비트 수 · 난이도 ★★☆ (중)
다음 중 ASCII 코드에 대한 설명으로 옳은 것은?
① 6비트로 64자를 표현한다.
② 7비트로 128자를 표현한다.
③ 8비트로 256자를 표현하는 IBM 표준이다.
④ 16비트로 전 세계 문자를 모두 표현한다.
Q2. 유니코드와 UTF-8 · 난이도 ★★★ (상)
다음 중 UTF-8에 대한 설명으로 옳지 않은 것은?
① 유니코드를 인코딩하는 방식이다.
② 1~4바이트의 가변 길이를 가진다.
③ ASCII와 호환된다.
④ 한글 한 글자가 항상 2바이트로 저장된다.
Q3. 코드별 비트 매칭 · 난이도 ★☆☆ (하)
다음 중 문자 코드와 비트 수의 연결이 옳지 않은 것은?
① BCD -- 6비트
② ASCII -- 7비트
③ EBCDIC -- 7비트
④ KS X 1001 -- 16비트
💡 답을 보기 전에 먼저 풀어보세요. 정답·해설은 글 맨 아래에 있음.
✅ 정답 · 해설
Q1 정답 : ②
보기별 해설
- ① 6비트 64자 ✗ 이건 BCD
- ② 7비트 128자 ✓ ASCII 정의
- ③ 8비트 256자 IBM ✗ 이건 EBCDIC (또는 확장 ASCII)
- ④ 16비트 ✗ 이건 유니코드
출제 경향 — ASCII의 비트 수를 다른 코드와 헷갈리게 하는 함정이 매년 출제. ASCII = 7비트 128자만 정확히 외워두면 끝.
→ 본문 § 영문권 코드 다시 보기
Q2 정답 : ④
보기별 해설
- ① 유니코드 인코딩 방식 ✓ 유니코드(표준) → UTF-8(인코딩)
- ② 1~4바이트 가변 ✓ 영문 1, 라틴 2, 한글 3, 이모지 4
- ③ ASCII와 호환 ✓ 영문 1바이트는 ASCII와 동일
- ④ 한글이 항상 2바이트 ✗ UTF-8에서 한글은 3바이트. UTF-16에서는 2바이트인데 둘은 다른 인코딩
출제 경향 — UTF-8과 UTF-16을 헷갈리게 하는 함정. UTF-8에서 한글 = 3바이트로 외워두면 됨. "UTF-8은 무조건 1바이트" 식 보기도 X.
→ 본문 § 국제 표준 -- 유니코드 다시 보기
Q3 정답 : ③
보기별 해설
- ① BCD 6비트 ✓ 64자 표현
- ② ASCII 7비트 ✓ 128자 표현
- ③ EBCDIC 7비트 ✗ EBCDIC은 8비트 (IBM 메인프레임)
- ④ KS X 1001 16비트 ✓ 한글 표준
출제 경향 — 코드별 비트 수 매칭은 매년 1문제. 외우는 한 줄: BCD 6 · ASCII 7 · 확장 ASCII/EBCDIC 8 · 유니코드/KS X 1001 16.
→ 본문 § 한눈에 정리 다시 보기
다음 글: [Ch1-04] 정보 단위와 처리 속도 -- 비트·바이트, ns·MIPS·FLOPS를 정리함.
컴활 1급 필기, 혼자 정리하기 막막하다면? jit.camp 에서 GA4 데이터 분석 강의로 시험 합격 이후의 실력까지 한 번에 가져가세요.