seegongsik
구조

글자는 어떻게 숫자가 될까요?

컴퓨터는 숫자만 안다고 했다. 그런데 우리는 자판으로 글자를 치고, 화면에도 글자가 뜬다. 숫자밖에 모르는 기계가 어떻게 글자를 다루는지, 이번 레슨에서 그 속을 들여다본다.

01

글자마다 번호가 붙어 있다

비밀은 생각보다 단순하다.
사람들이 모여 글자마다 번호를 정해 두었다.
A는 65번, B는 66번 하는 식이에요.
그래서 자판에서 A를 누르면 컴퓨터에 전해지는 것은 글자가 아니라 숫자 65다.

A→65
128
0
64
1
32
0
16
0
8
0
4
0
2
0
1
1
A = 65 = 0100 0001

글자를 누르면 그 글자의 번호가 나타난다.

A부터 Z까지의 대문자는 물론이고 소문자, 숫자, 기호에도 저마다 번호가 있다.
이렇게 글자에 번호를 매긴 약속을 아스키라고 부른다.
컴퓨터가 글자를 다루려고 처음 널리 쓴 약속표예요.

02

번호는 다시 0과 1이 된다

앞 레슨을 떠올리면, 컴퓨터는 숫자도 0과 1로 담는다고 했다.
그러니 65라는 번호도 결국 스위치 여덟 개의 켜짐과 꺼짐으로 저장된다.
글자 하나가 0과 1 여덟 개가 되는 셈이에요.

A→65
128
0
64
1
32
0
16
0
8
0
4
0
2
0
1
1
A = 65 = 0100 0001

A는 65번이고, 그 번호가 다시 0과 1 여덟 개로 바뀐다.

그래서 영어 글자 한 개는 보통 스위치 여덟 개, 곧 1바이트를 차지한다.
여덟 개를 한 묶음으로 부르는 이 말, 바이트가 여기서 처음 등장해요.
글자도 결국 0과 1이었다.

03

약속표 펼쳐 보기

아스키 약속표가 실제로 어떻게 생겼는지 아래에 펼쳐 두었다.
번호 순서대로 글자가 늘어서 있고, 글자마다 번호가 함께 적혀 있어요.
대문자 A는 65, 소문자 a는 97, 숫자 0은 48이다.

!
33
"
34
#
35
$
36
%
37
&
38
'
39
(
40
)
41
*
42
+
43
,
44
-
45
.
46
/
47
0
48
1
49
2
50
3
51
4
52
5
53
6
54
7
55
8
56
9
57
:
58
;
59
<
60
=
61
>
62
?
63
@
64
A
65
B
66
C
67
D
68
E
69
F
70
G
71
H
72
I
73
J
74
K
75
L
76
M
77
N
78
O
79
P
80
Q
81
R
82
S
83
T
84
U
85
V
86
W
87
X
88
Y
89
Z
90
[
91
\
92
]
93
^
94
_
95
`
96
a
97
b
98
c
99
d
100
e
101
f
102
g
103
h
104
i
105
j
106
k
107
l
108
m
109
n
110
o
111
p
112
q
113
r
114
s
115
t
116
u
117
v
118
w
119
x
120
y
121
z
122
{
123
|
124
}
125
~
126

같은 글자라도 소문자 번호가 대문자보다 32만큼 크다.

재미있는 점은 대문자와 소문자가 정확히 32만큼 차이 난다는 것이다.
A는 65, a는 97이다.
우연이 아니라, 컴퓨터가 대소문자를 쉽게 바꿀 수 있도록 일부러 그렇게 정한 약속이에요.

04

스위치 여덟 개로는 모자란다

스위치 여덟 개로 나타낼 수 있는 경우는 256가지다.
영어 알파벳과 숫자, 기호를 다 담아도 자리가 남는다.
영어권에서 만든 약속이었으니 처음에는 이것으로 충분했어요.

0 ~ 255 · 256

0부터 255까지, 모두 256가지.

하지만 세상에는 영어만 있지 않다.
한글은 음절 글자만 해도 만 자가 넘고, 한자는 수만 자에 이른다.
여기에 이모지까지 더하면 256개로는 어림도 없어요.
그래서 새로운 약속이 필요했다.

05

큰 글자는 바이트를 더 쓴다

해결책은 단순하다.
한 칸으로 모자라면 여러 칸을 쓰면 된다.
흔히 쓰는 UTF-8 방식에서 영어는 그대로 1바이트, 한글은 보통 3바이트, 이모지는 4바이트를 차지해요.
세상의 모든 글자에 번호를 매긴 이 거대한 약속표를 유니코드라고 부른다.

A
영어 한 글자
1바이트 (1칸)
0100
가
한글 한 글자
3바이트 (3칸)
1110
1011
1000
이모지 하나
4바이트 (4칸)
1111
1001
1001
1000

글자에 따라 차지하는 칸 수가 다르다.

그래서 같은 한 글자라도 차지하는 자리가 다르다.
영어 한 글자는 한 칸, 한글 한 글자는 세 칸이다.
메시지 글자 수를 우리가 셀 때와 컴퓨터가 셀 때 값이 달라지는 이유가 여기에 있어요.

06

한 문장도 결국 숫자의 줄

이번에는 짧은 한 줄을 통째로 본다.
글자 하나하나가 번호로 바뀌고, 그 번호가 다시 0과 1이 된다.
우리가 보내는 메시지도 속을 들여다보면 이렇게 숫자가 길게 이어진 줄이에요.

Hi
H720100 1000
i1050110 1001

컴퓨터 눈에 비친 Hi 두 글자.

글자를 화면에 띄울 때는 이 과정을 거꾸로 밟는다.
0과 1을 읽어 번호를 알아내고, 그 번호에 해당하는 글자를 약속표에서 찾아 그린다.
우리 눈에는 글자로 보여도 속은 처음부터 끝까지 숫자예요.

한 줄 정리숫자만 아는 컴퓨터가 글자를 다루는 비결은 글자마다 번호를 붙여 둔 약속표였다. 그리고 그 번호마저 결국 1강에서 다룬 0과 1로 적혀 있어요.
← 구조
이 페이지가 도움 됐다면 후원하기