1984년 Apple의 매킨토시는 일반 컴퓨터 중 그래픽 사용자 인터페이스로 구입할 수 있는 첫 번째 컴퓨터였다. 또한 마우스와 상호 작용할 수 있다. 이는 그 시대의 다른 모든 개인용 컴퓨터에 있는 명령 라인 인터페이스에서 급진적인 발전이었다. 입력할 명령을 기억하거나 추측하는 대신에, 그래픽 사용자 인터페이스는 어떤 가능한 기능이 있는지 보여준다. 사용자는 단지 하고 싶은 무언가를 찾기 위해 화면 주위를 둘러보기만 하면 됐다. 이것이 포인트 앤 클릭(Point&Click) 인터페이스이다. 이렇게 컴퓨터가 직관적이게 되면서 누구든지 모든 것을 혼자서 알아낼 수 있게 되었다.
단언컨대, 현대 GUI의 진정한 조상은 Douglas Engelbart였다. 제2차 세계 대전 중 Engelbart가 필리핀에서 레이더 운영자로서 주둔하고 있는 동안 그는 Memex에 있는 Vannevar Bush의 기사를 읽었다. 이 아이디어는 그에게 영감을 불어넣었고, 해군항공대가 끝나자마자 그는 학교에 돌아와 1955년에 U.C. 버클리에서 박사 과정을 마쳤다. 신흥 컴퓨팅 분야에 깊이 관여하면서 그는 자신의 생각을 수집하여 "인간 지능 향상"이라는 보고서를 1962년에 발표했다. Engelbart는 인류가 직면한 문제들의 복잡성은 우리가 해결할 수 있는 속도보다 빨리 성장한다고 믿었다. 그러므로 우리의 지성을 키우는 방법을 찾는 것은 필요하고 바람직한 목표로 보였고, 그는 컴퓨터가 자동화 이상으로 유용할 수 있음을 내다보았다. 미래의 지식 노동자들이 복잡한 문제를 씨름할 수 있는 필수적인 상호작용 도구로 여겼다.
Ivan Sutherland가 제시한 Sketchpad 시연에 영감을 받아 Engelbart가 그의 비전을 현실로 만들기 위해 팀을 모집하여 1968년에 oN-Line System(NLS)을 구축한다. 그는 그가 원하는 응용 프로그램의 유형을 사용하려면 키보드만으로 충분하지 않다는 것을 깨달았다. 그의 말에 따르면, "우리는 컴퓨터 지원 단말기를 사용한 문제 해결자를 구상하여 그들의 작업량을 늘렸습니다. 그들은 어떤 종류의 장치를 사용해서 정보 디스플레이와 상호 작용하여 화면 주위로 커서를 움직일 수 있는 능력이 필요했습니다." 그리고 1964년, 동료인 Bill English와 함께 일하면서 그는 최초의 컴퓨터 마우스를 만들었다. 선이 장치 바닥에서 나왔고, 모양은 설치류와 매우 흡사하게 보여 닉네임이 붙었다.
1968년 Engelbart는 그의 전체 시스템을 Fall Joint 컴퓨터 콘퍼런스(FJCC)에서 시연했다. 종종 "데모의 어머니"라고 불렸다. 데모는 90분 길이로 최신 컴퓨터의 기능이 시연되었는데, 비트맵 그래픽, 화상 회의, 워드 프로세싱, 실시간 공동 문서 편집과 같은 기능들이었다. 마우스와 멀티 윈도와 같은 현대 GUI의 선구자도 있었지만 그들과 중복될 수 없었다. 그것은 그 시대보다 앞섰고, 그 레이블을 가진 많은 제품들처럼, 적어도 상업적으로는 궁극적으로 실패했다. 그러나 그때의 컴퓨터 연구자에게 미친 영향은 거대했다. Engelbart는 이 분수령에 대해 인정을 받아 1977년에 Turing Award을 수상했다
1970년대 초기에 연방 기금이 줄어들기 시작하면서 Bill English를 포함한 많은 Engelbart의 팀원들이 Xerox가 새로 세운 팔로 알토 리서치 센터(Xerox PARC)로 떠났다. 1973년 이곳에서 첫 번째 진정한 GUI 컴퓨터 제록스 알토(Xerox Alto)가 개발되었다. 컴퓨터를 사용하기 쉽도록 하려면 멋진 그래픽 그 이상이 필요했다. 그것은 사람들이 이미 잘 알고 있는 것을 중심으로 구축되어야 했다. 그래야 인터페이스를 바로 인식해서 훈련이 거의 없이 사용할 수 있다. 제록스의 해답은 책상 위의, 다시 말해 데스크톱과 같은 2D 스크린을 다루는 것이었다. 마치 책상 위에 많은 서류를 놓을 수 있는 방법처럼, 사용자는 여러 프로그램을 한 번에 실행할 수 있다. 각 프로그램은 자신의 프레인에 포함되어 있어, 창(Window)이라고 불리는 응용 프로그램에 대한 보기를 제공했다.
책상 위의 서류처럼, 이 창들도 겹쳐져서 그 뒤에 있는 항목을 덮을 수 있다. 계산기 및 시계와 같은 책상 액세서리도 있어 사용자가 스크린에 위치시켜놓고 주위로 이동할 수도 있었다. 그럼에도 그것은 책상의 정확한 사본이 아니었다. 대신 데스크톱에 대한 은유였다. 이런 이유로, 이를 Desktop Metaphor라고 부른다.
이와 같은 인터페이스를 설계하는 방법에는 여러 가지가 있다. 이러한 방식으로 알토 팀은 Window, Icon, Menu 및 Pointer를 디자인했다. 이를 WIMP 인터페이스라고 부른다. 이는 오늘날 대부분의 데스크톱 GUI가 사용하는 것이다. 또한 위젯의 기본 세트를 제공하고, 그래픽 빌딩 블록을 재사용할 수 있다. 거기에는 현실의 물건 모양으로 친숙하게 그려진 버튼, 체크 박스, 슬라이더 및 탭도 포함되어 있다. GUI 응용 프로그램은 이러한 위젯으로 구성된다.
이제 이 새로운 프로그래밍 패러다임을 사용하여 간단한 예제를 코딩해보자.
먼저 운영 체제에 앱용으로 새 창을 만들어야 한다고 알려줘야 한다. GUI API를 통해 이를 수행한다. 창 이름과 크기를 지정해야 한다. 500 x 500 픽셀을 가정해보자. 이제 텍스트 상자 및 버튼 위젯을 추가해보자. 이들은 몇 가지 매개 변수를 만들어야 한다. 먼저 앱에 여러 개의 창이 있기 때문에 표시할 창을 지정해야 한다. 또한 창에서 X 및 Y 위치, 그리고 너비와 높이를 나타내는 디폴트 텍스트를 지정해야 한다. 이제 GUI 응용 프로그램과 비슷하지만 기능은 없는 무언가가 갖춰졌다.
일반적으로 코드는 거의 위에서 아래로 실행된다. 반면에 GUI는 호출된 것을 사용한다. 이를 이벤트 반응형 프로그래밍(Event-Driven Programming)이라고 하는데, 코드는 언제든 실행될 수 있고, 다른 순서로 이벤트에 응답할 수 있다. 이 경우에는 사용자 중심의 이벤트로 버튼을 클릭하거나, 메뉴 아이템을 선택하건, 또는 창을 스크롤하는 것이 있다.
사용자가 버튼을 누르면 1에서 20 사이의 숫자를 랜덤으로 골라 텍스트 상자에 그 값을 보여주도록 하려면, 단순히 그 기능을 하는 함수를 작성하는 것으로 가능하다. 이때, 중요한 것은 이 함수를 연결해 버튼이 클릭될 때마다 구동되도록 코드를 작성하는 것이다. 이를 위해, 초기화할 때, 버튼에 대한 이벤트로 이 함수를 지정하면 된다.
이 경우 이벤트의 유형은 클릭 이벤트이며, 함수는 그 이벤트에 대한 이벤트 핸들러라고 한다.
제록스 알토로 돌아가서 대략 2000개의 알토가 만들어졌고 Xerox와 대학 연구실에 제공되었다. 이것은 상업적으로 팔리지 않았다. 대신 PARC팀은 하드웨어와 소프트웨어를 계속 정제해, 1981년 Xerox Star시스템을 출시했다. Xerox Star는 데스크톱 메타포어를 확장했다. 이제 파일은 종이 조각처럼 보이고 사용자는 이것을 작은 폴더에 저장할 수 있다. 파일들은 데스크톱 위에 있거나, 디지털 파일 캐비닛에 넣어질 수 있다. 이것은 기본 파일 시스템의 맨 위에 앉아있는 메타포어이다. 사용자 관점에서 볼 때 이것은 새로운 수준의 추상화이다.
인쇄 기계 사업에 종사하는 Xerox는 텍스트 및 그래픽 제작 도구도 제공했다. 예를 들어, 그들은 잘라내기(Cut), 복사(Copy) 및 붙여 넣기(Paste)와 같은 용어를 도입했다. 이 은유는 사람들이 타자기에 쓰인 문서를 수정하면서 어떻게 대처했는지로부터 얻어졌다.
이 수동 프로세스는 Apple 2 및 Commodore PET와 같은 플랫폼에 존재하는 워드 프로세싱 소프트웨어의 출현으로 인해 의미가 없어졌다. 하지만 Xerox는 경쟁을 넘어선 아이디어를 갖고 있었다. 사용자가 컴퓨터로 만든 무엇이든지 그것을 인쇄하는 경우 실제와 똑같아야 한다는 것이었다. 그들은 여기에 "What-You-See-Is-What-You-Get"이라는 WYSIWYG라는 별명을 붙였다.
불행하게도, Engelbart의 On-Line System처럼, Xerox Star는 그 시대보다 앞서있었다. 가격이 있었기 때문에 판매가 부진했다. 사무실에 설치하려면 요즘 기준으로 약 200,000달러가 들었다. 또한 IBM PC 출시도 도움이 되지 않았고, 같은 해에 IBM 호환 PC 클론의 싸구려 쓰나미가 뒤따라왔다.
그러나 PARC 연구자들은 이 위대한 아이디어들을 10년 동안 버리지 않고 개발하고 구축해왔다. 1979년 12월, Xerox Star가 출하하기 1년 반 전에 스티브 잡스가 방문했다. 이 방문을 둘러싼 많은 구설수들이 있다. 많은 사람들이 스티브 잡스와 애플이 Xerox의 아이디어를 훔쳤다고 주장한다. 그러나 그것은 사실이 아니고, 사실은 Xerox가 애플에 접근하여 그들과 파트너가 되길 원했다. 궁극적으로 Xerox는 높은 기대를 받기 전에 Apple에서 백만 달러의 신규 상장 지분을 살 수 있었다. 하지만 추가 조항으로 "Xerox PARC에서 진행되는 모든 것을 공개하는 것"이 있었다. Xerox의 그래픽 사용자 인터페이스 시연이 있었다. 그것은 직관적인 마우스 입력으로 구동되는 선명한 비트맵 디스플레이에서 실행되었다. 스티브 잡스는 후에 "내 눈에서 베일이 벗겨져 컴퓨팅의 운명에 대한 미래를 볼 수 있었다."라고 말했다. 스티브 잡스는 그의 공학기술을 가지고 애플로 돌아와서 메뉴 막대와 삭제할 파일을 저장할 수 있는 휴지통과 같은 새로운 기능을 개발했다.
그래픽 유저 인터페이스와 마우스가 있는 Apple의 첫 제품 Apple Lisa는 1983년에 출시되었다. 그것은 거의 오늘날 25,000 달러에 달하는 고가의 슈퍼 고급 컴퓨터였다. 그건 Xerox Star보다 상당히 쌌지만, 마켓에서 소비가 부진한 것은 비슷했다. 다행히도, 애플은 다른 프로젝트를 진행하여 1년 후인 1984년에 매킨토시를 발표했다. 오늘날 약 6,000 달러의 가격으로 리사 비용의 4분의 1이었다. 매킨토시는 첫 100일 동안 7만 대를 판매하여 목표를 달성했다.
그러나 초기 열품 이후, 판매가 흔들리기 시작했다. Apple은 맥보다 Apple 2 컴퓨터가 더 많이 팔렸다. 큰 문제는 이 근본적 인터페이스의 새로운 기계용 소프트웨어를 만드는 사람이 아무도 없었다는 것이었다. 상황은 더 나빠졌다. 곧, 다른 개인용 컴퓨터에서 원시적이지만 사용할 수 있는 그래픽 유저 인터페이스를 적은 비용으로 갖추었다. 소비자들은 그것을 구입했고 PC 소프트웨어 개발자도 그러했다. Apple의 재정 상황이 갈수록 심각해지고, 새로운 CEO의 성장으로 John Sculley는 steve Jobs를 해고했다. 몇 달 후, Microsoft는 Windows 1.0을 출시했다. Mac OS처럼 예쁘지는 않았지만, 마이크로 소프트가 업계의 격렬한 경쟁과 우위를 점할 수 있었던 첫 번째 일격이었다. 10년 안에 Microsoft Windows는 개인용 컴퓨터의 거의 95%를 차지했다.
처음에는 Mac OS의 팬들의 주장대로, 맥은 우수한 그래픽 및 사용 편의성을 제공한다. 초기 버전의 Windows는 모두 GUI를 실행하지 않도록 설계된 DOS 위에 구축되었다. 그러나 Windows 3.1 이후 Microsoft는 Windows 95라는 업그레이드된 GUI로 새로운 소비자 중심의 OS를 개발하기 시작했다.
이것은 훨씬 세련된 그래픽을 제공하는 것 이상으로 중요한 개정이었다. 또한 Mac OS에는 없는 프로그램 멀티 태스킹 및 보호 메모리와 같은 고급 기능이 있었다. Windows 95는 많은 GUI 요소를 도입하여 오늘의 Windows 버전에서도 볼 수 있다. 시작 메뉴, 작업 표시줄 및 Windows 탐색기 파일 관리자와 같은 것들을 말이다.
마이크로소프트는 데스크톱 메타포어를 더 쉽고 친숙하게 만들기 위해, Microsoft Bob이라 불리는 제품을 사용해서 메타포어를 극단으로 사용하는 아이디어를 얻었다. 화면에 전체 가상공간이 만드는 것이다. 애플리케이션을 객체로 구현하여 테이블과 선반을 둘 수 있다. 심지어 타닥거리는 벽난로와 도움을 제공하는 가상의 개가 나온다. 그리고 문을 통해서 다른 응용 프로그램을 사용할 수 있는 컴퓨터의 다른 방을 만들었다. 이것은 성공하지 못했다.
오늘날 GUI는 어디에나 있으며 좋은 것일지라도, 항상 위대하지는 않다. 컴퓨터 과학자들과 인터페이스 디자이너는 계속 더 쉽고 강력한 컴퓨팅 경험을 만들어 내려고 한다. 궁극적으로는, 인간의 지성을 보강하고자 하는 Engelbart의 비전을 위해 노력한다.
'컴퓨터공학 > 기초' 카테고리의 다른 글
컴퓨터 네트워크 (0) | 2022.10.09 |
---|---|
3D 그래픽 (0) | 2022.10.02 |
화면 및 2D 그래픽 (0) | 2022.09.18 |
키보드 & 명령 라인 인터페이스(CLI) (0) | 2022.09.12 |
압축 (0) | 2022.09.09 |
댓글