메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

컬럼/인터뷰

『자바 스크립트 핵심 가이드』의 저자 데이비드 플라나긴과의 인터뷰

한빛미디어

|

2001-12-21

|

by HANBIT

8,370

데이비드 플라나긴(David Flanagan)은 오라일리에서 가장 책을 많이 쓰는 작가 중 한 명으로 자바와 자바스크립트에 능통하다. 데이비드는 『JavaScript: The Definitive Guide』을 업데이트한 개정 4판의 집필을 이제 막 마쳤다. 우리는 그가 집필한 최신 개정판에서 새롭게 추가된 사항 및 자바스크립트의 위상과 웹 표준을 위한 넷스케이프의 기능 향상에 대한 이야기를 나누었다. 스튜어트: 현재 자바스크립트가 어떤 상황에 있다고 보십니까? 자바스크립트의 사용이 여전히 성장 추세에 있다고 보십니까? 아니면 웹 기술의 안정화 단계에 접어들었다고 보십니까? 플라나긴: 닷컴 경제의 휴지상태로 인해 현재 자바스크립트의 사용은 일시적인 정체상태에 처해있다는 것이 확실하기는 합니다만 좀 더 장기적인 안목에서 볼 때 자바스크립트의 사용은 조만간 그 성장을 계속해 나갈 것으로 생각됩니다. 최신 표준 수용 브라우저들의 DOM 수용능력은 웹 페이지의 자바스크립트 코드에 새로운 능력을 부가해 주었으며 이로 인해 개발자들이 언어를 배워야만 하는 합당한 이유가 예전보다 더 많아졌죠. 또한 http://mozilla.org/에서 이용할 수 있는 두 개의 자바스크립트 인터프리터의 오픈 소스 구현(하나는 C에서, 다른 하나는 자바에서)으로 인해 자바 스크립트는 점점 더 애플리케이션을 위한 스크립트 언어로 채택되고 있습니다. 이것은 개발자들이 자바스크립트 프로그래밍 기술을 위한 좀 더 유용한 분야를 찾게 될 것이라는 것을 의미합니다. 스튜어트: 『JavaScript: The Definitive Guide』의 최신 개정판에서는 어떤 새로운 사항이 추가되었습니까? 플라나긴: 개정판에서는 자바스크립트 1.2에서부터 현재 버전인 자바스크립트 1.5에 이르기까지의 핵심 언어를 다루는 가장 많은 요구가 있었던 사항이 업데이트 되었습니다. 클라이언트측에서 보면 이 책은 레벨 1과 레벨 2의 최첨단 특징들을 모두 다루고 있는 W3C DOM 표준 문서를 갖추고 있습니다. DOM 표준은 월드 와이드 웹 컨소시엄이 정의하는 문서 객체 모델(Document Object Model)입니다. 이 표준은 자바스크립트가 웹 브라우저 윈도우에 보여지는 문서 내용에 대한 완벽한 제어를 할 수 있게 해주며 플랫폼에 독립적인 방법으로 정교하면서도 강력하고 다이나믹한 HTML을 가능하게 해줍니다. 플랫폼 독립성은 시종일관하게 이 책에 흐르고 있는 주제입니다. 내가 쓴 책의 이전 개정판들에서 나는 넷스케이프의 구현에 큰 비중을 기울였습니다. 이와 같이한 주요 이유는 자바스크립트가 언어에 관한 한 최초의 혁신적인 존재였기 때문입니다. 하지만 이와 같은 넷스케이프 중심성은 개정판이 나옴에 따라 서서히 사라져 갔으며 이 책에 이르러서는 거의 찾아볼 수 없게 되었습니다. 그렇다고 해서 제가 인터넷 익스플로러 중심적으로 되었다는 뜻은 아닙니다. 그 대신 최신 개정판은 독립적인 구현이 아니라 표준에 대해 주로 다루었습니다. 코어 자바스크립트 언어를 위한 ECMAScript 버전3 표준이라든가 클라이언트 측 자바스크립트를 위한 W3C DOM 표준과 같은 것들 말이죠. 또 다른 큰 변화는 구조적인 것입니다. 나는 레퍼런스 섹션을 세 개의 파트로 확실히 구분을 지었습니다. 첫 파트는 코어 자바스크립트 객체, 메소드, 프로퍼티에 대한 사항을 정리했습니다. 왜냐하면 자바스크립트는 웹 브라우저 자체보다는 웹 브라우저에서 제공하는 프로그래밍 환경에서 사용되기 때문에 클라이언트측의 자료로부터 자료를 분리해내서 보관하는데 아주 유용하게 사용됩니다. 두 번째 파트는 때때로 레벨 0 DOM이라고 알려진 상속 클라이언트측의 자료를 정리한 것입니다. 이 자료는 개정 3판과는 많이 다르지는 않기 때문에 거리낌없이 읽을 수 있을 겁니다. 세 번째 파트는 모두 새로운 사항입니다(W3C DOM 표준의 레벨1 및 레벨 2로 정의된 객체, 메소드, 프로퍼티에 대해 다루고 있음). 어떤 주어진 프로젝트에서 개발자들이 많은 것을 바꾸지 않고도 상속 API나 새로운 DOM API를 사용해야 할 것이라고 확신하기 때문에 DOM 표준 또는 상속 클라이언트측 참조 자료로부터 분리된 클라이언트측 참조 자료를 준수해왔습니다. 스튜어트: 아까도 말씀하셨듯이 자바스크립트는 웹 브라우저 자체보다는 웹 브라우저에서 제공하는 프로그래밍 환경에서 사용된다는 것을 강조하셨습니다. 이에 대한 구체적인 예를 들어 주시겠습니까? 이 분야에 있어서 자바스크립트의 역할이 더 증대될 것으로 생각하십니까? 플라나긴: 자바스크립트는 모질라 및 넷스케이프 6 GUIs를 구동시키기 위해 사용되었습니다. 이와 같은 용법은 웹 브라우저 내에 있지만 기존의 클라이언트측 자바스크립트보다는 상당히 다른 목적을 위해 사용됩니다. 자바스크립트는 오픈 소스 3차원 모델링 및 K-3D로 알려진 애니메이션 시스템을 위한 스크립트 언어로 사용됩니다. 이외의 몇몇 프로젝트들은 모질라 사이트에 나열되어 있습니다. 이것들 중 일부는 서버측 자바스크립트에 관한 변종들입니다. 나는 자바스크립트를 가능하게 해주는 애플리케이션이 이외에도 많다고 생각하지만 이와 같은 애플리케이션에 대해 충분히 알만큼 주의깊게 이 분야를 따라가고 있지는 않았습니다. 스튜어트: 자바스크립트는 계속해서 발전해 나갈까요? 최신 버전인 자바스크립트 1.5에서 주목할 만한 점이나 중요한 점은 무엇인가요? 플라나긴: 자바스크립트 버전 1.5(ECMAScript 표준의 버전 3에 해당함)의 주요한 새로운 특징으로는 자바 스타일의 try/catch/finally 문장을 처리하는 예외사항 입니다. ECMAScript 버전 3 또한 전체에 걸쳐서 많은 변화가 있었습니다. 그것은 switch 문장 및 정규 표현과 같이 이전에는 표준화되지 않았던 것들을 표준화 시켰습니다. 자바스크립트 1.5에 이르러서는 거의 성숙 단계에 접어들었습니다. 이제 자바스크립트는 표준지원을 꽤 잘하는 것처럼 보이며 다중 독립적 구현 및 안정된 표준, 완벽한 특징을 갖고 있는 것으로 보입니다. 이와 같이 자바스크립트가 성숙단계에 접어들었다고 하더라도 자바스크립트는 계속해서 발전해나갈 것입니다. ECMAScript 표준을 만들었던 ECMA 위원회의 멤버들은 (자바스크립트 2.0에 해당하게 될)ECMAScript 버전 4에서도 계속해서 함께 작업을 해나갈 것입니다. 이 언어의 새로운 버전은 간단한 스크립트 언어를 취하여 웹 페이지 스크립팅 뿐만 아니라 거대 소프트웨어 프로젝트 개발에 적합한 객체 지향 프로그래밍 환경과 완전한 모듈러로 바꾸어 줍니다. 현재 일정은 2002년까지 ECMAScript 버전 4의 출시를 목표로 하고 있습니다. 새로운 버전에는 여러 가지 다루기 힘든 특징들이 있으며 현재 버전보다 훨씬 더 복잡하다고 하더라도 나는 그것이 조만간 곧 웹 페이지에서 일상적으로 사용될 것이라고 기대하지는 않습니다. 하지만 곧 다른 문법이 채택될지도 모릅니다. 스튜어트: 자바스크립트는 웹 개발자의 툴킷에서 확고한 지점을 확보한 것으로 보입니다. 오늘날 웹 개발자들에게 요구되는 지식으로 자바스크립트가 반드시 필요하다고 보십니까? 플라나긴: 물론이죠. 자바스크립트 코드를 접하지 않고 웹에서 작업할 수 없다는 것은 이제 누구나 다 아는 사실이 되었습니다. 몇몇 개발자들은 단지 자바스크립트를 오려내어 붙이는 작업 또는 쿡북에 있는 지식만으로 자바스크립트를 그럭저럭 해나갈 수 있다고 생각할 수 있을지도 모르겠습니다만 장기적인 안목에서 볼 때 이 언어를 배우는데 시간을 들일 필요는 충분히 있다고 봅니다. 스튜어트: 자바스크립트가 사용되는 새롭거나 흥미로운 애플리케이션에는 어떤 것이 있을까요? 플라나긴: 모질라와 넷스케이프 6.x 브라우저는 충분히 "스키너블"하며 다이나믹하게 변화하는 것을 보고 느낄 수 있습니다. 이것은 XML과 자바스크립트에 기반을 둔 XUL이라고 알려진 모질라 기술에 의해 가능하게 되었습니다. 브라우저 윈도우 자체 내에서 사람들은 새로운 DOM 표준으로 정교한 작업을 하고 있습니다. 이러한 작업은 스스로를 분류할 수 있는 HTML 테이블, 브라우저 윈도우 내로 드래그될 수 있는 미니 윈도우, HTML과 CSS, 자바스크립트와 함께 순수하게 클라이언트측으로 나온 바들을 포함합니다(『JavaScript: The Definitive Guide』의 개정판에는 객체를 드래그하고 차트를 끌어내는 방법에 대한 예제가 수록되어 있음). 스튜어트: 오라일리가 지금으로부터 거의 일 년전쯤에 표준 순응에 실패한 넷스케이프 네비게이터 6.0(Netscape Navigator 6.0 to Fail Standards Compliance)이라는 기사를 내보냈을 때 사람들의 동요가 있었던 걸로 기억됩니다. 그때 그 기사는 DOM과 자바스크립트에 대한 문제를 포함하여 넷스케이프 6에 심각한 버그가 있으며 웹 표준을 위한 지원이 부족하다는 내용을 다루었던 걸로 생각되는데요 웹 표준을 위한 넷스케이프의 지원 상태에 대한 최근 소식을 알려주실 수 있겠습니까? 플라나긴: 그 기사는 정말 사람들의 심기를 건드리는 기사였습니다. 많은 개발자들은 여전히 넷스케이프를 더 선호하고 심지어는 넷스케이프에 대한 충성심마저 가지고 있었습니다. 그러나 넷스케이프와 모질라가 업데이트된 브라우저를 탑재할 수 없다는 사실에 실망도 컸던 걸로 생각됩니다. 넷스케이프가 결국에는 브라우저를 탑재할 것이지만 우리가 원하는 것을 모두 실현시킨 것은 아닐 것이라고 내가 지적했을 때 많은 실망스러운 움직임들이 있었던 것으로 보입니다. 그 기사로 인해 넷스케이프는 분노를 감추지 못했으며 그 때문에 나는 "제목에 "실패"라는 말은 쓰지 말았어야 했는데…"라고 뒤늦은 후회를 하기도 했었습니다. 넷스케이프가 곧바로 지적했듯이 넷스케이프 6은 다른 브라우저보다 더 훌륭한 표준을 갖고있다고 발표했습니다. 내가 의도했던 포인트는 넷스케이프 6의 베타 버전 출시는 아직까지 준비되지 않았다는 것이며 쉽게 보완할 수 있는 표준 관계 버그들이 많이 있지만 유연하지 못하고 꽉 짜여진 일정으로 인해 그 버그들을 완전히 수정할 수 없을 것이라는 내용이었는데 말이죠. 개발자들의 간곡한 청에도 불구하고 넷스케이프 6은 원래 계획대로 출시되었습니다. 시간이 경과함에 따라 넷스케이프 6.0은 넷스케이프 6.1과 6.2로 대체되었으며 안정성은 더욱 더 증가되었고 내가 기사에서 지적했던 스펙 및 표준관련 버그들은 모두 수정되었습니다. Shop 버튼과 같이 넷스케이프는 너무 넷스케이프 중심적인 기능을 갖고 있기 때문에 개인적으로 나는 넷스케이프 6.x를 사용하지는 않습니다. 내가 좋아하는 모질라의 파괴적인 특징(광고 전달에서 처럼 특정 서버로부터 이미지를 선택적으로 끌 수 있는 것) 또한 사용할 수 없게 되었습니다. 넷스케이프 6.x 은 웹 표준을 위한 훌륭한 지원을 해왔습니다. 특히 모질라는 넷스케이프보다 더 자주 업데이트되었기 때문에 다른 브라우저보다도 더 훌륭한 표준에 대한 최첨단 지원을 갖고 있습니다. 스튜어트: 모질라 프로젝트를 계속해서 점검해 오신 것처럼 보입니다. 모질라 최신 구조에 대해서 어떻게 생각하십니까? 플라나긴: 모든 조각들을 잘 조합하고 1.0 출시에 대한 종결을 잘 내었다고 생각합니다. 나는 그들의 노고에 박수를 보내지만 내가 모질라를 사용하는 만큼만 여전히 넷스케이프 4.7을 사용하고 있습니다. 왜냐하면 모질라는 여전히 450MHz 리눅스 박스에서 천천히 실행되고 있기 때문에 나는 그렇게 자주 모질라를 사용하지는 않습니다. 몇몇 사람들은 유저 인터페이스를 위해 번역된 XUL에 대한 의존성 때문에 모질라가 느리다고 불평합니다. 내가 시간을 낼 수 있을 때 나는 모질라의 Gecko 렌더링 엔진을 채택한 브라우저로 실험을 해보고 싶습니다. 그렇지만 거기에는 XUL 유저 인터페이스가 없겠지만요. 제 소망은 이러한 브라우저들이 넷스케이프 4의 속도를 가진 모질라의 표준 순응을 가져다주는 것 뿐입니다. 스튜어트: 웹 개발에 있어서 자바스크립트의 역할을 대신할 기술이 있다고 보십니까? 플라나긴: 자바스크립트를 대신할 기술은 없다고 봅니다. 내 저술 작업으로인해 내가 자바스크립트와 자바에만 집중해서 내가 다른 새로운 기술에 관심이 없었던 탓도 있겠지만 나는 자바스크립트가 지금까지처럼 확고한 기술임을 자신합니다. 인터넷 익스플로러는 자바스크립트 대신에 웹 페이지에서 비주얼 베이직을 사용할 수 있지만 과연 얼마나 많은 개발자들이 실제로 그와 같은 작업을 시도할 지는 의심스럽습니다. 스튜어트: 『JavaScript: The Definitive Guide』를 이제 막 업데이트 했습니다. 그렇다면 다음에는 어떤 책을 업데이트 할 생각이십니까? 플라나긴: 『Java in a Nutshell』개정 4판은 자바 1.4를 다루고 있습니다. 그렇다면 자바 1.4를 다루는『Java Examples in a Nutshell』 개정 3판이 나와야겠지요. 스튜어트: 만약 집에 있는 책꽂이에서 가장 자주 이용하는 책을 추천해 달라고 한다면 어떤 책이 되겠습니까? 플라나긴: 다른 프로그래머들처럼 나는 가끔씩 혼자서 내가 진짜 건축가였으면 하고 생각하곤 합니다. 크리스토퍼 알렉산더 공저의 『A Pattern Language』라는 책이 나에게 가장 큰 영감을 준 책이고(나는 현대 프로그래밍 고전인 『Design Patterns)을 쓴 감마와 그의 동료들도 역시 나에게 영향을 주었다고 봅니다.) 이외에 디자인과 관계된 책으로는 빅터 파파넥이 쓴 『Design for the Real World』과 빌 몰리슨이 쓴 『Permaculture: A Designer"s Manual』을 추천하고 싶은데요. 그리고 내가 좋아하는 산문 작가(나는 그의 소설과 시 모두를 좋아함)는 윈델 베리(Wendell Berry)로 아주 재능 많은 에세이 작가이자 단어로 마술을 부리듯 아름다운 작품을 쓰는 사람이죠. 나도 그가 하는 것처럼 힘있고 우아한 작품을 써보고 싶습니다. 나는 그가 쓴 작품은 거의 다 좋아합니다. 그 중에서 두 개만 꼽으라고 한다면 『What are People For?』와 『The Unsetting of America』를 꼽고 싶습니다. 내가 특히 중요하다고 생각되고 내 책꽂이를 장식하고 있다는 것을 자랑스럽게 생각하는 책은 다음과 같습니다.
  • Natural Capitalism: Creating the Next Industrial Revolution by Paul Hawken, Amory Lovins, and L. Hunter Lovins
  • The Ecology of Commerce: A Declaration of Sustainability by Paul Hawken
  • Small is Beautiful: Economics as if People Mattered by E. F. Schumaker
  • Beyond Growth: The Economics of Sustainable Development by Herman Daly
나는 종종 공상과학 소설을 읽었습니다. 이제 나는 공상과학 소설 탐독을 일상적인 돌파구로만 이용합니다. 내가 좋아하는 소설가는 사무엘 델라니로 그의 전집을 거의 완벽하게 구비하여 놓았고 몇몇 책들은 저자의 서명도 있습니다. 물론 내가 좋아하는 구절에는 표시도 해두었지요. 최근에는 닐 스테픈슨의 작품(내가 좋아하는 작품은 『Zodiac』)을 다시 읽었고 약간은 사이버펑키한 작가인 윌리엄 깁슨과 브루스 스털링을 좋아합니다.
TAG :
댓글 입력
자료실