컴퓨터는 어떻게 0과 1만으로 게임과 AI까지 할 수 있을까?
우리는 앞에서 반도체 안에 트랜지스터라는 아주 작은 전기 스위치가 들어 있다고 배웠습니다.
트랜지스터는 전기를 흐르게 하거나 막을 수 있습니다.
그래서 아주 단순하게 생각하면
전기가 흐름 → 1
전기가 흐르지 않음 → 0
처럼 두 가지 상태를 만들 수 있습니다.
그런데 여기서 아주 신기한 질문이 생깁니다.
컴퓨터는 0과 1밖에 모른다는데,
어떻게 사진을 보여주고,
음악을 들려주고,
게임을 실행하고,
심지어 사람처럼 질문에 답하는 AI까지 만들 수 있을까요?
그 비밀은 아주 많은 0과 1을 약속된 규칙에 따라 사용하는 것에 있습니다.
컴퓨터는 왜 0과 1을 사용할까?
사람은 숫자를 셀 때 보통 0부터 9까지 열 개의 숫자를 사용합니다.
이것을 십진법이라고 합니다.
예를 들어 347이라는 숫자는
3, 4, 7이라는 숫자를 이용해서 표현합니다.
하지만 컴퓨터는 기본적으로 두 가지 상태를 구분하는 데 매우 능숙합니다.
전기가 흐른다.
전기가 흐르지 않는다.
스위치가 켜져 있다.
스위치가 꺼져 있다.
그래서 컴퓨터에서는 두 가지 숫자만 사용하는 것이 편리합니다.
0과 1
이렇게 0과 1만 사용하는 숫자 체계를 이진법(Binary)이라고 합니다.
이진법은 어떻게 숫자를 표현할까?
처음에는 조금 낯설 수 있습니다.
우리가 사용하는 십진법에서는 숫자가 이렇게 올라갑니다.
0
1
2
3
4
5
6
7
8
9
10
하지만 이진법에서는 0과 1만 사용할 수 있습니다.
그래서 이렇게 올라갑니다.
0
1
10
11
100
101
110
111
십진법의 숫자와 비교하면 다음과 같습니다.
십진법 0 → 이진법 0
십진법 1 → 이진법 1
십진법 2 → 이진법 10
십진법 3 → 이진법 11
십진법 4 → 이진법 100
처음에는 이상해 보이지만 원리는 간단합니다.
십진법은 10이 되면 자릿수가 올라가고,
이진법은 2가 되면 자릿수가 올라갑니다.
0과 1 하나를 비트라고 한다
컴퓨터에서 0 또는 1 하나를 비트(Bit)라고 합니다.
예를 들어
1
은 1비트입니다.
1010
은 4비트입니다.
비트가 많아질수록 더 많은 정보를 표현할 수 있습니다.
스위치 하나가 있다고 생각해보겠습니다.
켜짐 또는 꺼짐,
두 가지 상태만 표현할 수 있습니다.
하지만 스위치가 두 개라면?
00
01
10
11
총 네 가지 상태를 표현할 수 있습니다.
스위치가 세 개라면?
000부터 111까지 총 여덟 가지 상태를 표현할 수 있습니다.
즉 비트의 수가 늘어나면 표현할 수 있는 정보가 매우 빠르게 많아집니다.
바이트란 무엇일까?
컴퓨터 용량을 이야기할 때
KB,
MB,
GB,
TB
같은 말을 자주 들어봤을 것입니다.
이 단위의 기본이 되는 것 중 하나가 바이트(Byte)입니다.
보통
8비트 = 1바이트
입니다.
8개의 0과 1을 한 묶음으로 사용하는 것입니다.
예를 들어
01000001
처럼 8개의 숫자를 묶어 하나의 정보를 표현할 수 있습니다.
이런 작은 정보들이 엄청나게 많이 모이면 글자, 사진, 영상 같은 데이터가 됩니다.
0과 1로 글자를 어떻게 표현할까?
먼저 가장 쉬운 글자부터 생각해보겠습니다.
컴퓨터 안에 이런 약속을 만들어둘 수 있습니다.
예를 들어
특정 숫자는 A,
다른 숫자는 B,
또 다른 숫자는 C
라고 정하는 것입니다.
실제로 컴퓨터에서는 문자를 숫자로 표현하기 위한 여러 표준이 사용됩니다.
예를 들어 영어 알파벳 A를 특정 숫자에 연결해 놓으면 컴퓨터는 그 숫자를 보고 화면에 A라는 글자를 보여줄 수 있습니다.
중요한 것은 이것입니다.
컴퓨터 안에서는 글자도 결국 숫자로 저장됩니다.
그리고 그 숫자는 다시 0과 1로 표현됩니다.
즉 우리가 키보드로
HELLO
라고 입력해도 컴퓨터 안에서는
글자
↓
숫자
↓
0과 1
의 형태로 처리되는 것입니다.
사진도 숫자로 바꿀 수 있을까?
물론입니다.
컴퓨터 화면을 아주 가까이에서 확대한다고 생각해보겠습니다.
화면은 수많은 작은 점으로 이루어져 있습니다.
이 작은 점을 픽셀(Pixel)이라고 합니다.
사진도 수많은 픽셀로 이루어져 있습니다.
각 픽셀에는
어떤 색인지,
얼마나 밝은지
같은 정보가 들어 있습니다.
색깔도 숫자로 표현할 수 있다
컴퓨터에서는 색을 숫자로 표현할 수 있습니다.
대표적으로
빨강(Red)
초록(Green)
파랑(Blue)
세 가지 색을 섞어서 많은 색을 만들어냅니다.
이것을 RGB라고 합니다.
예를 들어 어떤 픽셀이
빨강이 매우 많고,
초록이 거의 없고,
파랑도 거의 없다면
빨간색처럼 보입니다.
반대로
빨강,
초록,
파랑을 모두 많이 사용하면
흰색에 가까운 색을 만들 수 있습니다.
결국 사진 한 장은
수많은 픽셀의 색깔 숫자를 모아놓은 데이터
라고 볼 수 있습니다.
그리고 그 숫자 역시 컴퓨터 안에서는 0과 1로 바뀝니다.
사진 한 장을 쉽게 생각해보자
아주 작은 그림이 있다고 해보겠습니다.
가로 3칸,
세로 3칸짜리 그림입니다.
총 9개의 칸이 있습니다.
각 칸을
검은색 = 0
흰색 = 1
이라고 약속할 수도 있습니다.
예를 들어
0 1 0
1 1 1
1 0 1
처럼 정보를 저장할 수 있습니다.
컴퓨터가 이 숫자를 읽어서 각 위치에 검은색과 흰색을 표시하면 그림이 나타납니다.
실제 사진은 이것보다 훨씬 복잡합니다.
수백만 개의 픽셀이 있고 각각 많은 색 정보를 가지고 있습니다.
하지만 기본적인 생각은 같습니다.
사진도 숫자의 모음입니다.
음악도 0과 1로 저장할 수 있을까?
음악은 사진과 전혀 달라 보입니다.
하지만 음악도 숫자로 바꿀 수 있습니다.
소리는 공기의 떨림입니다.
사람이 말을 하거나 악기를 연주하면 공기가 흔들립니다.
마이크는 이 흔들림을 전기 신호로 바꿉니다.
컴퓨터는 그 전기 신호를 아주 짧은 시간 간격으로 측정합니다.
예를 들어,
지금 소리가 얼마나 큰지,
조금 뒤에는 얼마나 큰지,
그다음에는 얼마나 큰지
계속 기록합니다.
이렇게 측정한 값을 숫자로 저장합니다.
숫자로 바뀌었으니 다시 0과 1로 표현할 수 있습니다.
음악 파일은 무엇을 저장하고 있을까?
아주 단순하게 생각하면 음악 파일에는
“이 순간에는 이 정도 크기의 소리”
“다음 순간에는 이 정도 크기의 소리”
라는 정보가 계속 들어 있습니다.
컴퓨터나 스마트폰은 이 숫자들을 빠르게 읽어 스피커로 보내줍니다.
스피커가 다시 공기를 떨리게 만들면 우리는 음악을 들을 수 있습니다.
즉,
사람의 목소리
↓
공기의 진동
↓
전기 신호
↓
숫자
↓
0과 1
로 바뀌어 저장되는 것입니다.
재생할 때는 반대 과정이 일어납니다.
자주 묻는 질문
컴퓨터는 정말 0과 1만 저장하나요?
물리적으로는 전압, 전하, 자성처럼 서로 구분 가능한 상태를 이용합니다. 컴퓨터는 이 상태를 논리적인 0과 1로 해석해 숫자·문자·이미지·명령을 표현합니다.
AI도 결국 0과 1로 계산하나요?
네. AI 모델은 행렬 계산과 확률 연산을 대량으로 수행하지만, 하드웨어에서는 이 연산도 디지털 회로의 비트 처리로 실행됩니다. 일부 가속기는 낮은 정밀도를 활용해 속도와 전력 효율을 높입니다.
자주 묻는 질문
컴퓨터는 정말 0과 1만 저장하나요?
물리적으로는 전압, 전하, 자성처럼 서로 구분 가능한 상태를 이용합니다. 컴퓨터는 이 상태를 논리적인 0과 1로 해석해 숫자·문자·이미지·명령을 표현합니다.
AI도 결국 0과 1로 계산하나요?
네. AI 모델은 행렬 계산과 확률 연산을 대량으로 수행하지만, 하드웨어에서는 이 연산도 디지털 회로의 비트 처리로 실행됩니다. 일부 가속기는 낮은 정밀도를 활용해 속도와 전력 효율을 높입니다.
함께 읽으면 좋은 글
공식 참고자료
- Semiconductor Industry Association, Semiconductors 101
- ASML, Semiconductor manufacturing process steps
함께 읽으면 좋은 글
공식 참고자료
- Semiconductor Industry Association, Semiconductors 101
- ASML, Semiconductor manufacturing process steps
영상은 어떻게 저장할까?
영상은 쉽게 말하면 사진을 아주 빠르게 여러 장 보여주는 것입니다.
만화책 모서리에 그림을 조금씩 다르게 그리고 빠르게 넘기면 그림이 움직이는 것처럼 보이는 것을 본 적이 있을 것입니다.
영상도 비슷합니다.
예를 들어 1초 동안 수십 장의 사진을 연속해서 보여주면 사람의 눈에는 자연스럽게 움직이는 장면처럼 보입니다.
여기에 소리까지 함께 저장하면 우리가 보는 영화나 유튜브 영상이 됩니다.
따라서 영상도 결국
사진 데이터
소리 데이터
재생 순서와 시간 정보
를 합쳐놓은 것입니다.
그리고 모두 숫자로 표현할 수 있습니다.
게임은 어떻게 0과 1로 만들어질까?
게임은 사진이나 영상보다 훨씬 복잡해 보입니다.
왜냐하면 사용자가 직접 움직일 수 있기 때문입니다.
예를 들어 게임에서 오른쪽 방향키를 누르면 캐릭터가 오른쪽으로 움직입니다.
컴퓨터는 내부에서 이런 규칙을 가지고 있습니다.
오른쪽 키가 눌리면 캐릭터의 위치를 오른쪽으로 이동시킨다.
캐릭터의 위치도 숫자로 표현할 수 있습니다.
예를 들어
현재 위치 = 100
이라고 해보겠습니다.
오른쪽으로 한 칸 이동하면
위치 = 101
처럼 숫자를 바꿀 수 있습니다.
컴퓨터는 새로운 위치를 계산하고 그 위치에 캐릭터 그림을 보여줍니다.
게임 속 세상도 대부분 숫자다
게임 속 캐릭터는
위치,
체력,
공격력,
속도,
아이템 수
같은 정보를 가지고 있습니다.
예를 들어
체력 = 100
공격력 = 20
위치 X = 350
위치 Y = 200
처럼 숫자로 표현할 수 있습니다.
적에게 공격을 받아 체력이 20 줄었다면 컴퓨터는
100 – 20 = 80
을 계산합니다.
그리고 화면에 체력이 80이라고 표시합니다.
게임이 복잡해 보여도 안에서는 끊임없이 숫자를 계산하고 있는 것입니다.
3D 게임은 어떻게 만들어질까?
3D 게임에서는 캐릭터와 건물의 위치를 숫자로 표현합니다.
가로 위치,
세로 위치,
높이
같은 값을 이용합니다.
그리고 GPU가 수많은 계산을 해서
물체가 화면에서 어디에 보여야 하는지,
얼마나 크게 보여야 하는지,
빛을 받으면 어떤 색으로 보여야 하는지
계산합니다.
이런 계산을 매우 빠르게 반복하면 우리가 보는 화려한 3D 게임 화면이 만들어집니다.
그래서 게임을 잘 실행하려면 GPU의 성능이 중요합니다.
프로그램은 무엇일까?
여기서 또 하나 중요한 개념이 등장합니다.
프로그램(Program)입니다.
프로그램을 아주 쉽게 설명하면
컴퓨터에게 해야 할 일을 순서대로 알려주는 명령서
입니다.
요리 레시피를 생각하면 쉽습니다.
라면을 끓인다면
- 냄비에 물을 넣는다.
- 물을 끓인다.
- 면을 넣는다.
- 스프를 넣는다.
- 일정 시간 끓인다.
라는 순서가 있습니다.
컴퓨터 프로그램도 비슷합니다.
이 버튼을 누르면 이 화면을 보여줘.
이 숫자와 이 숫자를 더해줘.
적과 부딪히면 체력을 줄여줘.
같은 명령을 컴퓨터가 이해할 수 있도록 만들어 놓은 것입니다.
컴퓨터는 사람의 말을 바로 이해할까?
컴퓨터는 우리가 사용하는 한국어나 영어를 그대로 이해하지 못합니다.
그래서 개발자는 프로그래밍 언어를 이용해 명령을 작성합니다.
예를 들어
Python,
JavaScript,
C,
C++
같은 프로그래밍 언어가 있습니다.
사람이 프로그래밍 언어로 명령을 작성하면 여러 과정을 거쳐 컴퓨터가 실행할 수 있는 형태로 바뀝니다.
아주 아래 단계로 내려가면 결국 컴퓨터가 처리하는 정보는 0과 1의 형태와 연결됩니다.
계산은 어떻게 가능할까?
앞에서 배운 트랜지스터를 다시 떠올려보겠습니다.
트랜지스터 여러 개를 연결하면 논리 게이트를 만들 수 있습니다.
논리 게이트를 여러 개 연결하면 숫자를 더하는 회로를 만들 수 있습니다.
더 복잡하게 연결하면
뺄셈,
곱셈,
비교,
저장
같은 기능도 만들 수 있습니다.
그리고 이런 회로를 매우 많이 모으면 CPU나 GPU가 됩니다.
따라서 컴퓨터가
2 + 3 = 5
를 계산하는 것 역시 실제로는 반도체 안의 수많은 트랜지스터가 전기 신호를 처리한 결과입니다.
그렇다면 AI도 0과 1로 움직일까?
네.
아무리 똑똑해 보이는 인공지능도 결국 컴퓨터에서 실행됩니다.
그래서 가장 아래 단계에서는 반도체가 수많은 계산을 수행합니다.
ChatGPT 같은 AI를 생각해보겠습니다.
사람이 질문을 입력합니다.
“고양이와 강아지의 차이를 알려줘.”
컴퓨터는 입력된 글자를 숫자로 바꿉니다.
AI 모델은 그 숫자를 이용해 엄청난 양의 계산을 합니다.
그리고 어떤 단어나 문장이 다음에 나올 가능성이 높은지 계산하면서 답변을 만들어냅니다.
그 계산을 GPU 같은 반도체가 매우 빠르게 처리합니다.
AI는 왜 계산을 그렇게 많이 할까?
일반적인 계산기에게
2 + 3
을 물어보면 몇 번의 간단한 계산만 하면 됩니다.
하지만 AI는 다릅니다.
AI 안에는 아주 많은 숫자가 들어 있습니다.
이 숫자들은 AI가 학습한 특징과 관계를 나타냅니다.
사용자가 질문을 하면 AI는 이 많은 숫자들을 이용해 수많은 곱셈과 덧셈을 수행합니다.
그리고 그 계산량이 엄청나게 큽니다.
그래서 AI가 발전할수록 더 강력한 반도체가 필요합니다.
그래서 GPU가 AI 시대에 중요해졌다
CPU도 계산을 잘합니다.
하지만 현대 AI는 비슷한 계산을 엄청나게 많이 동시에 해야 합니다.
GPU는 이런 종류의 병렬 계산에 강합니다.
쉽게 비유해보겠습니다.
CPU는
아주 어려운 문제를 잘 푸는 몇 명의 똑똑한 전문가
와 비슷합니다.
GPU는
비슷한 계산을 동시에 처리하는 수많은 계산 담당자
와 비슷합니다.
AI에서는 수많은 계산을 동시에 해야 하기 때문에 GPU가 매우 중요한 역할을 하게 되었습니다.
이 내용은 뒤에서 CPU와 GPU를 비교하면서 더 자세히 알아보겠습니다.
0과 1이 모이면 세상이 된다
지금까지 배운 내용을 연결해보겠습니다.
트랜지스터가 전기를 켜고 끕니다.
↓
0과 1을 표현합니다.
↓
0과 1을 모아 숫자를 만듭니다.
↓
숫자를 이용해 글자와 색깔과 소리를 표현합니다.
↓
그 데이터를 계산하고 움직이는 프로그램을 만듭니다.
↓
프로그램을 이용해 게임과 앱을 만듭니다.
↓
더 많은 계산을 이용해 인공지능을 실행합니다.
결국 우리가 화면에서 보는 복잡한 디지털 세상도 가장 아래까지 내려가 보면 수많은 전기 신호의 움직임으로 이어집니다.
마치 점으로 그림을 그리는 것과 같다
멀리서 보면 아주 멋진 그림이 하나 있다고 생각해보겠습니다.
가까이 다가가 보면 그 그림이 수많은 작은 점으로 이루어져 있을 수 있습니다.
컴퓨터도 비슷합니다.
우리가 보는 것은
사진,
영화,
게임,
AI입니다.
하지만 아주 깊은 곳까지 내려가면
숫자,
0과 1,
전기 신호,
트랜지스터
가 있습니다.
복잡한 디지털 세상이 아주 단순한 요소를 엄청나게 많이 조합해서 만들어지는 것입니다.
오늘 내용 한눈에 정리하기
오늘은 다섯 가지만 기억하면 됩니다.
첫째, 컴퓨터는 기본적으로 0과 1을 이용해 정보를 처리합니다.
둘째, 0 또는 1 하나를 비트라고 합니다.
셋째, 글자·사진·음악·영상도 모두 숫자로 바꿔 저장할 수 있습니다.
넷째, 프로그램은 컴퓨터에게 해야 할 일을 알려주는 명령입니다.
다섯째, AI 역시 결국 반도체가 엄청난 양의 숫자 계산을 수행하면서 작동합니다.
이제 반도체의 종류를 알아볼 차례
여기까지 읽었다면 아주 중요한 기초를 배운 것입니다.
반도체 안에서는 트랜지스터가 전기 신호를 조절합니다.
컴퓨터는 그 신호를 이용해 0과 1을 처리합니다.
그리고 수많은 0과 1을 계산하면서 사진과 게임, AI 같은 복잡한 기능을 만들어냅니다.
그런데 모든 반도체가 똑같은 일을 하는 것은 아닙니다.
어떤 반도체는 복잡한 명령을 처리하는 데 뛰어나고,
어떤 반도체는 수많은 계산을 동시에 하는 데 뛰어나며,
어떤 반도체는 정보를 기억하는 역할을 합니다.
대표적으로 우리가 자주 듣는
CPU, GPU, 메모리 반도체
가 있습니다.
그렇다면 가장 먼저,
컴퓨터의 ‘두뇌’라고 불리는 CPU는 정확히 어떤 일을 할까요?
다음 글에서는
「CPU란 무엇일까?|컴퓨터의 두뇌를 가장 쉽게 설명하면」
을 통해 CPU가 컴퓨터 안에서 어떤 일을 하고 왜 중요한지 알아보겠습니다.
댓글 0
첫 댓글을 남겨보세요.