"컴퓨터 과학은 왜 '과학'이라 불리는가"
과학은 자연 현상에 대한 원인과 결과를 연구하고, 공학은 과학에서 얻은 지식을 기반으로 발전한다. 과학은 발견이고, 공학은 응용인 셈이다. 이렇게 생각하면 컴퓨터 과학에 대해 한 가지 의문이 든다. 컴퓨터 역시 공학의 산물인데 어째서 컴퓨터 과학이라는 분야가 따로 있는 걸까? 기계 공학, 건축 공학이란 말은 있어도 기계 과학, 건축 과학이라는 말은 없다. 다른 분야와 달리 왜 컴퓨터는 공학 외에도 과학이 있는 이유가 궁금했다.
"세계 속의 세계, 컴퓨터"
우리는 학창시절 국어 시간에 이야기의 액자식 구성에 대해서 배웠다. 이야기 속에서 또 다른 이야기가 펼쳐지는 것이다. 나는 이 액자식 구성을 이야기가 아닌 우리가 사는 세계에 빗대 보려 한다.
가상현실에 대해 다룬 '13층'이라는 영화가 있다. '내가 살고 있던 이 세계가 알고 보니 시뮬레이션이었다니!'라는 설정이다. 이 가상현실에서 깨어나면 주인공은 원래의 세계로 돌아간다. 재밌는 것은 가상현실 속에서도 기술이 발전해 그곳에서도 또 다른 가상현실을 체험할 수 있다는 것이다. 영화에나 나올 법한 이야기지만 *일론 머스크가 어느 인터뷰에서 대답한 것처럼 우리가 사는 세상이 시뮬레이션이 아니라는 보장도 없다. (심지어 10억 분의 1의 확률로)
*code conference, "It's 1 in billion chance that this is base reality", youtu.be/xBKRuI2zHp0
그럼 이 가상현실은 어디에서 펼쳐지는가? 바로 컴퓨터를 통해서 이루어진다. 컴퓨터는 또 다른 세계이다. 우리가 사는 세계 안에는 컴퓨터라는 또 다른 세계가 존재한다. 물론 컴퓨터라는 하드웨어 자체는 우리의 세계에 속한다. 하지만 컴퓨터를 켜는 순간, 우리는 0 또는 1(false 또는 true, 꺼짐 또는 켜짐)의 신호로 동작하는 컴퓨터 세계의 제약을 받는다.
"컴퓨터 과학을 공부한다는 것"
공학의 베이스는 과학이다. 그리고 과학이 연구하는 것은 우리가 속한 세계인 자연이다. 마찬가지로 컴퓨터 공학의 베이스는 컴퓨터 과학이다. 컴퓨터 공학자가 컴퓨터를 통해 기술을 개발하려면 또 다른 세계인 컴퓨터에 대해서 알아야 한다. 우리가 자연에 대해서 과학자처럼은 잘 알지 못해도 잘 살 수 있는 것처럼, 컴퓨터가 어떻게 동작하는지 잘 몰라도 컴퓨터를 사용할 수 있다. 하지만 그것은 소비자로서 해당하는 말이다. 추상화, 데이터베이스, 알고리즘, 언어 등 컴퓨터 과학을 이해하지 못하고서 기술을 개발하는 것에는 한계가 있다. 컴퓨터 세계 안에서 공학자로서, 생산자로서, 창조자로서 무언가를 만들고, 발전시키고 싶다면 컴퓨터에 대해 알아야 한다.
'개발 이야기 > computer science' 카테고리의 다른 글
CPU 클럭 싸이클(clock cycle) 높이기 (0) | 2021.02.01 |
---|---|
multi bit buses / 로직 게이트에 여러 비트 정보 전달하기 (0) | 2021.01.31 |
로직 게이트 / Xor, Nand, Nor, Mux, DMux (0) | 2021.01.31 |
로직 게이트(Logic gate) / AND, OR, NOT (0) | 2021.01.31 |
[Bool Algebra] 논리 연산 (0) | 2021.01.30 |