[ 미완성 글 ]
컴퓨터라는것은 무엇인가? 모니터, 본체, 키보드 마우스 구성을 가지고 윈도우를 돌리는 기계가 떠오를 것이다. 일상생활에서 '컴퓨터'라고 말하면 보통 이런것이다. 이런 컴퓨터는 최초에 IBM이 만든 규격으로 시작되었다고 해서 IBM PC, 혹은 프로세서가 x86 계열이라고 해서 x86 컴퓨터, 혹은 그냥 짧게 PC라고도 부르는 컴퓨터이다. 여기서 다룰 '컴퓨터'라는 기계의 범주에는 스마트폰, 슈퍼컴퓨터, 게임서버, 공유기 등등이 있다. 그 외에도 가전제품 내부에 탑재되어 제품을 제어하는 저전력, 저성능의 컴퓨터도 있는데, 이를 '마이크로 컨트롤러'라고 부른다. 지금 이 순간에도 수억개의 마이크로 컨트롤러들이 안보이는 곳에서 묵묵히 자기일을 하고 있다. 우리는 말 그대로 컴퓨터로 뒤덮혀있는 삶을 사는 것이다. 이들은 매우 다른 모습을 띄고 있지만 내부 구조는 유사하며, 같은 원리로 동작한다.
컴퓨터의 어원을 풀어봤을 때, Compute(계산하다)와 접미사 er(~하는 것)이 붙어서 만들어진 단어이다. 이름에서 컴퓨터가 무슨 물건인지 딱 드러난다. 컴퓨터의 정의는 '계산하는 기계'이다. '계산'이란, 단순히 사칙 연산 뿐 만 아니라, 포괄적인 문제를 해결하는 것을 의미한다. 이 '문제'라는 것은 쉽게는 사칙연산의 해답을 구하는 것에서 부터, 복잡한 인공지능 등이 될 수 있다. 컴퓨터가 다른 의미로는, '입력 데이터를 어떤 절차에 따라 처리하여 출력하는 장치'이다. 여기서 입력 데이터가 문제이며, 출력이 그 문제의 답, 그리고 '어떤 절차에 따라 처리'하는 과정이 바로 계산이다.
웹서핑도 계산이다. 웹페이지의 주소(URL)를 입력 데이터, 그리고 웹페이지를 출력 데이터라고 볼 수 있다. 그리고 이 웹페이지를 불러오는 과정에서 서버와 데이터를 주고받기, 웹페이지를 해석하기, 암호화/복호화 하기 등 수많은 크고 작은 문제들을 해결하면서 그 결과로 웹페이지를 출력시키는 것이다. 게임도 계산이다. 키보드와 마우스로부터 입력 데이터를 받고, 모니터를 통해 3D 세계를 2D 모니터 화면에 어떻게 그릴지 실시간으로 계속 계산해서 출력하기 때문이다. 이처럼 컴퓨터가 하는 모든 일들이 입력 -> 처리 -> 출력이라는 사이클을 가지고 있는 것을 볼 수 있다.
계산기(Calculator)와의 차이는?
Calculation과 Computing의 차이는 보통 Calculation은 대수적인 문제를 해결 할 때, Computing은 그냥 포괄적인 문제를 해결하는 과정을 말한다고 함. 그러나 단어의 의미에 집중하기 보다는, 계산기와 컴퓨터의 기능적인 차이점을 살펴보자.계산기는 어떤 특정한 미리 주어진 문제의 결과를 구하기 위해서 보통 사용하고(특히 이중에서 대수적인 문제들. 그러나 꼭 대수적인 문제일 필요는 없다.), 컴퓨터는 이와 다르게 어떤 특정한 주어진 문제가 아닌, 포괄적인 문제를 해결할 수 있음. 근데 사실 계산기 내부에도 컴퓨터가 장착되어있는 경우가 많다. 특히 최신식 공학용 계산기의 경우에는 말이다. 말하자면 계산기의 기능을 구현하기 위해 컴퓨터를 탑재시키고, 거기에 계산기 소프트웨어를 올려 구동시킨다고 보면 된다.
알고리즘과 프로그램
계산 과정의서 문제를 해결하는 '절차'를 따로 떼와서 '알고리즘'이라고 부른다. 같은 문제라도 해결하는 방법이 매우 다를 수 있다. 프로그램은 알고리즘을 실제로 컴퓨터가 작동시킬 수 있도록 만든 것이다. 같은 알고리즘이라도, 실제로 컴퓨터 언어에 따라 프로그램 코드는 크게 달라진다. 똑같은 지시를 내려도 한국인에게는 한국어로, 미국인에게는 영어로 설명해야 하는것과 같다. 계산기 vs 컴퓨터 에서 볼 수 있는 가장 큰 차이점이 바로 프로그래밍이 가능하냐 / 불가능하냐 이다.
컴퓨터의 역사를 살펴보기 전에, '계산'의 역사를 먼저 알아봐야 한다.
'컴퓨터 역사' 카테고리의 다른 글
우주와 컴퓨터 (0) | 2021.12.05 |
---|---|
계산과 기계의 역사 (0) | 2021.12.05 |