자바스크립트-CSS 창시자가 말하는 ‘웹 과거·현재·미래’

월간 마소 12월호에 지난 10월 한국 웹 20주년 기념으로 방한하신 자바스크립트와 CSS의 아버지인 브렌단 아이크와 하콘 비움리의 인터뷰를 커버 스토리로 다루었네요. 내용도 좋고… 사진도 멋있고…

14603_822717311126406_7461932052521923480_n

행사 당시 두 분의 대담 동영상

대담 전문

자바스크립트(Javascript)CSS 창시자들이 한국을 방문했다. 10월 17일 서울 세종대학교 광개토관에서 열린 ‘한국 웹 20주년 국제 콘퍼런스’에 참석하기 위해서다.

올해는 웹 탄생 25주년이다. 한국에서 웹이 상용화 된지는 20년이다. 행사를 보기 위해 1000여 명의 인파가 몰렸다. 주최 측은 등록자 수가 1300명이 넘었다고 밝혔다.

웹은 1989년 팀 버너스 리가 월드와이드웹(WWW)을 만든 것으로 시작됐다. ‘열린(open)’ 정신을 바탕으로 세계 각국 개인에게 그물망(Web)을 뻗쳤다. 구글, 페이스북, 야후와 같은 글로벌 거대 기업들이 여기에서 나왔다. 국내에서도 네이버, 다음카카오 등 벤처로 출발한 인터넷 서비스 업체들이 시총 조 단위 규모 기업으로 자리매김했다.

이날 오전 브레던 아이크(Brendan Eich) 모질라 최고경영자(CEO), 하콤 비움 리(Hakon Wium Lie) 오페라 최고기술총괄임원(CTO)이 참여한 좌담회가 김국현 IT 칼럼니스트의 사회로 진행됐다. 브레던 아이크는 프로그래밍 언어 ‘자바스크립트’의, 하콤 비움 리는 스타일시트 CSS(cascading style sheets) 창시자다.

인터넷 세계에 큰 영향을 끼친 두 거인의 좌담을 정리했다.

김국현: 두 분의 아버님이 왔습니다. 자바스크립트와 CSS, 장성한 두 자제를 둔 아버님들이 어떤 말을 할지 두근두근합니다. 20년 전 두분은 어떻게 웹을 만났나요?

하쿰 비움 리: 1995년 HTML 소스코드를 봤을 때 첫 느낌은 ‘간단하다’는 것이었습니다. 당시 누구도 WWW 창시자인 팀 버너스리만큼 HTML 언어를 쉽고 간단하게 구현할 수는 없었죠. 이 언어가 HTTP와 결합해 글로벌 하이퍼 텍스트를 구현할 수 있게 됐습니다. 팀과 같이 선(CERN)에서 웹 개발을 같이 했는데요. 완벽하지는 않았습니다. 몇 조각이 빠졌다고 표현할 수 있겠군요. 정보나 텍스트를 시각적으로 보여주는 방식이 어색했죠. 글자 폰트, 색깔, 사진도 중요하다고 생각해서 CSS를 제안하게 됐습니다.

브렌던 아이크: 정확히 따지면 1995년 5월 기준으로 자바스크립트는 19년 됐습니다. 자바스크립트는 아주 서둘러서 만들었습니다. 저는 그해 4월 네스케이프에 합류해 웹브라우저 ‘모자익(Mosaic)‘을 만든 마크 안데레센 등과 함께 일하기 시작했는데요. 당시 프로그래밍 언어 ‘스킴(Scheme)‘ 을 어떻게 브라우저에 구현할 것인가에 대한 논의가 있었습니다. 그래서 자바 외에 또 다른 언어를 찾다가 자바스크립트를 만들게 됐습니다. 처음에는 모카(Mocha)나 라이브스크립트(Livescript)라고 부르기도 했습니다. 그해 12월 자바스크립트라고 이름을 붙이게 되면서 자바의 어린 동생쯤으로 사람들이 생각하게 됩니다. 이름만 비슷하지 자바와는 상관이 없는데도요.

김국현: 태명은 모카였군요. 두분이 어떻게 보면 서로 혁신의 아버지인데요. 혹시 어머니도 계신가요?

하쿰 비움 리: 어머니라고 하면 배스 보스(Bas Bos)를 꼽을 수 있어요. 저희는 강력한 협업 관계였습니다. 보스의 도움을 많이 받았죠. 20년 전, 1994년 10월 10일에 CSS를 제안했는데, 사흘 뒤에 발표되는 네스케이프 브라우저에 구현을 해야 했습니다. 72시간밖에 없었던 거죠. 완성된 상태도 아니고 제안했던 단계였는데 급하게 작업을 해야 했습니다. 그때 보스가 많은 도움을 줬죠. CSS와 관련된 강력한 커뮤니티의 도움도 많이 받았습니다. 커뮤니티가 없었다면 CSS는 지금 이렇게 완성되지 못했을 겁니다. 한두명의 노력으로 만들어진 게 아니라고 생각해요.

브렌던 아이크: 저도 마찬가지입니다. 초창기만 하더라도 서둘러서 자바스크립트를 만들었기 때문에 문제점이 많았습니다. 열흘 만에 만들었던 제 잘못이기도 하죠. 마크 안데레센 빼고는 어머니라고 할 만한 존재가 없습니다. 개발보다는 자바스크립트의 필요성에 대한 조언을 많이 해줬죠. 하쿰이 설명한 것처럼 개발자 커뮤니티의 도움도 많이 받았습니다. 커뮤니티에 속한 얼리어답터들의 피드백이 정말 소중했죠.

김국현: 공통적으로 어머니는 후원자나 커뮤니티인 것 같습니다. 다음 질문으로 넘어가겠습니다. 만일 두 분이 자바스크립트와 CSS를 만들지 않았다면 지금은 어떤 일을 하고 있을 것 같나요? 그리고 웹은 어떻게 됐을까요?

하쿰 비움 리: 웹이 개방형 표준(Open Standard)이 아니었다면 지금의 모습과는 상당히 다를 겁니다. 마이크로소프트(MS), 프렌치텔레콤, 혹은 한국 대기업 같은 거대 기업들이 전자 세계를 다 장악했겠죠. 이를 방지하기 위해서라도 ‘오픈’이 중요했다고 생각합니다. 저는 요즘 노르웨이의 작은 농장에서 사과도 키우고 있습니다. 0과 1로 조합된 일이 아닌 다른 일도 하고 있죠. 미래에는 농부가 될 수도 있겠죠?(웃음)

브렌던 아이크: 자바스크립트를 만들지 않았더라도 비슷한 영역에 있지 않았을까 싶어요. 만약 자바스크립트가 없었다면 상업 기업들이 만든 ‘비비스크립트’나 ‘마이크로소프트스크립트’와 같은 언어들이 이용되고 있을 거라고 생각해요. 특히 MS는 프로그래밍 언어와 플랫폼 만드는 기술이 있죠. 비주얼스튜디오만 봐도 초급 프로그래머들이 잘 쓸 수 있는 툴입니다. 이러한 경향을 봤을 때 자바스크립트의 혁신이 없었다면 이 자리는 MS가 차지하게 됐을 거라고 생각해요.

김국현: 두 분의 역할이 상당히 컸다는 생각을 하게 됩니다. 다른 질문인데요. 깃허브 같은 곳을 보면 자바스크립트와 CSS의 라이브러리가 엄청나게 많습니다. 아예 생태계를 만들었죠. 다른 관점으로 보면 사람들이 기존 형태에서 불편함을 느껴 이러한 라이브러리들이 나오는 게 아닌가 싶은데요. 어떻게 생각하시나요?

하쿰 비움 리: 제가 보기에 라이브러리는 더 나은 결과를 만든다고 생각합니다. 사실 라이브러리는 지루하고 반복적인 작업을 대체하는 역할을 합니다. 아티스트들이 잘하는 일에 집중할 수 있도록 돕는 거죠. 라이브러리의 다양한 아이디어를 CSS 표준에 반영하는 작업도 하고 있습니다.

브렌던 아이크: 마찬가지입니다. 표준이란 그 자리에서 멈춰있지 말고 언제나 진화해야 하는데요. 라이브러리를 통해 표준과 협력해 공동으로 진화를 추진하고 있는 것이라고 생각합니다. 스티브잡스가 만든 것처럼 특정 플랫폼에서 특정 기능만 돼야 하는 체계보다는 다양성이 중요하다고 생각해요. 애플을 나쁘게만 이야기하는 건 아닙니다. 다만, 애플은 굉장히 통제되고 협의적으로 운영한다고 생각합니다. 그 생태계에서는 효과가 있을 수 있겠지만 웹은 그러한 방향으로 가면 안됩니다.

김국현: 그러고보니 소셜네트워크서비스(SNS)에 온통 애플 이야기로 도배돼 있습니다. 애플과 구글 두 기업이 스마트폰을 등장시킨 덕분에 많은 영역이 오픈된 것도 사실이고요. 플러그인들이 많이 사라진 것만 봐도 그렇죠. 하지만 개발자들의 관심이 웹에서 구글과 애플로 치우치고 있는 것도 같습니다. 이러한 상황은 웹에 위기일까요. 아니면 기회일까요?

하쿰 비움 리: 저는 위협(Risk)이 된다고 생각합니다. 앱 같은 경우는 훌륭한 인터페이스를 제공합니다. 스마트폰, 태블릿PC에서 잘 쓰이고 있죠. 하지만 구글이나 애플처럼 계약서를 쓰고 프로그램을 만드는 것은 좋지 않다고 생각해요. 네이티브 앱 같은 경우 기술이 많이 포함돼 있지만, 사유화된(Proprietary) 생태계에 국한시킨다면 한계가 있을 수밖에 없습니다. 상업적 기업에 의해 웹의 미래가 장악된다는 의미지요. 이러한 상황을 원치 않습니다. 당장은 잘 안되고 있지만 오픈웹의 성공을 기대하는 분들이 많을 것이라고 생각합니다.

브렌던 아이크: 저도 공감합니다. 웹은 앞으로도 성장할 것이라고 말씀드리고 싶습니다. 구글이나 애플이 웹을 버렸다고 볼 수 없죠. 특히 구글은 웹에 많은 혁신을 가져왔습니다. 웹 기반의 그래픽 라이브러리 ‘웹GL(WebGL)’과 같은 사례도 있고요. 하지만 웹은 대형 기업에 의해서만 주도될 수는 없습니다. 웹은 공동으로 개발, 발전시켜야 한다고 생각합니다.

김국현: 말씀하신 것처럼 애플과 구글의 웹에 대한 기여는 크다고 생각합니다. 다만 양면성은 있습니다. 특히, CSS나 자바스크립트의 한계를 상업 기업, 벤더가 고쳐보려고 하는 노력이 보이는 것 같습니다. 최근 구글에서 나온 ‘다트(Dart)’는 궁극적으로 자바스크립트 자리를 뺏어보겠다는 시도인 것 같습니다. CSS나 자바스크립트를 대체하는 뭔가를 만드는 시도에 대해 어떻게 생각하나요?

브레던 아이크: 제가 먼저 말해도 될까요. 다트는 원래 대시(Dash)라고 불렀습니다. 자바스크립트를 대체하겠다고 만든 언어지요. 하지만 요즘은 입장을 바꿨습니다. 자바스크립트의 컴파일을 자청하며 공존하고 싶어하죠. 현실적으로 자바스크립트를 없애는 것은 불가능합니다. 마치 우리 세포 안에 미토콘드리아가 있는데, 이 자체를 바꿀 수 없는 것처럼요. 진화를 해야하는 것이지요. 다트가 자바스크립트의 진화를 돕는 데 역할을 할 수 있다고는 생각합니다.

하쿰 비움 리: CSS를 대체할 수 있는 언어도 쉽게 나오진 않을 겁니다. 개발자들 사이에서 프로그래밍 언어는 언제나 긴장 관계에 놓여 있었습니다. CSS와 같은 스타일시트 언어에 대한 많은 이론적 접근은 있으나, 아직은 연구가 많이 필요합니다. 브렌던이 말했듯 다양한 부분이 CSS 컴파일과 함께 할 것입니다. 다른 네이티브 CSS로 전환될 수도 있겠죠. 하지만 시간이 오래 걸립니다. 결론인데, 예상하자면 웹은 500년 이상 유지될 것입니다. CSS, HTML, 자바스크립트, 그리고 지금 작성하는 코드들이 500년이 지나도 계속 읽히게(Readable) 될 것입니다.

브렌던 아이크: 저는 500년 앞을 내다보기는 쉽지 않다고 생각합니다.

하쿰 비움 리: 천 년은 어떠세요?
(웃음바다)

김국현: CSS나 자바스크립트는 원래 웹의 표준을 위해 개발된 것 같은데요. 지금은 컴파일러의 대상이 되면서 컴퓨팅의 역할에 치중된 것 같습니다. 이렇게 된다면 기존 철학에 흠집이 나는 건 아닐까요?

하쿰 비움 리: 맞습니다. 원래 의미는 사장될 수 있습니다. CSS는 로 레벨 레이어(low level layer)에서 사람들이 쓰지 않는 컴파일러였다면 오래 남지 못했을 겁니다. 하지만 라이브러리가 있다고 기존 철학과 컴퓨팅 역할 중 하나를 택해야 한다고 생각하지는 않습니다.

브렌던 아이크: 자바스크립트는 살아있는 언어로서 사람에 의해 손으로 작성되는 언어라고 생각하는데요. 사실 어셈블리어라기 보다는 사람들이 편하게 쓰는 대중적인 언어, 소스가 됐으면 좋겠습니다.

김국현: 이런 질문은 좀 그렇지만 두 분이 애용하는 라이브러리가 있다면요?(웃음)
(브렌던 아이크 한숨 꺼지는 소리가 객석에까지 울렸다.)

하쿰 비움 리: 제가 슬라이드 만들 때 쓰는 라이브러리가 있습니다. 이름이 디즈로 시작하는데요 정확히 기억은 안나네요. 굉장히 사용성이 좋습니다. CSS 스탠다드로 포함하고 싶단 생각도 했는데 위원회 통과하고, 테스트하는 표준화 작업이 쉽지 않아 망설이고 있지요.

브렌던 아이크: 제가 대표적으로 쓰는 건 리빌(Reveal)인데요. 최소한의 라이브러리를 쓰고 있는데 괜찮습니다. 첨언하면 모든 게 표준화하는 건 불가능하다고 생각합니다. 어셈블리 뿐만 아니라 로 레벨 어텐던스(Attendance)에서도 자바스크립트 이외에도 핵심 부분들은 표준화가 되겠지만 나머지는 라이브러리를 통해 개발자들이 빠르게 개발했으면 좋겠어요.

김국현: 예전에는 자바스크립트로만 할 수 있는 부분을 요즘에는 CSS만으로도 가능한 상황들이 있습니다. 이러한 점에 대해서는 어떻게 생각하나요?

하쿰 비움 리: 어떻게 보면 권력의 다툼이죠. 언어는 경우에 따라 경쟁 관계가 됩니다. 퍼블리싱 환경에서는 프로퍼티(Property) 변수나 값을 설정할 때는 자바스크립트를 사용하지 않고 CSS만으로 작업할 수 있습니다. 프로그래밍을 항 경우 CSS보다 자바스크립트가 편리할 수 있겠지만, 전세계 인구의 1%의 영역이라고 생각합니다. 그러므로 CSS 사용하는 정도가 더 많을 거라고 생각합니다. 훌륭한 프로그래머가 전 세계에 많지 않기 때문이죠.(웃음)

브렌던 아이크: 동의합니다. CSS는 타이포그래피 구현에 유용합니다. 자바스크립트는 무언가를 혁신하기 원하는 사람들에게 필요하다고 생각해요. CSS로 인해 자바스크립트를 멀리하는 경향도 가속화되고 있다고 봅니다.

김국현: 500살까지 키우려면 앞으로가 중요하다고 생각하는데요. 가장 큰 위협 요인은 뭘까요?

하쿰 비움 리: 특정 기업이 장악하는 것이 가장 큰 위협 요인입니다. 애플과 구글은 지금도 굉장히 강력하죠. 저는 오픈 스탠다드가 규칙이 아닌 세계에 살고 싶지 않습니다. 2005년 당시 가장 큰 도전 과제가 MS였다는 점과는 다른 양상입니다. 결국, 오픈웹커뮤니티가 더욱 강화돼야 한다고 생각합니다. 웹은 강력한 힘입니다. 많은 사람들이 계약서 없이 자유롭게 이용할 수 있기 때문이죠.

브렌던 아이크: 네이티브 OS(운영체제)가 스마트폰에 도입되면서 도전과제가 많이 생겼습니다. 스마트폰이 웹을 더 잘 사용할 수 있게 된 점은 잘된 일이라고 생각합니다. 우려하는 부분은 특정 기업의 독점체제가 자바스크립트, CSS 같은 기술의 하위 구조들을 점유하게 되는 것이죠. 개인정보, 앱, 인증서, 보안에 관한 독점도 문제입니다. 여러분, 데이터는 여러분이 갖고 있어야 합니다. 하지만 실제로는 쉽지 않습니다. 모든 부분에서 위협 요소들이 등장하고 있다고 봅니다.

김국현: 한국에서는 일상 생활에서 웹으로 할 수 없는 게 많습니다. 뭘 하려면 무언가(?)를 깔아야 한다. 무언가를 깔아야 하는데…(웃음) 만약 한국에서 산다고 결정을 했다면 어떻게 할 건가요?

하쿰 비움 리: 인터넷 익스플로러 이야기인가요. ‘한국에 살기 위해서는 익스플로러 써야 하나?’는 질문을 할 수 있습니다. 이는 잘못됐다고 생각합니다. 한국은 아주 특수한 상황입니다. 나 같은 경우는 고치도록 노력할 것입니다. 행동가들이 필요하다고 생각해요.

브렌던 아이크: 엑티브X가 스마트폰 OS에 없다고 생각하는 경향이 있는 것 같습니다. 그래서 인증서나 액티브X가 사라질 것이라고 하는데요, 한국에서는 이러한 변화까지 오랜 시간이 걸릴 겁니다. 만약 제가 한국에 산다면 인터넷 익스플로러를 사용할 겁니다. 그렇지만 웹의 발전을 위해 계속 노력할겁니다.

김국현: 여기 모인 분들 대부분이 웹개발자, 웹디자이너입니다. 만약 오늘부터 웹개발과, 웹디자인을 준비한다면 무엇을 시작해야 할까요? 지금 당장요.

하쿰 비움 리: 우선은 15분 간 HTML을 공부할 겁니다. 기초를 위해 필요한 것은 HTML 밖에 없습니다. 그 다음 45분은 CSS 기초를 공부할 거예요. 그러면 한 시간이 지나겠네요. 자바스크립트는 얼마나 걸릴까요?

브렌던 아이크: 자바스크립트는 열흘 걸립니다.(웃음)

하쿰 비움 리: 이렇게 공부한다음 이후 500년을 편하게 일할 수 있습니다. 진지하게 말하면 관련 기술을 이해해야 합니다. HTTP, URL 개념, 특히 HTML을 다 이해 해야합니다. 앱도 연구해야 하죠. 저는 특정 기업이 독점한 구조를 따르지 않을 것입니다. 이를 감안하면 웹이 유일한 대상이 됩니다. 수억명의 사람들이 최신 아이폰을 사지 못하는, 선진국이 아닌 나라에서 살고 있습니다. 이러한 사람들에게는 여전히 웹이 필요하죠. 거기서도 콘텐츠는 개발되고 있습니다. 이것이 웹이 지금까지 해온 일입니다. 웹 앞에 붙어 있는 World Wide란 단어 자체가 전세계적인 범주를 의미한다고 생각합니다.

브렌던 아이크: 프로그래밍을 배우기 위해서는 많은 언어를 할줄 알아야 합니다. 자바스크립트에만 머무르지는 마세요. 파이썬, 루비가 있고 C++도 있습니다. 스마트폰 많은 영역에서 사용되죠. 그리고 과거 그 어느 때보다 지식을 공유하는 개발자들의 수가 많습니다. 엄청난 숫자입니다. 제가 공부했을 때는 책이 유일했는데, 이제는 온라인에서 다양한 정보를 접할 수 있습니다.

김국현: 마지막으로 한국 웹개발자들에게 한 마디 해주세요.

브렌던 아이크: 자바스크립트에 베팅하십시오.

하쿰 비움 리: 가능할때마다 css를 사용하세요.

(웃음바다)

김국현: 오늘은 한국 웹 20주년이죠. 그러면 앞으로 500주년 위해 ‘만세’ 외치고 끝내보는 건 어떨까요. 웹의 500주년 위해 “만세!”

여러분의 생각

의견 쓰기

이름* 이메일* 홈페이지(선택)