아크로폴리스

글보기
제목컴퓨터는 사람의 사고 방식을 반영한 기계가 되야 한다.2017-08-14 16:42:37
작성자

mb-file.php?path=2017%2F08%2F14%2FF20_16_t.jpg

https://ijemin.com/blog/7011 < 좀더 읽기 편하게 정렬된 페이지 




경희대 컴공을 비판하는 내용이 있긴한데, 합리적인 내용이고, 컴공과 소융 두 학과 발전 모두에 도움이되는 사안이라 생각해서 딱히 익명으로 올릴 생각은 없어.

 

컴퓨터는 사람이 생각하는 방식을 반영한 기계가 되야 한다

– 경희대 컴퓨터 공학과에 실망한 이유

난 경희대학교 예술대에서 컴퓨터 공학과로 전과한 후, 다시 컴공에 실망해서 독학으로 프로그래밍을 배워서 일찍 현업 게임 개발자가 된 사람이다.

내가 컴퓨터 공학과에서 가장 실망한건, 컴퓨터는 사람의 사고 방식대로 동작해야 한다는 사실을 이해할 수 있는 사람이 가까운 선후배들과 동기들 사이에서 거의 없었기 때문이다.

세상은 멍청이와 영웅 두 종류 밖에 없다는 사실을 그 때 깨닫았고, 최소한 내가 다니던 컴공에서 대부분 멍청이들 밖에 없었다.
지금은 모든 것을, 온전하고 스스로 독립적으로 존재 가능한 것으로 보는 OOP 가 가장 주요한 사상이된 시대지만 과거에는 그렇지 않았다.

OOP 의 의의가 뭘까? 하나의 타입에서 찍어낸 모든 것들이 서로 구분되고 독립적인 존재가 된다는 것은, 컴퓨터가 우리 세상을 반영해서 문제를 해결할 수 있다는 것이다.

모두 같은 ‘인간’ 이라는 ‘종’ 에서 파생됬지만, 너와 나는 서로 독립적으로 존재하고 구분가능한 존재다.

당신의 손에 사과가 두개 있으면, 그 손에 있는 두개의 사과는 같은 종류의 물체 지만 분명히 서로 구분 가능하다.

하나의 사과라는 종에서 파생된 두개의 사과 오브젝트는 공통되는 요소가 매우 많다.
하지만 동시에 당장 사과의 크기 부터 색깔, 무게 등으로 서로 구분가능하고, 하나의 완결된 사물로서 스스로 존재할 수 있다는 거지.

우리는 머릿속에 사과에 개략적인 이미지를 그리는, 하나의 추상에 빗대 여러개의 사과를 식별한다. 하지만 동시에 사과 하나하나를 독립적인 존재로 구별할 수 있다.
그게 사람이 세상을 보는 방식이다. 모든것들을 평평한 바닥에 쏟아 파편화시키고 분해해서 다루는 기계와 전혀 다른것이다.

그리고 이젠 그걸 넘어서 아예 함수 그 자체도 하나의 온전하고 독립적으로 존재가능한 오브젝트로 보는 함수형 프로그래밍이 주류가 되고 있다.

그런데 내가 경희대 컴공을 다니면서 느낀건, 하나같이 2~30년전 하드웨어를 설계하던 늙은이들의 생각에 갖혀서 전혀 못나오고 있다는 것.
그러니 경희대 컴공에선 순수 소프트웨어를 말하면 무시당하고 천대받기 일쑤 였다. 멍청이들의 단결인 것이지.

 

– 20세기 가장 위대한 두 순간: 연합군의 승리, 그리고 매킨토시의 탄생.

 

애플이 컴퓨터의 미래, 아니 21세기 그 자체를 발명했다고 불리는 이유는, 컴퓨터가 사람의 사고 방식을 반영하도록 만들었기 때문이다.

대표적인 예가 그래픽 유저 인터페이스. 그래픽 유저 인터페이스의 희미한 빛을 탄생시킨것은 제록스, 그것을 완성 시킨것은 스티브 잡스다.
난 컴퓨터 공학과 동기들이 GUI 와 PC 시장이 탄생된 이야기에 전혀 관심을 가지지 않는 다는 사실에 놀랐다.

만약 내가 옷위에 검파란 점 무늬를 가리키고 싶으면 그냥 그걸 손으로 짚을 뿐이다.
이게 위쪽으로 13센치, 오른쪽으로 4센치 위치에, 반지름 3센치미터라고 명시하고 검파란 색깔의 RGB 코드가 뭐였는지 기억하기 위해 애를 쓰지 않는다는 것이지.

현실세상에서 사람이 탁자위에 물건을 옮길때 어떻게 옮길까?

탁자위에 있는 물건의 타입과 식별자를 명시하고, 탁자위의 다른 좌표를 종이위에 적으면 물건이 그곳으로 순간이동 하는 방식인가?
아니면, 탁자위에 있는 물건을 한번 손가락으로 톡 두드리고, 다른 위치를 두드리면 거기로 물체가 순간이동하니?

절대, 아니지.

현실 세상에서, 사람은 탁자 위에 있는 물건을 손가락으로 지긋이 눌러서, 원하는 위치까지 끌고간다.

바로 드래그 앤 드롭을 말한 것이다. 이 당연해보이는 개념 조차 애플이 발명하기 전까지는 누구도 당연하다고 생각하지 않았다.
그리고 여기서 필요한게 바로 인간의 직관이다.

인간이 세상을 보는 방식에선, 사물이라는 것의 “내부가 어떻게 되어있든” 그냥 직관적으로 집어서 옮겨 버릴 뿐이다.

이게 소프트웨어를 만드는 사람에겐 이성적이고 분석적인 사고 방식 만큼이나 예술을 통한 직관적 사고가 중요한 이유다.

스티브 잡스의 대척점에 있던 사람들은 “옮길 데이터를 나열해서 명시한 다음 좌표를 숫자로 작성해서 순간이동 시키면 되잖아?” 라고 말했다.
그건 인간의 직관이 전혀 반영되지 않은, 기계가 생각하는 방식이다.

기계가 사람의 사고방식을 반영하면, 사람은, 현실세상에서 일하던 모습을 추가적인 학습없이 직관적으로 바로 컴퓨터로 옮겨 일할 수 있다.
하지만 그 당시에는 기계가 사람의 생각에 맞추는게 아니라, 사람이 자기 사고방식을 기계에 맞춰 수정해야 하는게 당연한 것이었지.

만약 요즘 시대에 아이콘을 옮길때 마다 바탕화면에 좌표를 일일이 명시해야 하는 컴퓨터가 나왔다면.. 아마 다들 모니터를 부숴버려서 지구상에 PC가 사라졌을 것이다.

스티브 잡스가 발명한 컴퓨터의 미래. 내가 말하는 “컴퓨터는 사람의 사고 방식을 반영해야 한다” 의 일부는 이런걸 말하는 것이다.

30~40년전엔 최고의 컴퓨터 엔지니어들 조차 “컴퓨터는 사람의 사고 방식대로 동작하도록 만들어진 기계가 아니야” 라고 말하면서 지금은 너무나 당연해진 전제를 거부하고 있었다.

만약 잡스의 비전이 없었으면 하드웨어의 발전과는 별개로 PC의 태동기가 최소한 20~30년은 늦추어졌을 것이다.

또한 우리는 컴퓨터로 작업하는 것의 모든 것들이 “보이는 대로 동작하지 않는” 시대에 살고 있었을 것이다.
이 말은, 현대 컴퓨터에서는 화면에 볼록 튀어나온 듯한 UI 버튼을 그냥 누르면 그대로 눌러져야 한다는 의미다.

너무 당연한 사실 같지만, 컴퓨터가 사람의 사고방식을 반영하는게 당연한게 아니었던, 매킨토시 시대 이전에는 이건 당연한게 아니었다.

지금 여러분들이 보기에는 애플 컴퓨터들이 나오기 전의 디지털 시대는 야만인들의 시대 처럼 보이겠지.
맞다. 그리고 그 야만인들의 시대에서나 주류였던 생각이 컴퓨터 공학과에 팽배했었고, 난 그걸 좋아하지 않았다.

사실 컴퓨터에 사람의 사고방식을 적용하라는 것은, 하드웨어만 줄창 만드는 곳에서는 그 중요성이 조금은 감소할 순 있다.
특히 우리 학교가 긴밀히 관계를 맺고 있는 삼성전자가 그러한 사고 방식으로 소프트웨어를 말아먹는 대표적인 예다.

우리학교 컴퓨터 공학과는 수업 도중에도 “애국을 하기 위해서는 삼성에 들어가야한다” 라는 말이 대놓고 나오는 만큼, 소프트웨어와 하드웨어의 극단적이고 아름다운 결합에 대해 조금의 이해도 없다. 학생들도 요구하지 않는다.

사실상 제2의 반도체 학과가 되고 있었지.

우리는 야만인이 아니다. 내가 컴공에서 본 광경은, 전세계는 이미 첨단 전투기를 운용하고 있는데 지금 이시대에 뗀석기를 가지고선, 자동소총을 사용하려는 사람을 천시하는 풍경이었다.

논리회로나 기타 하드웨어 얘기만 하는 “석기시대” 수업을 들을 가치가 없는 이유가 거기 있다고 생각한다.

심지어 순수 소프트웨어의 역사를 다루어야 하는 수업을 그런 경향의 교수님들이 하시는 경우… 정확히 수업명을 밝히기 힘들지만, 굉장히 잘못된 사실과 오류가 나오고 그걸 외우게 시킨다.
이럴 때 시험에 옳은 답을 알고 있는데 쉬운길을 선택하기 위해서 틀린 답을 적어야 한다는 사실이 견디기 힘들다.

결국 나와 같은 방식으로 세상을 보는 사람이 거의 없다는 사실을 깨닫고, 난 컴퓨터 공학과 과학을 공부하는 무대를 경희대 컴공 밖에서 찾았다.
그렇게 프로그래밍 공부를 하는 곳을 깃허브와 유튜브로 옮겼고.. 결론적으로는 모든게 잘됬지.

아무튼 그래서 난 소프트웨어 융합 학과가 생긴 것을 상당이 긍정적으로 보는 사람이다.

최근 소융이 선택과 집중을 너무 못하고 있어 위기에 빠질 것이란 생각은 한다. 하지만 어쩌면 하드웨어 학과가 다 되버리고 멍청이들만 가득한 컴공의 부족한 부분을 채워줄지도 모르지.

댓글

(자동등록방지 숫자를 입력해 주세요)