최신 기사 추천 기사 연재 기사 마빡 리스트

2015. 05. 14. 목요일

trexx







1. 사익(私益)과 공익(公益)


1.jpg

4대강 사업은 어느 분의 사익이다.


기업은 돈(수익)을 욕망한다. 기업은 상품을 팔아 욕망을 얻는다. 경쟁기업 보다 우수한 상품으로 고객을 끌어 모아야 하는 것이 기업의 숙명이다. 고객은 보다 우수한 상품을 소유하여 물건의 온전한 주인이 되길 욕망한다. 기업과 고객 각자의 욕망이 자본주의 사회의 숙명이라 할 수 있다. 하지만 기업은 개인인 고객(소비자)보다 막강한 힘을 가지게 되었고, 소비자는 기업과 맞서 권리를 찾기 어렵게 되었다. 자본은 곧 힘이고 많은 사람을 통제할 수 있음이 증명된 것이다.

 

기업이 강해지면 강해질 수록 돈에 대한 욕망은 더 커진다. 한 기업이 대다수의 고객을 독점하게 되면 절대적인 힘을 행사할 수 있다. 경쟁사가 없으니 굳이 고객을 위해 개선된 상품을 내놓을 필요가 없게되는 것이다. 그 상품이 모든 사람들이 보편적으로 향유해야 할 것이라면 상황은 더 심각해진다. 북한에서 배급되는 한 채널로 납땜된 TV와도 같다. 다양성은 죽고 일방적인 통제만 남게 된다. 특정 기술을 한 기업만 배타적으로 독점하여 사익을 추구하게 되면 인류는 진보가 아닌 퇴보와 마주하게 된다.

 

보편적인 기술의 진보, 인류 전체의 이익, 즉, 공익을 위하여 누군가는 나서서 교통 정리를 할 필요가 있다. 모두에게 필요한 기술을 표준으로 정하여 무료 혹은 적은 비용으로 이를 향유할 수 있게 하여야 한다.

 

위 북한 TV 예를 들었듯 사람들과 소통하는 통신 기술과 문화를 향유하는 미디어 기술들은 특정 기업 혹은 국가가 독점적으로 소유할 경우 그 기업 혹은 국가는 기술 발전 보다는 독점적인 지위 행사로 자신의 사익을 극대화하기 위해 사용자 권리를 무시하거나 빼았게 될 확률이 높아진다. 월드와이드웹(WWW)의 창시자 '팀 버너스 리'의 이름이 여전히 빛나는 이유는 바로 그 때문이다.


지난편에서 소개한(기사보기) 애플의 하이퍼카드는 ‘인터넷’의 주인공이 되지 못했다. 인터넷이 ‘공기’처럼 사용할 수 있게 된 건 공익을 추구하는 위대한 ‘팀 버너스 리’의 노력이 없었으면 불가능 했을 것이다. HTML은 어떻게 하여 인터넷의 왕좌를 차지할 수 있었을까?




2. HTML 탄생 배경: ARPANET, Unix


11.gif

UNIX 연대표


1966년 미국방성 ARPANET과 1969년 Unix의 출현으로 컴퓨터 기술은 비약적으로 발전하게 된다. 벨 연구소 켄 톰슨과 데니스 리치 등 개발자들이 처음으로 개발하여 선보인 UNIX는 멀티태스킹(Multitasking)과 다중 사용자(Multiuser)를 고려한 운영체제였다. 즉, 여러사람이 네트워크를 통하여 다중작업을 할 수 있게 한 최초의 제대로된 OS였다. Unix의 강점은 그 뿐만이 아니다. Unix 이전 OS는 기계어인 주로 어셈블러로 작성되었는데 이 언어의 문제는 이식성이 매우 안 좋다는 것이다. 다른 하드웨어에 OS를 이식하는 것이 불가능에 가까웠다. 하지만 Unix는 고급 프로그래밍 언어인 C 언어로 커널까지 작성(1972년 C로 재작성)하였기에 다른 하드웨어 이식성이 매우 좋았다.


Unix는 처음부터 멀티태스킹과 멀티유저를 고려한 OS 였기에 네트워크 기능이 강력했다. 최초의 인터넷으로 불리는 미국방성 ARPARNET 기술은 Unix와 더불어 대학교를 중심으로 확산되게 되었고 그 결과 네트워크(인터넷) 를 통해 한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는 일명 프로토콜이 개발되게 된다. Unix의 한 축인 BSD*에서 현재 인터넷 접속시 사용하고 있는 인터넷 접속 프로그램인 (인터넷) 소켓**이 개발되게 된다.



* BSD(Berkeley Software Distribution)는 미국 캘리포니아 대학교 버클리(University of California, Berkeley)에서 개발한 유닉스 계열의 컴퓨터 운영 체제이다. 벨 연구소의 유닉스 초기 배포판들은 운영 체제에 대한 소스 코드를 포함했으며 대학교의 연구원들이 유닉스를 수정하고 확장할 수 있게 했다. 버클리의 최초의 유닉스 시스템은 1974년 설치된 PDP-11이며 컴퓨터 과학부는 그 뒤 기초과학에 필요한 광범위한 연구를 위해 이를 사용하였다. 벨 연구소의 외부의 최초의 버클리 소프트웨어인 1BSD는 1978년 3월 9일에 세상에 나왔다.



3.jpg

OS/2용 인터넷 접속(소켓) 프로그램(위)


4.jpg

보다 자세한 설정을 하고 싶으면 스크립트 언어(REXX)를 알아야한다.



** 인터넷 소켓은 1982년 BSD Unix 4.1에서 처음 소개되었으며 보완을 거듭하여 4.3버전에서 완성되었다. 소켓은 응용 소프트웨어로 통신망의 데이터를 송신하는 역할을 한다. OS가 TCP/IP 등을 통하여 데이터를 주고 받게 도와준다. 소켓 프로그램은 현재의 윈도우즈, 맥, Linux OS에 기본으로 장착되어있다.




3. 어쩔 수 없는 공개, AT&T의 굴복


5.jpg

AT&T는 반독점으로 분사되었다.


Unix와 C가 보편적인 기술이 된 이유는 그 기술을 개발한 한 기업이 국가의 눈치를 보았기 때문이다. 당시 Unix를 개발한 벨 연구소의 모회사인 AT&T는 미국 유선 전화통신을 독점하고 있었다. 전화 통신은 벨이라는 민간 회사에서 발명한 전화기와 그 것을 이용하여 서로 통신할 수 있도록 하는 서비스의 제공을 말하는 것이었다. 하지만 본 기술은 모든 사람들에게 꼭 필요한 보편적인 공공재가 되었다. 공공재를 민간 기업이 독점하게 되는 것은 공익에 반하게 된다. 하지만 벨의 전화통신은 시장을 독점하였고 절대 권력을 가지게 되자 미정부와 불편한 관계가 되었다.

 

벨, AT&T은 전화통신으로 엄청난 돈을 벌게 되었고 그의 일환으로 웨스턴 일렉트릭사와 함께 1925년 벨 연구소를 설립하게 되었다. 이후 벨 연구소는 전화기술 뿐 아니라 수학, 물리학, 인간행동과학, 재료과학, 컴퓨터 프로그래밍 이론, 시스템공학 등의 연구, 개발까지 그 영역을 확장하게 된다.

 

벨 연구소는 1970년대에 이르러 C언어와 컴퓨터 운영체제인 Unix를 개발하게 된다. 문제는 이곳에서 개발된 Unix와 C를 AT&T가 배타적으로 독점할 경우 바로 반독점 협의로 덜미를 잡힐 수 있었다. 미정부는 전화통신 독점기업인 AT&T를 압박했고 그 결과 AT&T는 전화 산업과 관련이 없는 상품을 팔거나 AS를 할 수 없게 되었다. 그 덕분에 Unix는 AT&T의 의도와는 관계없이 무료 혹은 매우 저렴한 가격으로 배포되었고, 소스코드가 부분적으로 공개되었다. 그 결과 Unix는 수많은 버전이 나오게 되었고 이를 표준화한 것이 POSIX가 된다. (Unix에 대한 보다 자세한 내용은 추후 다룰 예정이다.)

 

C언어와 Unix는 개발한 기업이 정부 눈치를 보며 어쩔 수 없이 사익을 포기함으로써 아이러니하게 업계 표준으로 자리매김 하게 되었다. 그 결과 컴퓨터 기술은 C언어와 Unix OS 중심으로 발전하게 되었다.




3. NeXT STeP


6.jpg

팀버너스리의 WWW 개발환경 NeXTCube


1980년대 중 후반 당시 대학교와 정부에서만 이용했던 네트워크 환경에 관심을 가진 인물들이 있었는데 애플에서 나온 스티브 잡스와 스티브 잡스가 만든 제품인 넥스트를 손에 넣은 팀 버너스 리 였다.


스티브 잡스는 애플에서 나오면서 또 다른 기술들에 관심을 가지게 된다. 애플에 있던 스티브 잡스가 맥킨토시 개발 당시 마우스, GUI 그리고 레이저 프린터에 구현에 집중하였다면(그것만으로도 충분히 엄청난 기술 도약이였기에) 애플에서 나온 스티브 잡스는 1985년 넥스트를 구상할 당시 parc(Xerox Palo Alto Research Center)에서 발명했던 굉장한 또다른 미래 기술들*을 다시 검토하기 시작했다. 대표적으로 OOP(Object Oriented Programing)과 이더넷(Ethernet) 이었다.


7.jpg

캘리포니아 팔로알토에 위치한 parc


* parc(제록스 팔로알토 연구소)은 위대하다. 보통 이곳은 GUI(Graphic User Interface)의 산실로 유명하지만 현대 컴퓨터의 모든 것을 이 연구소에서 만들었다해도 과언이 아니다. ‘WISIWIG 구현에 필요한 GUI’, ‘문서 편집기’, ‘비트맵 그래픽스', ‘벡터 그래픽언어 포스트스크립트'와 ‘레이저 프린터’, ‘네트워크 기술인 Ethernet(LAN)’ 그리고 프로그래밍 패러다임을 바꾼 객체지향 프로그래밍 언어의 조상인 ‘스몰토크(SmallTalk)’ 등 현재를 지배하고있는 컴퓨터 기술들이 한 연구소에서 모두 개발되었다.


스티브 잡스는 parc에서 개발한 Ethernet(LAN)으로 컴퓨터 끼리 서로 통신하여 데이터를 주고 받는 것에 깊은 인상을 받았다. 애플에서 나온 후 네트워크가 구현되는 컴퓨터를 만들고자 하였다. 하드웨어로는 Ethernet을 장착하였고 그를 뒷바침 하기 위하여 네트워크에 최적화 된 OS 인 BSD Unix를 NeXT OS에 이식하였다.


뿐만 아니라 스티브 잡스는 NeXT에 parc에서 개발한 객체지향언어, 스몰토크를 이식하고 싶어했다. 하지만 객체지향 언어, 스몰토크의 문제점은 기존의 프로그램언어와 호환성이 전혀없었다는데 있었다. 객체지향언어를 사용하게 되면 기존에 사용했던 코드들을 사용하지 못하게 되어 프로그램을 다시 작성해야 할 판이었다. 당시 많은 프로그래머들은 C언어 같은 절차형(선형)으로 프로그래밍에 익숙하였기에(물론 현재도 그렇다.) 새로운 객체지향 언어를 개념적으로 반겼지만 바로 옮기지 못했다. 그리고 또 다른 문제는 스몰토크를 사용하기 위해서는 당시 컴퓨터 환경에서는 감당하기 어려운 VM(Virtual Machine, 가상머신)을 사용*해야 했다.


8.jpg

맥에서 윈도우즈를 VM으로 실행하고 있다.


* VM(가상머신)을 쉽게 말해서 윈도우즈 OS 위에 다시 다른 OS(가상머신)를 구동하고 프로그램을 실행하는 것이라 보면 된다.(맥 OS X위에 윈도우즈를 구동하는 경우) 이럴 경우 하드웨어 리소스를 엄청나게 잡아먹게 된다. 1980년대에 하드웨어에서는 감당하기 어려운 방식이다. VM의 대표적인 프로그래밍 언어가 JAVA다.


스티브 잡스는 parc 방문 이후 객체지향언어에 매료되었다. 하지만 제록스 팔로알토 연구소에서 개발한 스몰토크는 당시 네트워크에 최적화된 Unix에 바로 적용할 수 없었다. 새로운 OS를 Unix-Base로 구성하고 싶었던 스티브 잡스는 C언어와 스몰토크를 하이브리드로 결합한 프로그래밍 언어를 발견한다. 바로 1983년 브래드 콕스와 탐 러브가 발명한 Objective-C 였다. 이 프로그래밍 언어로 기존의 개발 언어인 C를 수용하여 가상머신이 아닌 OS에서 바로 구현하는 프로그램을 작성할 수 있었다. 스티브 잡스는 넥스트를 통하여 제록스의 스몰토크를 계승한 통합 개발 환경(Integrated development environment, IDE)인 NeXT Interface Builder를 선보인다.(프로그래밍 툴에 대한 자세한 사항은 추후에 다룰 예정이다.)


스티브 잡스는 NeXT가 네트워크에 강력한 Unix로 구성되길 원했고 그 결과 OOP 뿐 아니라 parc가 개발한 또 다른 기술, 이더넷(Ethernet)이 장착된 NeXT Computer를 1988년 발표하게 된다. 우리가 현재 쓰고 있는 LAN의 상업적 도입이 NeXT에서 이루워진 것이다. (가정용 컴퓨터 매킨토시가 이더넷을 적용한 시기는 넥스트보다 3년 후인 1991년 최고사양 제품인 Quadra 700에 이르러서였다.)


잡스는 넥스트에 Unix, OOP와 이더넷을 적용함 으로서 네트워크에 최적화한 컴퓨터를 시장에 선보인 것이다.




4. 팀 버너스 리의 WorldWideWeb


9.jpg

세계 최초의 HTML 브라우저이자 편집기 인 WorldWideWeb


팀 버너스 리는 1989년 프랑스 국경에서 가까운 스위스에 위치한 CERN(물리학 연구소)에서 하이퍼텍스트를 제안한다. 팀 버너스 리는 1990년 객체지향 언어 Objective-C와 인터페이스 빌더가 구성되있는 NeXT Computer를 손에 넣게 된다. NeXT 컴퓨터는 네트워크를 구성할 이더넷과 뛰어난 프로그래밍 환경(IDE, 인터페이스빌더)을 갖추고 있었다.

 

무엇보다 팀 버너스 리는 NeXT 컴퓨터에 들어있는 소프트웨어 개발 환경인 인터페이스빌더에 매료되었다. 팀 버너스 리는 NeXT의 소프트웨어 개발 환경을 통해 세계 최초의 HTML 웹브라우저인 WorldWideWeb을 개발 할 수 있었다. 그런 탓에 스티브 잡스가 타계하고 이틀이 지난 2011년 10월 6일, 팀 버너스 리는 W3C 홈페이지에 잡스를 위한 추도사를 공개하였다. (누가 개발자 아니랄까봐 컴퓨터 용어로 범벅해 놓았다.)


내(버너스 리)가 처음 본 NeXT는 눈부셨다. NeXT는 처음부터 정말 많은 것들을 한꺼번에 소개했다. 광자기 저장매체, Objective C, 마크 커널, Unix, 포스트 스크립트, 인터페이스빌더 등등. 그렇다. 그들(스티브 잡스와 NeXT)은 고집스럽게도 가격을 낮추지도 않았고 광자기 저장매체의 안정성에 대하여 끝내 입증하지도 못했었다. 하지만 스티브와 NeXTSTEP은 결국 애플을 구원했다.

 

(중략)

 

내가 1990년 9월 NeXT Cube가 담겨있는 박스를 처음 열었을 때 초보자인 나를 위해 자동으로 메일 계정을 설정해 주더군. (중략)

 

그리고 메일 프로그램에는 스티브의 음성이 담긴 환영 메일이 담겨 있었다. 그는 NeXT를 개인용 컴퓨터라고 하지 않고 사람과 사람사이(interpersonal)의 컴퓨팅 이라고 하더군. 정확히 그랬다.

 

NeXT에서 WorldWideWeb을 프로그래밍하는 건 정말 쉬웠는데 그곳엔 이미 Text Object(편집할 수 있는 다양한 폰트로 구성된 편집기 기능)라는 소프트웨어 모듈이 들어 있었다. 난 그것을 하위 분류로 하여 하이퍼텍스트를 만들었고 그 다음 인터넷 코드로 더하면 그만이었다. 앱의 매뉴를 디자인하는 것 또한 사소한 것이었다. 단지 인터페이스빌더에서 드래그 앤 드롭으로 끝이었다. 앱의 코드 프레임워크는 자동으로 생성 되었다. 그것은 바로 플랫폼이었다!

 

 

<팀 버너스 리의 추도사 - 스티브 잡스와 실제 사용하기 좋은 컴퓨터(NeXT) (2011. 10. 6.)>


팀 버너스 리는 NeXT 컴퓨터로 1990년 12월 25일 크리스마스에 세계 최초의 웹브라우저이자 위지윅 HTML 편집기인 WorldWideWeb을 선보인다. (공식 발표는 1991년 2월 26일. 추후에 WorldWideWeb은 Nexus로 개명한다.) 드디어 하이퍼텍스트의 시대가 열린 것이다.




5. 팀 버너스 리의 위대함, 무료 공개


10.jpg

인터넷의 제왕?이 된 팀 버너스 리


WWW가 처음 발표했을 당시 기존의 인터넷 사용자들에게는 별 호응이 없었다. 일반인들은 하이퍼텍스트 보다는 고퍼(Gopher) 같이 메뉴 방식으로 정보를 찾는데 익숙했기 때문이었다. 당시 하이텔 같은 텔넷(telnet), 파일전송을 주로하는 ftp 등은 텍스트 기반으로 메뉴로 구성된 역시 텍스트 기반인 고퍼에서 접근하기 쉬웠다. 


고퍼는 1991년 웹과 거의 같은 시기에 미네소타 주립대학교에서 개발 되었고 1993년 이전까지 웹의 절대 강자였다. 당시 느린 인터넷 환경과 DOS가 주종이었던 PC환경에서는 단순한 메뉴 접근이 가능한 고퍼가 WWW에 비하여 더 합리적인 것으로 생각되었다. 더욱이 고퍼는 다양한 컴퓨터에서 구동되었지만 팀버너스 리가 개발한 WWW는 NeXT 에서만 구동 되었다.


팀 버너스 리는 보다 많은 사람들이 WWW을 이용하도록 관련 소프트웨어와 소스코드 모두를 공개하기에 이른다. 그리고 일체의 라이센스 비용을 요구하지 않았다.


누구나 자유롭게 웹기술을 사용할 수 있기에 CERN에 비용을 낼 필요가 없습니다.

(1993년 4월 30일 팀 버너스 리가 몸 담고 있는 CERN의 발표문에서) 


파급력은 대단했다. 소스코드가 공개되자 NCSA에 몸담고 있었던 마크 앤드리슨과 에릭비나는 유닉스에서 돌아가는 ‘모자이크’(웹브라우저)를 개발, 발표한다. 모자이크는 이후 윈도우즈, 맥, 유닉스를 모두 지원하게 되고 이것이 추후 네스케이프 네비게이터로 발전한다.


반면 고퍼를 개발한 미네소타 대학은 시대에 역행하는 멍청한 결정을 하게 되는데 일부 고퍼 사용자들에게 라이센스 비용을 요구한 것이다. 그 소문이 삽시간에 퍼지고 인기는 바로 떨어지게 되었다. 결국 1993년 이전까지 WWW보다 인기있었던 고퍼는 몇년이 지나지 않아 역사속으로 완전히 자취를 감추게 되었다.


Web 기술은 CERN과 팀 버너스 리의 의지로 무료로 공개되었다. 팀 버너스 리의 기술은 업계 표준이 되었고 누구나 자유롭게 그 기술을 가져다 쓸 수 있게 되었다. 팀 버너스 리는 돈이 목표가 아니었는지 고퍼의 인기에 주눅이 들었는지 어쨌든 지금의 웹을 공공재로 활용하도록 하였다. 그리고 지금도 웹의 공공성을 위해 열심히 활동하고 있다.


웹은 드디어 인류 정보 전달의 중심으로 떠올랐다. ‘공기’처럼 우린 어디에서든지 인터넷을 통하여 ‘하이퍼텍스트’로 컨텐츠를 접근할 수 있게 되었다. 이 모든 편리함이 위대한 ‘팀 버너스 리’ 덕분이다.


다음 편은 브라우저 전쟁을 살포시 다뤄볼 예정이다.

 

 

이 시리즈는 계속됩니다.