컴퓨터는 무엇인가
스마트폰, 노트북, 자동차, 세탁기, 교통카드 단말기까지 우리 주변에는 컴퓨터가 수십 대 있다. 겉모습은 제각각이지만 속을 열어 보면 모두 같은 원리로 움직인다. 이 장에서는 그 공통 원리를 큰 그림으로 잡고, 이 책 전체에서 쓸 “주방” 비유를 익힌다.
- 컴퓨터를 “프로그램에 따라 데이터를 처리하는 기계”로 정의하고, 계산기와 무엇이 다른지 설명한다.
- 입력 → 처리 → 저장 → 출력의 흐름으로 어떤 기기든 분해해 본다.
- CPU, 메모리(RAM), 저장장치, GPU, 메인보드, 네트워크 장치의 역할을 구분한다.
- 사진 한 장을 열 때 데이터가 어떤 부품을 거쳐 움직이는지 따라간다.
- 컴퓨터의 시간 단위(나노초)를 사람의 시간으로 바꿔 보며 “속도 차이”의 감각을 익힌다.
계산기와 컴퓨터는 무엇이 다를까
계산기는 숫자를 더하고 곱한다. 컴퓨터도 결국 숫자를 더하고 곱한다. 그런데 왜 계산기로는 영상 통화를 할 수 없을까? 차이는 계산 능력이 아니라 무엇을 할지 바꿀 수 있느냐에 있다.
계산기는 버튼마다 할 일이 정해져 있다. 반면 컴퓨터는 프로그램(program)이라는 명령의 목록을 받아 그대로 수행한다. 목록을 바꾸면 같은 기계가 계산기가 되기도, 게임기가 되기도, 전화기가 되기도 한다. 그래서 컴퓨터를 이렇게 정의할 수 있다.
프로그램(명령의 목록)에 따라 데이터(숫자)를 처리하는 기계. 글자, 사진, 음악, 영상도 컴퓨터 안에서는 모두 숫자로 바뀌어 처리된다(2장).
아무리 복잡한 기기라도 데이터가 움직이는 방향은 네 가지 동작으로 정리된다.
예를 들어 스마트폰으로 사진을 찍으면 카메라 센서가 빛을 숫자로 바꾸고(입력), 프로세서가 색을 보정하고 압축하고(처리), 저장공간에 파일로 기록하고(저장), 화면에 미리보기를 띄운다(출력). 세탁기도 마찬가지다. 버튼과 수위 센서(입력), 작은 컴퓨터 칩(처리), 모터와 표시창(출력)이 있다.
컴퓨터는 하나의 주방이다
컴퓨터 부품의 역할은 처음 들으면 헷갈린다. 이 책에서는 줄곧 식당 주방에 빗대어 설명한다. 손님의 주문(입력)을 받아, 요리사가 레시피(프로그램)대로 재료(데이터)를 손질해(처리), 완성된 요리를 내보내는(출력) 곳이다.
| 컴퓨터 | 주방에서는 | 왜 그렇게 볼 수 있나 |
|---|---|---|
| CPU | 요리사 | 레시피를 한 줄씩 읽고 실제로 칼질·볶기를 한다. 아주 빠르고 똑똑하지만 손은 몇 개뿐이다. |
| 레지스터 | 요리사의 손 | 지금 당장 다루는 재료 몇 개만 쥘 수 있다. 가장 빠르지만 아주 작다. |
| 캐시 | 손 닿는 선반 | 자주 쓰는 양념을 옆에 둔다. 팔만 뻗으면 된다. |
| 메모리(RAM) | 조리대 | 지금 만드는 요리의 재료를 펼쳐 둔다. 넓을수록 여러 요리를 동시에 할 수 있다. 영업이 끝나면(전원이 꺼지면) 치운다. |
| 저장장치(SSD) | 창고·냉장고 | 아주 많이 보관하고 문을 닫아도 남아 있지만, 꺼내 오려면 걸어가야 한다. |
| GPU | 수천 명의 보조 요리사 | 한 명 한 명은 단순한 일만 하지만, 감자 만 개 깎기 같은 일은 한꺼번에 끝낸다. |
| 운영체제(OS) | 주방장·매니저 | 누가 언제 화구를 쓸지, 조리대 어디를 쓸지 정하고 주방 규칙을 지키게 한다. |
| 프로그램 | 레시피 | 무엇을 어떤 순서로 할지 적어 둔 문서. 레시피를 바꾸면 다른 요리가 나온다. |
| 네트워크 | 배달·주문 전화 | 다른 식당(컴퓨터)과 재료와 요리를 주고받는다. |
비유는 처음 감을 잡는 데 유용하지만 완벽하지 않다. 각 장에서는 비유로 시작해 실제 동작을 시뮬레이터로 확인한다. 둘이 어긋나는 지점이 나오면 그때마다 짚고 넘어간다.
컴퓨터 속 들여다보기
데스크톱 컴퓨터의 옆판을 열면 아래와 같은 부품이 보인다. 노트북과 스마트폰은 같은 부품을 훨씬 작게, 일부는 한 칩 안에 합쳐 넣었을 뿐이다. 각 부품을 눌러 무슨 일을 하는지 살펴보자.
메인보드 탐험: 부품을 눌러 보세요
부품을 눌러 보세요
각 부품의 역할, 주방 비유, 요즘 제품의 대략적인 사양이 여기에 나타납니다.
사진 한 장을 열 때 일어나는 일
부품은 혼자 일하지 않는다. 사진 파일을 더블클릭하는 아주 평범한 동작에도 거의 모든 부품이 차례로 등장한다. 아래 시뮬레이터에서 다음 단계를 눌러 데이터(빛나는 점)가 어디서 어디로 가는지 따라가 보자.
데이터의 여행
시나리오마다 다른 부품이 주인공이 되지만, 공통점이 하나 있다. CPU는 저장장치(SSD)에서 직접 일하지 않는다. 반드시 데이터를 먼저 메모리(RAM)로 가져온 뒤에 처리한다. 창고에 들어가서 요리하는 요리사는 없다. 재료를 조리대로 가져와야 한다. 이 원칙은 6장에서 “메모리 계층”이라는 이름으로 다시 만난다.
나노초의 세계를 사람의 시간으로
컴퓨터를 이해할 때 가장 놓치기 쉬운 것이 속도의 차이다. 요즘 CPU는 1초에 약 30~50억 번 박자를 맞춰 일한다. 한 박자가 0.3 나노초(ns, 10억분의 1초)다. 이 시간 동안 빛도 겨우 10 cm 남짓 간다.
이런 숫자는 너무 작아서 감이 오지 않는다. 그래서 CPU의 한 박자를 1초로 늘려서 다른 작업들이 얼마나 걸리는지 바꿔 보자. 슬라이더로 “한 박자”를 얼마로 늘릴지 정할 수 있다.
컴퓨터 시간 → 사람 시간 변환기
CPU 입장에서 메모리(RAM)에서 데이터를 가져오는 일은 “몇 분 기다리기”이고, SSD는 “며칠”, 하드디스크는 “몇 달”, 지구 반대편 서버와 대화하는 일은 “십수 년”이다. 그래서 컴퓨터 설계의 상당 부분은 느린 곳을 덜 가게 만드는 기술이다. 캐시(6장), 가상 메모리(9장), 파이프라인(5장)이 모두 그 해법이다.
프로그램도 데이터처럼 메모리에
1940년대의 초기 전자 컴퓨터 ENIAC은 계산 내용을 바꾸려면 사람들이 며칠에 걸쳐 케이블을 다시 꽂아야 했다. 하드웨어 배선 자체가 프로그램이었던 셈이다.
이를 바꾼 아이디어가 프로그램 내장 방식(stored-program)이다. 명령어도 숫자로 바꿔 데이터와 똑같이 메모리에 넣어 두고, CPU가 메모리에서 명령어를 하나씩 꺼내 실행한다. 프로그램을 바꾸려면 메모리 내용만 바꾸면 된다. 이 구조를 처음 체계적으로 정리한 수학자의 이름을 따 폰 노이만 구조(von Neumann architecture)라 부르고, 오늘날 거의 모든 컴퓨터가 이 구조를 따른다.
명령어와 데이터가 같은 통로를 쓰다 보니, CPU가 아무리 빨라져도 메모리에서 가져오는 속도가 따라오지 못하면 CPU는 기다려야 한다. 이를 폰 노이만 병목이라 부른다. 앞에서 본 “RAM까지 몇 분”이 바로 그 병목이다.
이 책의 지도
이 책은 아래에서 위로 쌓아 올리는 순서로 구성되어 있다. 앞 장에서 만든 부품이 다음 장의 재료가 된다. 순서대로 읽기를 권하지만, 궁금한 장으로 바로 가도 이해할 수 있도록 각 장 첫머리에 필요한 개념을 다시 짚었다.
핵심 정리
- 컴퓨터는 프로그램(명령의 목록)에 따라 데이터를 처리하는 기계다. 프로그램을 바꾸면 같은 기계가 다른 일을 한다.
- 모든 컴퓨터는 입력 → 처리 → 출력으로 동작하고, 처리하는 동안 저장 장치와 데이터를 주고받는다.
- CPU는 요리사, 메모리는 조리대, 저장장치는 창고, GPU는 수많은 보조 요리사, 운영체제는 주방장이다.
- CPU는 저장장치의 데이터를 직접 처리하지 않고 반드시 메모리로 가져와서 처리한다.
- 부품마다 속도가 수십~수천 배씩 차이 난다. 컴퓨터 설계의 큰 부분은 느린 곳을 덜 가게 만드는 기술이다.
- 명령어도 데이터처럼 메모리에 저장하는 폰 노이만 구조가 현대 컴퓨터의 뼈대다.
확인 퀴즈
계산기와 컴퓨터의 가장 본질적인 차이는?
주방 비유에서 “조리대”에 해당하는 부품은? 전원이 꺼지면 내용이 사라진다는 점도 닮았다.
사진 파일을 열 때 CPU가 처리하기 전에 반드시 일어나는 일은?
CPU 한 박자(약 0.3 ns)를 1초로 늘리면, RAM에서 데이터를 가져오는 시간(약 100 ns)은 대략 얼마가 될까?
“폰 노이만 구조”의 핵심 아이디어는?