i_jemin

Archive

← 아카이브로

컴퓨터는 사람이 생각하는 방식을 반영해야 한다

예술대에서 컴퓨터공학과로 전과한 뒤, 프로그래밍을 독학하며 게임 개발을 시작했다. 그 과정에서 중요하게 생각하게 된 방향이 있다.

컴퓨터는 사람이 생각하는 방식을 반영해야 한다.

학교에서 접한 하드웨어와 임베디드 중심의 접근만으로는 내가 관심을 가진 소프트웨어를 충분히 설명하기 어려웠다. 기계의 구성뿐 아니라 사람이 소프트웨어를 어떻게 이해하고 사용하는지도 함께 다루고 싶었다.

사물을 이해하는 방식

객체지향 프로그래밍에서 흥미롭게 느낀 점도 여기에 있다. 같은 타입에서 만들어진 객체들이 공통된 특성을 가지면서 각각 구분되는 존재가 된다는 것이다.

손에 사과가 두 개 있다면 둘 다 사과이지만, 크기와 색, 무게가 서로 다를 수 있다. 우리는 사과라는 공통된 개념을 떠올리면서도 눈앞의 두 사과를 구분한다. 나는 이런 방식이 소프트웨어의 대상을 이해하는 데에도 도움이 된다고 느꼈다.

지시하고 옮기는 방식

옷 위의 검푸른 점무늬를 가리키고 싶다면 손으로 짚으면 된다. 위에서 몇 센티미터 떨어져 있는지, 반지름이 얼마인지, 색의 RGB 값이 무엇인지부터 설명하지 않는다.

탁자 위의 물건을 옮길 때도 비슷하다. 물건의 식별자와 목적지 좌표를 적는 대신, 손으로 잡아 원하는 위치로 끌고 간다. 화면에서 사용하는 드래그 앤드 드롭은 이 경험과 자연스럽게 이어진다.

사용자는 사물의 내부가 어떻게 구성되어 있는지 몰라도 그것을 집어 옮길 수 있다. 소프트웨어 역시 내부 구조를 모두 설명받아야만 쓸 수 있는 도구가 되어서는 안 된다고 생각한다.

내가 매킨토시와 그래픽 인터페이스의 역사에 관심을 가진 이유도 여기에 있다. 기계에 맞춰 생각하는 법을 새로 익히는 대신, 이미 알고 있는 행동으로 컴퓨터를 다룰 수 있다는 점이 흥미로웠다.

눌러질 것처럼 보이는 버튼은 누를 수 있어야 하고, 옮길 수 있을 것처럼 보이는 대상은 자연스럽게 옮길 수 있어야 한다. 보이는 모습과 실제 동작이 이어질 때 도구를 이해하기 쉬워진다.

내가 배우고 싶은 소프트웨어

그래서 소프트웨어를 만드는 사람에게는 분석적인 사고뿐 아니라 사용자의 행동을 떠올리는 직관과 예술적인 감각도 중요하다고 생각한다.

나는 이런 관심을 따라 GitHub와 YouTube에서도 프로그래밍을 배웠다. 학교에 소프트웨어 융합학과가 생긴 것도 긍정적으로 받아들였다. 하드웨어의 원리와 함께, 사람이 이해하고 사용할 수 있는 소프트웨어를 만드는 방식도 더 많이 이야기할 수 있기를 바랐다.