모든 학문 분야가 마찬가지겠지만, 특히 IT 분야에서 새로운 지식을 습득할 때 가장 중요한 것은 바로 그 분야의 핵심 원리를 정확히 이해하는 것이다. 이러한 원리를 정확히 이해하지 않은 개발 관련 지식으로 프로젝트를 진행했다가는 초기에는 빠른 성과를 낼 수 있을지 모르지만, 결국에는 안다고 대충 넘어갔던 부분이 개발자의 발목을 잡을 것이며 이는 프로젝트 지연으로 이어질 수 있다.
필자가 처음에 자바스크립트 관련 공부를 처음 시작했을 때도 바로 이와 같은 실수를 범했었다. 자바스크립트를 배우기 전까지만 해도 필자의 주요 언어는 C, Java였다. 자바스크립트를 제대로 배우지 않은 여느 개발자처럼 필자는 자바스크립트가 굉장히 쉬운 언어이며, 무조건 코드를 가져다 쓰면 쉽게 개발할 수 있는 것으로 생각했었다. 처음에는 이런 식으로 결과물을 만들어 낼 수 있었지만, 점점 프로젝트 범위가 늘어나면서 자바스크립트 특성에 대해서 제대로 이해하지 않고 넘어갔던 사소한 부분들이 문제를 일으켰으며, 이 때문에 많은 고생을 했던 기억이 아직도 생생하다.
급기야 자바스크립트 언어를 통해 서버 기반 프로그래밍을 할 수 있게끔 해주는 Node.js 프로그래밍을 진행했을 때 필자는 결국 두 손을 들고 말았다. Node.js 개발 경험이 있는 개발자들은 아마 이해할 수 있을 것이다. 자바스크립트 언어의 특성을 제대로 이해하는 것이 얼마나 중요한 것인지를.
아무튼 그 결과 필자는 다시 자바스크립트 기본 문법부터 제대로 이해하며 공부를 시작했다. 역시나 필자가 안다고 넘어갔던 많은 자바스크립트의 문법들이 자세히 살펴보니 실제로는 정확히 아는 것이 아니었던 것이다. 학습법에 대해서 얘기할 때 가장 중요한 것이 바로 자신이 무엇을 모르는지를 정확히 파악해야 한다는 것이다. 그래야 무엇을 집중해서 공부해야 하는지를 정확히 파악할 수 있기 때문이다. 이후 필자는 자바스크립트 책을 정독하며 자바스크립트의 언어적 특성을 이해하기 위해 노력했다.
이 책은 필자의 이러한 노력의 산물이다. 요즘도 마찬가지이지만, 집필 당시에도 많은 자바스크립트 관련 서적이 출간되고 있었고 다양한 예제 및 설명을 다루고 있었지만, 자바스크립트의 문법과 언어적인 특성을 국내 개발자들의 입맛에 맞게 다룬 서적을 찾기 힘들었다. 그래서 필자는 이 책의 공저자인 고현준님과 함께 자바스크립트 입문자나 중급 개발자를 위해 자바스크립트 핵심을 가장 잘 설명한 국내 서적을 집필을 하기로 마음 먹게 됐고, 그 결과물이 바로 이 책이 된 것이다.
물론 이 책은 자바스크립트의 모든 것을 다룬 바이블은 아니다. 그러나 자바스크립트를 제대로 공부하고자 하는 독자들에게 여러 자바스크립트 응용 기술들을 소화할 수 있는 기초 체력을 기를 수 있게 도와주는 좋은 가이드가 될 것이라 믿어 의심치 않는다.
끝으로 이 책이 나오게 끔 항상 응원과 격려를 아끼지 않았던 나의 사랑하는 아내 현정이와 사랑스런 아들 승민에게 고마움을 전한다.