brunch

기본 요소는 무엇인가요?

학습에서 가장 중요한 질문

by Nova B

"그렇다면 컴퓨터의 내부는 어떻게 생겼을까? 기본적으로 단순하고 기본적인 요소들로 구성되어 있다. 중요한 점은 다양한 기본 요소를 조합해 우너하는 것은 무엇이든 만들 수 있다는 것이다."


<파인만의 컴퓨터 강의>라는 책을 보면 컴퓨터의 가장 기본적인 요소란 무엇인가에 대한 질문으로부터 시작한다. 참으로 과학자스러운 접근이라고 생각했다. 과학자들이 원자와 전자라는 단위를 발견한 이래 수많은 가능성이 생겼다. 각각의 원자 구조와 특성을 이해하자 원하는 결합을 만들어낼 수 있었다. 탄소 원자와 수소 원자를 어떻게 배열하느냐에 따라 폭발하는 물질을 만들 수도 있고, 생명을 구하는 약을 만들 수도 있게 된 것이다.


컴퓨터는 전기 신호로 작동하는 스위치(트랜지스터)를 통해 0과 1이라는 비트(bit)라는 상태를 만든다.


이러한 수많은 비트를 조합하여 인간이 사용하는 언어나 감각적 정보를 나타내는 규약을 만들었다. 이를테면 숫자 5는 101, 빨간색은 11111111 00000000 00000000 과 같은 방식으로 말이다.


또한 비트를 조합하여 논리적인 '사고'를 가능케 했다. 예컨대 트랜지스터 2개의 결과값이 모두 1인 경우에만 1을 출력하는 통과문(Gate)을 만든다.


입력A 입력B → 출력

0 0 → 0

0 1 → 0

1 0 → 0

1 1 → 1 (둘 다 1일 때만 1)


입력 A를 '비가 지금 내리고 있는가', 입력 B를 '우산을 가지고 있는가'라고 생각한다면 '비가 내리고 우산을 가지고 있는' 경우에만 밖으로 나갈 수 있다라는 논리적인 판단을 가능하게 만들 수 있다.


이런 논리적 게이트를 여러 개 조합하면 덧셈기(두 숫자를 더하기), 비교기(두 값의 크기를 비교), 메모리 회로(정보를 기억)를 만들 수 있다.


비트 단위로 인간이 이해할 수 있는 정보를 더하고, 비교하고, 특정 위치에 저장하는 것만으로 우리가 인터넷 상에서 누리고 있는 모든 일을 수행하고 있는 것이다.


이런 관점에서 최근에 공부하는 자료구조에 대해 기본적인 요소는 무엇인가를 AI에게 물어봤다.


00.png
54.png


집에 있는 자료구조론의 목차를 보니 1장은 포인터, 2장은 배열부터 시작하는 걸 보면 상당히 설득력 있는 대답이었다.

50.png

학습의 단계에서 가장 기본적인 요소를 찾는 방법은 매우 중요하다. 기본 요소를 알면 그것들을 자유롭게 조합해서 완전히 새로운 것을 만들어낼 수 있기 때문이다.


비트 -> AI

포인터, 배열 -> 최단 노선 길찾기, 지하철 노선도



keyword
작가의 이전글감정의 두 가지 운영체제 - MINE vs OURS