1. 개요
Graphical User Interface의 약자. 현대 운영 체제는 물론이고 온갖 게임이나 유틸리티 등에서도 모두 이용되고 있다. 기존의 직접 문자를 입력하는 인터페이스는 CLI(Command-line Interface) 또는 CUI(Character User Interface)라고 부른다. UNIX 콘솔이나 도스 시리즈가 CLI의 대표적인 예.CLI와 GUI의 차이를 알기 쉽게 설명하면, CLI는 음식을 주문할 때 점원에게 말 또는 글로 주문하는 것이고[1], GUI는 키오스크로 주문하는 것과 같다.
장점 역시 이와 같은데, GUI는 일단 눈에 확 띄어서 뭘 하는지 잘 보인다는 점과 쉽고 직관적인 조작 방식이 있다. 따라서 컴퓨터 언어를 몰라도 조작이 가능한데, 비유를 하면 외국 식당에 가서 주문을 넣을 때, 해당 지역의 언어를 구사할 줄 몰라도 단순히 메뉴판의 그림을 가리키는 것만으로도 주문이 가능한 것과 같다. 그 밖에 CLI는 추상적인 명령어를 입력해야 했고, 명령을 입력해서 이게 잘되나 안되나 직접 눈으로 보는 것도 힘들었지만 GUI는 알기 쉽게 그래픽으로 다 표현해 준다. 조작도 명령어 입력 이런 거 없고 그냥 마우스 커서 갖다 대서 클릭만 하면 다 된다.[2]
2. 역사
시초는 1958년 북미 항공 우주 방위 사령부의 SAGE 시스템이다. 다만 창이나 아이콘 등으로 프로그램을 실행하고 멀티태스킹을 하는 것보다는 단일 프로그램을 제어하기 위한 물건이었다. 라이트펜으로 찍으면 이게 아군기인지 적(= 소련)기인지 구분하는 기능을 가지고 있었는데, 천공 카드나 점퍼선 같은 흉악한 인터페이스 없이 그림만으로 군인이 컴퓨터와 소통할 수 있게 만들었다는 점만으로 나름 획기적이었다. 다만 당시로서는 군사 기밀이었기 때문에 민간용으로 사용되지는 않았다. 아무튼 이 시스템은 그 이후 1983년까지도 잘 써먹었다.그 후 1963년 아이번 서덜랜드의 MIT 박사 논문인 "Sketchpad: A Man-machine Graphical Communications System"에서 스케치패드가 등장하는데, SAGE에 대해서는 좀 논란이 있지만 본격적인 최초의 GUI가 스케치패드라는 것에는 별 반론이 없다. 대충 콜로서스와 ENIAC의 관계라고 생각하면 비슷하다. 그리고 이를 계기로 서덜랜드는 국방부를 거쳐 여러 연구 프로젝트를 뛰게 되는데, 이때 키워낸 제자들의 위용이 좀 많이 무섭다. 몇 명 보자면...
- 앨런 케이 - 밑에 나오는 스타 워크스테이션의 개발자.
- 존 워노크 - 포스트스크립트 언어 개발. 어도비 창립자.
- 놀런 부슈널 - 퐁 개발, 아타리 창립자.
- 짐 클라크 - 실리콘 그래픽스 창립자.
- 에드윈 캐트멀 - 픽사 창립자.
그리고 테드 넬슨이 제안한 하이퍼링크의 개념과 GUI를 제어할 수 있는 효과적인 입력 장치인 더글러스 엥겔바트의 마우스가 등장하고, 1973년에 와서는 GUI 운영 체제를 탑재한 최초의 컴퓨터인 제록스 앨토(Alto) 컴퓨터가 등장하게 된다.
▲ 제록스 스타 워크스테이션
제록스 PARC에서 개발한 앨토(Alto) 컴퓨터와 스타 워크스테이션은 비트맵 방식으로 그려진 GUI를 갖추고 있는 획기적인 컴퓨터였다. 다만 제록스에서 이걸 파는 데에 별 관심이 없었고[3] 잘 팔리지도 않았기 때문에 스타 워크스테이션을 2000대 정도 생산해 연구소 내에서만 썼다. 스타 워크스테이션은 탁상 전자 출판( DTP) 시장을 염두에 두고 개발했지만, 가전 박람회에 출품되었을 때도 별 관심을 받지 못했다. 그러나 이걸 본 애플은 큰 충격을 받고 가능성을 보았기에, 애플 내에서 GUI 운영 체제에 대한 연구를 시작한다. 애플은 제록스에 100만 달러 치의 애플 주식을 대가로 지불하고 PARC에서 필요한 기술 자료와 이를 바탕으로 제품을 개발할 권리를 얻는 데 합의한다. 그리고 그 결과 1983년에 내놓은 게 애플 리사지만... 결과는 어땠는지 해당 항목 참조.
그러나 애플은 이듬해인 1984년 매킨토시 128K를 내놓아 GUI를 대중화시키는 데 성공했고, 매킨토시는 GUI를 애플의 마스코트 격으로 만들었다. 1986년에는 컬러 GUI를 도입한 애플 IIGS도 내놓았다.
제록스의 스타 워크스테이션에서 선보인 GUI 기능들 중 대표적인 것은 아래와 같다. 사실상 오늘날 당연하게 여겨지는 기능들이 이때 확립된 셈.
디지털 리서치는 1985년 GEM(Graphical Environment Manager)이라는 GUI를 만들었으며, 훗날 노벨에게서 디지털 리서치를 사들인 칼데라가 소스를 공개해 자유 소프트웨어 진영의 수많은 유저들에 의해 개조되고 있다.
MS-DOS 같은 CLI 환경에서도 GUI를 구현하려는 노력은 펼쳐졌었는데, 일반적으로 메모리가 달리는 관계로 진짜 그래픽을 사용할 엄두는 내지 못했지만 ANSI를 활용해 그래픽처럼 보이게 하는 기술을 사용했다. 대표적인 예가 도스 시절의 노턴 유틸리티 시리즈이며 좀 더 친숙한 걸 들자면 Mdir 같은 예도 있다.[4]
1980년대 말부터 1990년대 초까지 아타리의 Atari TOS(1985), 아미가의 아미가 워크벤치(1985), IBM의 OS/2(1988), NeXT의 NeXTSTEP(1989), Be의 BeOS(1995) 등이 등장하면서 GUI 운영 체제 시장에서 각축전이 벌어졌지만 마이크로소프트가 Windows 95를 내놓으면서 모든 상황이 정리되었다.
3. 애플과 마이크로소프트의 소송전
마이크로소프트는 매킨토시 128K를 보고 IBM PC 호환 기종에 그래픽 셸 프로그램인 Windows 1.0를 내놓기 위해 애플과 저작권 사용 계약을 맺었다. 애플은 매킨토시를 내놓으면서 창 겹침[5][6] 같은 GUI 중에서 자기들이 직접 개발한 요소들을 특허로, 운영 체제에 쓰인 각종 아이콘들의 디자인들을 저작물로 등록했다. 그러다 Windows 2.0과 NewWave 소프트웨어에 이러한 요소가 들어간 GUI를 쓰면서 1988년, 애플이 마이크로소프트와 휴렛 팩커드에 저작권 침해 소송을 제기했다.이에 대해 1993년 1심에서 캘리포니아 연방 지방 법원은 Windows 2.0의 인터페이스 디자인이 매킨토시와 표현의 실질적인 '동일성'(Virtual Identity)이 없다며 마이크로소프트의 손을 들어줬다. 법원은 아이디어와 표현의 합체 이론(Merger doctrine)과 표준적 삽화의 원칙(Scènes à faire)에 의해 자세히 분석해서 아이디어와 표현을 구분해, 아이디어는 저작권 보호의 대상이 아니고, 표현이 아이디어와 합체되어 있는 경우 표현도 저작권의 보호 대상이 아니며, 합체되어 있지 않는 표현의 경우에도 실질적인 동일성이 있어야 저작권을 침해한 것이라고 판시하였다.[7] 이 기준에 의해 휴렛 팩커드의 NewWave는 탐색기와 휴지통의 아이콘이 애플의 저작권을 침해했다고 판결했다.
또한 애플이 작성한 마이크로소프트의 GUI 저작권 사용 계약서에 기간을 명시하지 않았다. 애플은 1회 사용 계약을 맺은 것이라고 주장했고, 마이크로소프트는 기간이 명시되지 않았으니 무기한 계약이라고 주장했다. 이마저 법원은 마이크로소프트의 주장을 인정했다. 애플은 이에 불복해 항소하였으나 1994년 제9구역 연방 항소 법원도 연방 지방 법원의 판결을 인정했다.
이 소송전을 본 제록스는 부랴부랴 오래된 서류를 뒤져서 1989년에 애플에 GUI 저작권 침해 소송을 제기했으나 캘리포니아 연방 지방 법원은 저작권 침해 여부에 대한 판단 없이 권리 주장 기한을 초과했다며 1990년에 소송을 기각했다.
이 소송의 항소심이 끝난지 4년 후인 1998년, 애플로 복귀한 스티브 잡스는 1994년에 시작한 Video for Windows의 QuickTime Player 특허 침해 및 계약 위반 소송과 함께 모든 소송을 종료하기로 빌 게이츠와 합의했다. 마이크로소프트는 Microsoft Office의 매킨토시 발매를 재개하고, 의결권 없는 주식을 1억 5천만 달러에 투자하기로 합의했다. 애플은 Internet Explorer를 매킨토시의 기본 웹 브라우저로 설정하기로 했다.[8]
일부 자유 소프트웨어 진영에서는 애플을 상도덕도 모르는 놈들이라고 하면서 애플 불매 운동을 펼치기까지 했었다. 7년이나. 현재도 자유 소프트웨어 진영은 애플을 싫어한다는 걸 생각해 보면 꽤나 감정의 골이 깊다는 걸 알 수 있다. 소송 걸기라면 둘째가라면 서러워하는 자유 소프트웨어 재단도 애플과 소송전을 하지 않는 것을 보면 상당히 애매한 상태라고 할 수 있다.
리눅스와 Git을 창시해 오픈 소스 진영에서 매우 중요한 인물인 리누스 토르발스의 책을 보면 스티브 잡스가 오픈 소스 진영과 얽혀있는 문제(즉 OS X의 베이스인 결국 마하와 BSD의 문제)를 일거에 해결하기 위해 토르발스에게 만나기를 요청한 적이 있다고 한다. 토르발스는 떨떠름하면서도 일단 만났는데, 리눅스 진영과 애플이 손을 잡자는 잡스의 열변을 듣고 나서 자신은 마이크로소프트의 시장 점유율이나 독점 문제, 판매량에 전혀 관심이 없다고 말하자 잡스는 잠시 생각하다가 깨끗하게 협조 아이디어를 포기했다고 한다.[9]
4. 관련 문서
[1]
사실 이 비유도 완벽하진 않은 게 이는 인간의 자연어를 알아듣는 ChatGPT 같은 AI에나 상응하는 비유이고, CLI는 정확한 명령어 입력이 필요하기 때문에 단순히 말로 원하는 바를 설명하는 것과는 난이도가 전혀 다르다.
[2]
다만
CLI도 무시 못 할 장점이 있기 때문에 여전히 널리 쓰인다. 빠르고 통신 데이터 부담이 적은 점, 프로그래밍하기 훨씬 편하다는 점, 그리고 무엇보다도 압도적인 자동화가 가능하다는 점이 있다. 예를 들어 1000개의 음악 파일들 이름이 '아티스트명 노래제목.mp3'인데 이것들을 '노래제목_아티스트명.mp3'로 바꾸고 싶다고 하자. GUI에서는 하나하나 수동으로 1000번 딸깍거리며 바꿔야 하는 반면, CLI는 스트링을 쪼개고 재조합하는 작업을 일괄적으로 수행할 수 있는 기능이 있어서 적당한(좀 복잡한) 명령어 조합을 쓴 다음 엔터를 누르면 순식간에 모든 파일들의 파일 이름을 바꿀 수 있다. 물론 GUI 환경에서도 간혹 그런 기능을 제공하는 프로그램들을 볼 수 있지만 한두 프로그램만 가지고 모든 상황에 대응할 수는 없고 무엇보다 이런 거 프로그래밍하는 건 CLI에서 명령어 조합 짜는 것보다 훨씬 복잡하고 어렵다.
[3]
당시 제록스가 복사기 시장에서 경쟁하느라 바빠서 다른 부분에는 별로 신경 못 쓴 이유도 있다. 당시 PARC에 만든 것 중 좀 후덜덜한 것들이 많은 것을 생각해 보면....
[4]
예를 들어 체크 표시- ☑ -는
괄호 안의
근호- (√) -로 대신했다.
[5]
이 때문에
윈도우 1.0은 창이 겹치지를 못했다.
[6]
하지만 당시에는 창 겹침이 구현하기 굉장히 힘든 기술이었다. 제록스 직원들도 애플이 이걸 해낸 것을 보고 놀랐다고.
[7]
이를
아이디어·표현 이분론이라 부른다. 자세한 것은 해당 문서를 참고.
[8]
마이크로소프트가
Netscape Navigator와 경쟁을 위해 애플과 맺은 계약이었다.
[9]
이후 애플은 Clang 등을 통해 BSD 진영의 대표적인 후원자로 등극하게 된다.