preLoad Image preLoad Image
검색 바로가기
주메뉴 바로가기
주요 기사 바로가기
다른 기사, 광고영역 바로가기
중앙일보 사이트맵 바로가기

2진수만 아는 컴퓨터 … 1+2를 (01) (000) (10)형태로 인식

[알고보면 쉬운 과학 원리] 코딩, 왜 중요한가
현대 컴퓨터는 모두 2진수로 인간과 대화한다. 그래서 컴퓨터를 디지털 컴퓨터라고 부르기도 한다.
 
디지털 시스템은 신호와 기호를 잘라서 모두 (0, 1)의 2진수 숫자로 잘라서 표현하는 방식을 말한다. 우리가 일상생활에서는 10진수를 사용하지만, 컴퓨터나 스마트폰은 이것을 2진수로 바꾸어 인식한다. 심지어 우리 인간은 한국어나 영어로 말하지만, 컴퓨터는 이를 받아서 2진수로 바꾸어 인식한다. 컴퓨터가 10진수를 계산하고 인공지능 컴퓨터가 한국어를 알아듣는 것처럼 하지만, 사실은 모두 2진수로 바꾸어서 인식한다.
 
이에 반하여 세상에 있는 신호 그대로 표현하는 방식을 아날로그라 부른다. 아날로그 방식은 있는 그대로 표현하기 때문에 좋아 보인다. 그러나 혹시 오류가 생기면, 아날로그 방식은 오류까지 저장한다. 오류까지 저장하기 때문에 오류가 반복 누적되어 큰 오류가 될 수 있다. 이 세상에 있는 모든 기계는 오래 사용하다 보면 조금씩 오류를 보인다. 그러나 디지털 방식은 저장과 재생할 때에 데이터를 반올림한다. 혹시 오류가 발생하더라도 반올림할 때 오류가 절삭되어 원래 값으로 환원되는 장점이 있다.
 
 
1비트, 스위치 1개로 2가지 상태 표현
 
[그래픽=이정권 기자 gaga@joongang.co.kr]

[그래픽=이정권 기자 gaga@joongang.co.kr]

디지털 시스템에는 크게 네 가지 약속이 존재한다. 첫째, 선의 연결 상태를 숫자로 나타내고 둘째, 모든 숫자를 2진수로 표현하고 셋째, 인간의 언어를 2진수 숫자로 표현하고 넷째, 2진수 숫자를 기억할 때 전압의 차이로 표현한다. 다음에 하나씩 살펴보자.
 
첫째 약속은 사물의 연결을 표현하기 위해 필요하다. 예를 들어 <그림 1>에서 보듯이 전기스위치가 한 개 있다고 하자. 끊어진 상태를 0으로 표시하고, 연결된 상태를 1로 표현한다. 매우 자연스러운 표현이다. 여기에는 스위치 한 개가 있고, 이를 2진수(0과 1)로 표현하면 두 가지 상태(00과 01)를 표현할 수 있다. 스위치 개수를 ‘비트(Bit)’라고 부른다. <그림 1>은 1비트 숫자를 표현한 것으로 데이터를 전송할 때 필요한 개념이다. 만약에 네 가지 상태(신호)를 표현하고 싶을 때는 <그림 2>와 같이 스위치를 두 개 사용하면 된다. 여기서는 2진수 네 개의 숫자(00, 01, 10, 11)로 표현한다. 이때는 2비트가 이용됐다.
 
둘째 약속에서는 우리가 일상생활에서 사용하는 모든 숫자를 2진수로 변환한다. <그림 3>은 10진수를 2진수로 변화한 예를 보여 준다. 여기에서는 10진수 0에서 3까지만 표현했기 때문에, 2비트만 사용했다. 만약 3비트를 사용하면 8개 숫자(0부터 7까지)를 표현할 수 있고, 4비트를 이용하면 16개 숫자(0부터 15까지)를 나타낼 수 있다. 따라서 비트 수를 길게 하면 세상의 모든 숫자를 2진수로 변환시킬 수 있다. 이 말은 인간이 사용하는 모든 계산을 컴퓨터가 할 수 있다는 뜻이기도 하다.
 
셋째 약속은 인간의 언어를 2진수로 표현한다. 인간이 컴퓨터와 대화할 때 사용하는 단어는 제한되어 있다. 물론 인간들끼리 사용하는 한국어나 영어에도 단어의 숫자는 제한되어 있다. 아무리 복잡해 보이는 중국어 한자도 결국 무한대는 아니다. 당연히 인간이 컴퓨터에 명령할 때 사용하는 단어는 매우 제한되어 있다. 그래서 우리가 컴퓨터에 명령하는 내용을 모두 2진수로 표현하기로 약속한다. 그러면 우리 인간은 한국어나 영어로 명령을 주지만 컴퓨터는 이를 2진수로 바꾸어 이해한다. 이것이 바로 프로그래밍 또는 코딩이다.
 
<그림 4>는 인간과 컴퓨터 사이에 사용하는 명령어를 2진수로 표현한 예를 보이고 있다. 여기 있는 예는 이해를 돕기 위해 필자가 간단하게 만든 것이다. 우리가 덧셈(+) 명령어를 주면, 컴퓨터는 약속에 따라서 2진수 (000)로 바꾸어 이해하고 실제로 덧셈을 한다. 마찬가지로 뺄셈(-) 명령어를 입력하면, (001)로 해석하고 뺄셈을 한다.
 
그러면 여기서 실제로 컴퓨터가 되어서 계산을 해 보자. 예를 들어 인간이 다음과 같이 명령을 주었다고 하자.
 
1 + 2
 
<그림 3>에서 10진수 1은 2진수로 (01)이고, 2는 (10)이다. 그리고 덧셈 표시(+)는 (000)으로 인식된다. 그래서 이 명령어를 컴퓨터는 다음과 같이 바꾸어 이해한다.
 
(01) (000) (10)
 
이제 컴퓨터는 2진수 (01)과 (10)을 합하여 결과 (11)을 만들어 낸다.
 
필자는 이 대목에서 악몽처럼 떠오르는 추억이 있다. 처음 컴퓨터 프로그램을 배울 때 에러(오류) 때문에 하도 고생을 많이 했기 때문이다. 프로그램을 짤 때는 약속된 방식으로 명령어를 주어야 한다. 그런데 프로그램의 길이가 수천 줄에 이르게 되면 실수하게 된다. 오류 하나를 찾기 위해 일주일을 소비하는 일은 다반사다. 지금 이 순간에도 코딩을 배우고 있는 후배들에게 파이팅을 외치고 싶다. 결국 찾아지지 않는 에러는 없더라고 말이다.
 
 
인공지능 활용하는 능력이 국력 좌우
 
넷째 약속은 숫자를 저장할 때 생긴다. 2진수로 된 데이터를 실제로 기계 속에 저장할 때는 대부분 전기의 전압 차이를 이용한다. <그림 5>는 1비트를 저장하는 내용을 보여 주고 있다. 여기에서는 1비트의 2진수를 1볼트 전압 차이로 저장하고 있다.  <그림 5>의 (a)는 전압이 0볼트로 나타나 있는데, 이것은 0을 저장하고 있다는 뜻이다. (b)는 1볼트가 저장되어 있고, 이것은 2진수 1을 표현하고 있다.
 
이상에서 우리는 인간과 컴퓨터가 소통하는 방식인 디지털 시스템의 원리를 살펴봤다. 컴퓨터는 인간의 명령을 받아들여서 계산 기억 학습을 추론하고 있다. 컴퓨터는 인간이 주는 명령어나 데이터를 모두 2진수로 바꾸어 인식한다. 그러면 컴퓨터 내부에는 2진수만이 존재한다. 스마트폰도 마찬가지다. 2진수로 통화하게 해 주고 영상통화도 가능하게 해 주고 사진도 찍어 주고 영상도 플레이해 준다. 인공지능 알파고가 바둑을 학습하고 시합을 하는 일도 모두 디지털 방식으로 한다.
 
미래는 인공지능과 함께 협력하며 살아야 하는 공존사회가 될 것이다. 인공지능 활용능력이 국력을 좌우하게 된다. 컴퓨터의 작동원리를 이해하는 사람이 새로운 비즈니스를 만들어 낼 가능성이 크다. 선진국들이 초등학교부터 코딩 교육을 강화하는 이유가 바로 여기에 있다.
 
이광형 KAIST 바이오뇌공학과 겸 문술미래전략대학원 교수
인공지능과 퍼지이론, 바이오정보, 미래예측 전문가다. 사단법인미래학회장과 국회미래연구원이사를 맡고 있다. 

구독신청

AD
온라인 구독신청 지면 구독신청

중앙일보 핫 클릭

PHOTO & VIDEO

shpping&life

뉴스레터 보기

김민석의 Mr. 밀리터리 군사안보연구소

군사안보연구소는 중앙일보의 군사안보분야 전문 연구기관입니다.
군사안보연구소는 2016년 10월 1일 중앙일보 홈페이지 조인스(https://news.joins.com)에 문을 연 ‘김민석의 Mr. 밀리터리’(https://news.joins.com/mm)를 운영하며 디지털 환경에 특화된 군사ㆍ안보ㆍ무기에 관한 콘텐트를 만들고 있습니다.

연구소 사람들
김민석 소장 : kimseok@joongang.co.kr (02-751-5511)
국방연구원 전력발전연구부ㆍ군비통제센터를 거쳐 1994년 중앙일보에 입사한 국내 첫 군사전문기자다. 국방부를 출입한 뒤 최장수 국방부 대변인(2010~2016년)으로 활동했다. 현재는 군사안보전문기자 겸 논설위원으로 한반도 군사와 안보문제를 깊게 파헤치는 글을 쓰고 있다.

박용한 연구위원 : park.yonghan@joongang.co.kr (02-751-5516)
‘북한의 급변사태와 안정화 전략’을 주제로 북한학 박사를 받았다. 국방연구원 안보전략연구센터ㆍ군사기획연구센터와 고려대학교 아세아문제연구소 북한연구센터에서 군사ㆍ안보ㆍ북한을 연구했다. 2016년부터는 중앙일보에서 군사ㆍ안보 분야 취재를 한다.