Top

자바스크립트 개론 [체계적인 프로그래밍 수련법]

  • 원서명Eloquent JavaScript: A Modern Introduction to Programming (ISBN 9781593272821)
  • 지은이마레인 하버비케
  • 옮긴이이대엽
  • ISBN : 9788960773868
  • 24,000원
  • 2013년 01월 23일 펴냄
  • 페이퍼백 | 304쪽 | 188*235mm
  • 시리즈 : 웹 프로페셔널, 프로그래밍 언어

책 소개

프로그래밍을 비롯해 자바스크립트에 입문하는 초보자가 읽기에 적합한 책이다. 프로그래밍에 관한 소개부터 웹 프로그래밍에 이르기까지 명쾌한 설명과 간결한 코드를 제시함으로써 체계적으로 자바스크립트를 배울 수 있다. 변수, 제어 흐름, 함수, 자료 구조, 오류 처리 같은 기본적인 프로그래밍 요소를 비롯해 함수형 프로그래밍, 객체지향 프로그래밍, 모듈화, 정규 표현식 같은 고급 주제, 웹 프로그래밍과 관련된 주제까지 빠짐없이 다룬다. 아울러 자바스크립트의 프로토타입 기반 객체지향을 비롯해 자바스크립트의 강력한 언어적 특징들도 배울 수 있으므로, 이미 자바스크립트 프로그래밍을 해본 개발자들도 참고할 만한 내용이 많다.


[ 소개 ]

자바스크립트로 배우는 체계적인 프로그래밍 수련법
핵심을 관통하는 명쾌한 설명과 간결한 예제로 익히는 자바스크립트 프로그래밍 입문

자바스크립트는 구글 앱스, 트위터, 최신 브라우저 기반 게임 등 거의 모든 현대 웹 애플리케이션의 핵심이다. 자바스크립트는 초보자가 갖고 놀 만큼 간단하지만, 장난감처럼 단순하지만은 않다. 자바스크립트는 실전 애플리케이션을 개발하는 데 사용할 수 있는 유연하고 복잡한 언어다.

『자바스크립트 개론』에서는 성장일로에 있는 자바스크립트 언어를 살펴보고 아름답고 효과적인 코드를 작성하는 방법을 알려준다. 이 책의 저자는 독자들이 예제 코드에 몰두하고 처음 시작할 때부터 실습해보길 독려함으로써 프로그램을 만드는 방법을 빠르게 전수해준다. 인공생명 양식 시뮬레이션 같은 예제나 고전 게임인 소코반의 자바스크립트 버전을 따라하다 보면 다음과 같은 내용을 배울 것이다.


[ 이 책에서 다루는 내용 ]

■ 프로그램의 세 가지 핵심 요소인 문법, 제어, 데이터의 이해
■ 프로그램을 체계적이고 명확하게 만들기 위한 객체지향 프로그래밍 기법과 함수형 프로그래밍 기법의 활용 방법
■ 브라우저 조작을 위한 스크립트 작성과 기초적인 웹 애플리케이션 제작 방법
■ 정규 표현식과 XMLHttpRequest 객체의 활용 방법


[ 예제 코드 ]

프로그래밍은 예술이고 실습을 통해 가장 잘 익힐 수 있으므로 모든 예제 코드는 인터넷상의 실습 페이지에서 확인하고 실행할 수 있다. 『자바스크립트 개론』을 가이드 삼아 저자의 코드를 다듬고 확장하고 수정하거나 통째로 버리고 직접 처음부터 작성할 수도 있다. 그러다 보면 자신도 모르는 사이에 웹의 언어에 유창해질 것이다. 이 책에 나오는 코드를 실행하거나 활용하고 싶다면 http://eloquentjavascript.net/에서 제공하는 예제 코드를 이용하면 된다. 또는 에이콘출판사의 도서정보 페이지 http://acornpub.co.kr/book/eloquent-javascript에서 다운로드할 수도 있다.



[ 이 책의 구성 ]

처음 세 개 장(1장~3장)에서는 자바스크립트 언어를 소개하고 문법적으로 올바른 자바스크립트 프로그램을 작성하는 방법을 가르친다. 여기서는 제어 구조와 함수(여러분만의 연산을 작성한다), 자료 구조를 소개한다. 이 정도만 배워도 간단한 프로그램을 작성하는 데 충분할 것이다.

이런 프로그래밍에 대한 기초적인 이해를 바탕으로 다음 네 개 장(4~7장)에서는 좀 더 고급 기법을 살펴본다. 여기서 고급 기법이라 하면 이해할 수 없는 쓰레기로 만들지 않고도 좀 더 복잡한 프로그램을 작성할 수 있게 만들어주는 것을 말한다. 먼저 4장에서는 오류 처리와 예상치 못한 상황에 관해 알아본다. 그런 다음 5장과 6장에서는 함수형 프로그램과 객체지향 프로그래밍이라는 추상화에 대한 두 가지 주된 접근법을 소개한다. 7장에서는 프로그램을 조직화된 상태로 유지하는 방법에 관해 몇 가지를 충고한다.

나머지 장에서는 이론에 덜 치중하고 자바스크립트 환경에서 이용할 수 있는 도구에 관해 좀 더 알아본다. 8장에서는 텍스트 처리에 이용하는 하위 언어(sublanguage)를 소개하고, 9장에서부터 12장까지는 브라우저 내에서 프로그램이 실행 중일 때 프로그램에서 이용 가능한 기능을 설명한다. 즉, 웹 페이지를 조작하고, 사용자 행동에 반응하며, 웹 서버와 통신하는 방법을 알아본다.

저자/역자 소개

[ 저자 서문 ]

1970년대에 최초로 소개된 개인용 컴퓨터에는 대부분 간단한 프로그래밍 언어(베이직의 변종)가 탑재돼 있었으며, 컴파일러와 상호작용하려면 이러한 언어를 사용해야 했다. 이는 기술적으로 서툰 사람들이 단순한 컴퓨터 활용만으로도 수월하게 프로그래밍을 해볼 수 있었음을 의미했다.

오늘날, 1970년대에 비해 몇 배는 강력해지고 저렴해진 컴퓨터에서는 소프트웨어 인터페이스로 언어 대신 마우스를 조작하는 번듯한 그래픽 인터페이스가 제공되는 추세다. 이로써 컴퓨터는 훨씬 더 이용하기 편해졌고 전체적으로 대단히 향상됐다. 하지만 동시에 컴퓨터 사용자와 프로그래밍 세계 사이에는 장벽이 생기기도 했다. 즉, 컴퓨터가 취미인 사람들은 컴퓨터를 켜자마자 쓸 수 있는 프로그래밍 환경이 준비돼 있는 게 아니라 스스로 프로그래밍 환경을 적극적으로 구축해야 한다.

내부적으로 컴퓨터 시스템에는 여전히 다양한 프로그래밍 언어가 들어 있다. 이러한 언어는 대부분 초기 개인용 컴퓨터에서 제공되던 베이직 계열의 언어보다 훨씬 개선된 것이다. 이를테면 이 책에서 다루는 자바스크립트 언어는 모든 주류 웹 브라우저에서 지원한다.

프로그래밍에 대해

이 책에서는 자바스크립트를 설명하는 것뿐만 아니라 프로그래밍의 기본 원칙도 소개한다. 곧 드러나겠지만 프로그래밍은 어렵다. 근본적인 규칙은 대개 간단하고 명확하지만, 이러한 기초적인 규칙을 토대로 만들어진 프로그램은 자체적인 규칙과 복잡성이 생길 정도로 복잡해지곤 한다. 이런 이유로 프로그래밍은 간단한 경우가 드물고 예측하기도 불가능하다. 프로그래밍 분야의 창시자로 통하는 도날드 커누스(Donald Knuth)가 말했듯이 프로그래밍은 과학이라기보다는 예술에 가깝다.

이 책에서 뭔가를 얻으려면 수동적으로 책을 읽는 것만으로는 부족하다. 예리함을 견지하려 하고, 예제 코드를 이해하려고 노력하며, 본문의 내용을 충분히 이해하고 난 후에만 진도를 나가야 한다.

프로그램의 정의는 다양하다. 프로그램은 프로그래머가 입력하는 텍스트 조각이자 컴퓨터가 어떤 일을 하게끔 지시하는 것이며, 컴퓨터 메모리에 존재하는 데이터이자 동일한 메모리상에서 수행되는 동작을 제어하기도 한다. 프로그램을 우리에게 친근한 사물과 비교하는 것만으론 충분하지 않으며, 겉모습을 기준으로 보면 프로그램은 기계다. 기계식 손목시계를 구성하는 장치는 서로 기가 막히게 맞아떨어지며, 시계공의 솜씨가 좋다면 몇 년 동안 정확하게 시간을 보여줄 것이다. 프로그램을 구성하는 요소는 이와 비슷한 방식으로 서로 맞아떨어지며, 프로그래머가 자신이 하는 일을 잘 이해하고 있다면 그가 짠 프로그램도 문제없이 실행될 것이다.

컴퓨터는 이처럼 실체가 없는 기계의 주인 역할을 하도록 만들어진 기구다. 컴퓨터 자체는 우직하게 간단한 일만을 수행할 수 있다. 컴퓨터가 아주 유용한 이유는 이런 일들을 믿을 수 없을 만큼 빠른 속도로 해내기 때문이다. 프로그램에서는 아주 복잡한 일을 수행하기 위해 어마어마한 양의 간단한 동작을 기발한 방식으로 구성할 수 있다.

컴퓨터 프로그램을 작성하는 일을 마치 흥미진진한 게임처럼 느끼는 이들도 있다. 프로그램은 생각을 토대로 만들어진다. 프로그램은 만드는 데 비용이 들지 않으며, 무게도 없고, 손으로 입력하는 것만으로도 손쉽게 규모를 늘릴 수 있다. 하지만 조심하지 않으면 프로그램의 크기와 복잡성은 감당할 수 없을 정도로 커져서 그것을 만든 사람조차도 혼란스럽게 만든다. 이처럼 프로그램을 제어할 수 있는 상태로 유지하는 것은 프로그래밍에서 가장 중요한 문제다. 동작하는 프로그램은 아름답다. 프로그래밍이라는 예술은 복잡성을 제어하는 솜씨와도 같다. 훌륭한 프로그램은 차분하며, 복잡성 안에 단순함이 깃들어 있다.

오늘날 대다수 프로그래머들은 프로그램 내에서 이해하기 쉬운 자그마한 기법을 쓰는 것만이 이러한 복잡성을 관리하는 가장 좋은 방법이라고 믿는다. 프로그래머들은 프로그램이 지녀야 할 형태에 관한 엄격한 규칙들(모범 사례)을 만들었고, 특히 매우 열성적인 프로그래머들은 이러한 규칙을 어기는 자들을 형편없는 프로그래머라고 비난하기도 한다.

이는 프로그래밍의 풍요로움에 대한 매우 적대적인 태도다. 즉, 뭔가 쉽게 이해할 수 있고 예측 가능한 것으로 제한하려 하고, 모든 요상하고 아름다운 프로그램에 금기를 두려는 것과 다를 바 없다. 프로그래밍 기법은 매우 거대하고, 다양성이라는 측면에서 대단히 흥미로우며, 개척되지 않은 미답의 분야다. 여기엔 미숙한 프로그래머가 온갖 종류의 끔찍한 실수를 저지르게 하는 함정과 덫이 깔려 있는 게 분명하지만, 이는 조심스럽게 나아가고 침착하게 대응할 준비를 해야 한다는 의미에 불과하다. 배움을 더할수록 항상 새로운 도전과 개척해야 할 영역이 기다리고 있다. 탐험을 계속하길 거부하는 프로그래머라면 분명 정체 상태에서 벗어날 수 없고, 즐거움을 잊어버리며, 프로그래밍하려는 의지를 잃을 것이다(그리고 관리자가 될 것이다).

자바스크립트란 무엇인가?

자바스크립트는 현재 월드와이드웹(World Wide Web) 페이지에서 일어나는 온갖 종류의 멋진(그리고 때로는 짜증나는) 일들을 하는 데 주로 사용되는 언어다. 최근 몇 년간 자바스크립트는 다양한 환경에서 사용되기 시작했다. 예를 들면 자바스크립트로 빠른 서버 측 프로그램을 작성하는 수단인 node.js 프레임워크는 최근에 상당한 주목을 끌고 있다. 프로그래밍에 관심이 있다면 자바스크립트는 확실히 배우기에 유용한 언어다. 웹 프로그래밍을 그다지 많이 해본 적이 없더라도 이 책에서 보여줄 일부 프로그램은 여러분 곁에 계속 남아 다른 언어로 작성하는 프로그램에 영향을 줄 것이다.

자바스크립트 언어에 관해 안 좋은 소리를 하는 사람도 있다. 그들의 말 중에는 맞는 이야기도 많다. 처음으로 자바스크립트를 시작하고 나서 나는 금세 자바스크립트를 경멸하기에 이르렀다. 자바스크립트는 내가 입력하는 것은 거의 무엇이든 받아들였는데, 내가 의미하는 바와는 전혀 다른 식으로 해석했던 것이다. 인정하건대 이는 내가 뭘 하고 있는지 전혀 몰랐다는 사실과 관계가 깊었지만, 실제 문제는 자바스크립트가 (허용하는 범위 내에서는) 터무니없을 정도로 자유롭다는 점이었다. 이러한 설계에 깔린 사상은 초심자가 자바스크립트로 프로그래밍하는 것을 용이하게 하려는 의도였다. 실제로 이러한 의도는 주로 프로그램 내에서 발생한 문제를 더 찾기 어렵게 만들었는데, 시스템에서 그러한 문제를 지적하지 않기 때문이었다.

하지만 이와 같은 자바스크립트 언어의 유연함은 장점이기도 하다. 자바스크립트는 좀 더 엄격한 언어에서는 불가능한 갖가지 기법들을 활용할 여지를 주고, 이런 기법들을 자바스크립트의 일부 단점을 극복하는 데 활용할 수 있다. 그런 기법을 적절히 배워서 잠시 다뤄보고 나니 정말 이 언어를 좋아하게 됐다.

이름과는 달리, 자바스크립트(JavaScript)는 자바(Java)라는 프로그래밍 언어와는 거의 관련이 없다. 이름이 비슷한 것은 적절한 판단이라기보다는 마케팅 차원에서 영감을 받은 것이다. 1995년에 자바스크립트가 넷스케이프에 도입됐을 때 자바는 마케팅에 심혈을 기울여 대중적인 인기를 끌고 있었다. 분명 누군가가 자바의 성공에 편승하는 것이 좋겠다고 생각했을 것이다. 하지만 지금은 이름 때문에 혼란만 과중될 뿐이다.

자바스크립트와 관계된 것으로 ECMAScript라는 것이 있다. 넷스케이프 외의 브라우저가 자바스크립트 또는 비슷한 뭔가를 지원하기 시작했을 때 자바스크립트 시스템이 동작하는 방식을 정확하게 설명하는 문서가 작성됐다. 이 문서에 기술된 언어를 ECMAScript라고 하며, ECMAScript는 이것을 표준화하는 조직의 이름을 딴 것이다. ECMAScript는 일반 목적용 프로그래밍 언어를 기술하며, 이 언어를 웹 브라우저에 통합하는 데 관해서는 아무것도 언급하지 않는다.

자바스크립트에는 7가지 ‘버전’이 있다. 이 책에서는 ECMAScript 버전 3을 설명하며, 이 버전은 다양한 브라우저에서 폭넓게 지원된(그리고 지금도 폭넓게 지원되는) 첫 번째 버전이다. 지난 몇 년간 ECMAScript를 대폭 개선하려는 여러 움직임이 있었지만, (적어도 웹 프로그래밍의 경우에는) 여러 브라우저에서 폭넓게 지원될 때만 이러한 개선의 결과가 유용하며, 브라우저에서 온전히 지원하기까지는 다소 시간이 걸릴 것이다. 다행히도 새로운 버전의 자바스크립트는 주로 ECMAScript 3의 확장판이 될 것이므로, 이 책에 적힌 거의 대부분의 내용은 계속 유효할 것이다.


[ 저자 소개 ]

마레인 하버비케(Marijn Haverbeke)
프로그래밍 언어의 열성적인 팬이자, 여러 언어에 능통하다. 코모도어(Commodore)에서 BASIC 게임을 한 뒤로 C++ 시절을 거쳐 주로 동적 언어로 데이터베이스 시스템과 웹 API를 탐구하는 현재에 이르렀다. 아울러 각종 인기 있는 오픈소스 프로젝트를 만들고 유지 보수하고 있다.


[ 옮긴이의 말 ]

그야말로 자바스크립트의 전성시대다. 그동안 갖은 오해를 받아온 자바스크립트는 이제 업계에서 가장 관심받는 프로그래밍 언어로 자리 잡았고, 그 기세를 꺾을 만한 언어는 당분간 보기 힘들 것 같다. Ajax로 시작해서 Node.js까지, 웹을 보조하는 도구에 불과한 것으로 여겨졌던 자바스크립트 언어는 이제 서버 측 프로그래밍까지 활동 영역을 넓혀가고 있다.

이처럼 자바스크립트의 인기가 날로 높아지고는 있지만 일각에서는 자바스크립트 프로그래밍을 여전히 어렵게 받아들이는 사람이 많다. 이런 사람들은 대개 자바스크립트 언어를 폼 유효성 검증을 위한 스크립트로만 사용해 왔을 것이다. 아울러 강력한 프로토타입 기반 객체지향과 유연한 타입 시스템 같은 자바스크립트의 특징을 오히려 번거롭고 성가신 요소로 여기는 사람도 많을 것이다. 하지만 본문에도 나오지만 ‘큰 힘에는 큰 책임이 따르는 법’이다. 자바스크립트의 특장점을 십분 활용하려면 그에 걸맞은 노력이 필요하다. 그러자면 자바스크립트라는 프로그래밍 언어를 제대로 익히는 데 도움이 될 만한 실질적인 가이드가 필요하다.

이 책은 바로 이러한 ‘실질적인 가이드’에 해당하는 책이다. 먼저 프로그래밍 자체, 그리고 프로그래밍을 둘러싼 배경 지식을 소개하면서 초보자의 관점에서 프로그래밍이란 무엇인가를 알려준다. 이어서 자바스크립트를 통해 프로그래밍 전반에 관해 배운다. 초보자는 이 책을 통해 프로그래밍에 입문할 수 있고, 프로그래밍 경험이 있는 경우에는 자바스크립트 프로그래밍을 제대로 익힐 수 있다. 더불어 핵심을 관통하는 명쾌한 설명과 간결한 예제는 다른 두껍고 지루한 자바스크립트 입문서에 지친 사람에게 자바스크립트를 다시 한 번 제대로 배울 수 있는 기회를 만들어줄 것이다. 그리고 아직 프로그래밍이나 자바스크립트에 입문하지 않았다면 두말할 나위 없이 이 책이 안성맞춤일 것이다.

참고로 이 책의 내용은 상당 부분 인터넷에 공개돼 있다. http://eloquentjavascript.net에서는 이 책의 원문을 읽어보거나 예제 코드를 직접 실행해볼 수 있다. 적은 분량으로 프로그래밍과 자바스크립트라는 주제를 한 번에 잘 다룰 수 없으리라는 의구심이 든다면 위 사이트에서 직접 확인하길 바란다. 게다가 이 책의 내용을 토대로 쓴 커피스크립트 책도 있으니 내용상의 검증은 이미 돼 있다고 생각한다.

그동안 자바스크립트에 관한 책은 많았지만 상당수 자바스크립트를 너무 피상적으로 소개하거나, 특정 주제만 다루거나 세세한 사항 하나하나까지 다루는 책들이 많았다. 초보자가 자바스크립트에 입문하기에 딱 적합한 책을 찾기가 힘들었는데, 이 책이 바로 그러한 책이고, 내가 직접 우리말로 번역하는 기회까지 누릴 수 있게 됐다. 자바스크립트에 입문하고자 하는 사람들에게 자신 있게 추천할 수 있는 책이 하나 생긴 것 같아 감회가 새롭다.


[ 옮긴이 소개 ]

이대엽
책 만드는 일을 하고 있으며 이따금 IT 관련 서적을 번역하기도 한다. 좋은 책을 펴내거나 직접 우리말로 옮겨 독자에게 전하는 데 큰 즐거움을 느끼며, 옮긴 책으로는 『개념을 잡아주는 프로그래밍 정석』, 『Modular Java 모듈라 자바』, 『시작하세요! 맥 OS X 라이언』, 『도메인 주도 설계』, 『이거 불법 아냐?』, 『자율학습! 안드로이드 프로그래밍』, 『하이버네이트 완벽 가이드』 등이 있다.

목차

목차
  • 1장 자바스크립트 기초: 값, 변수, 제어 흐름
      • 숫자
      • 산술 연산
      • 문자열
      • 단항 연산자
      • 불리언 값, 비교, 불리언 로직
      • 표현식과 문장
    • 변수
      • 키워드와 예약어
    • 환경
      • 함수
      • prompt와 confirm
      • print 함수
      • 환경 변경
    • 프로그램 구조
      • 조건부 실행
      • while과 do 반복문
      • 코드 들여쓰기
      • for 반복문
      • 반복문 빠져나오기
      • 간결한 방식의 변수 갱신
      • switch를 이용한 분기
      • 대문자화
      • 주석
    • 타입에 관해
      • 미정의 값
      • 자동 타입 변환
      • 자동 타입 변환의 위험성
      • &&와 ||
  • 2장 함수
    • 함수 정의 해부
      • 정의 순서
      • 지역 변수
      • 중첩된 유효 범위
      • 스택
      • 함수 값
      • 클로저
      • 선택 인자
    • 기법
      • 중복 방지
      • 순수함
      • 재귀
  • 3장 자료 구조: 객체와 배열
    • 문제: 막내 이모의 고양이
    • 기본적인 자료 구조
      • 프로퍼티
      • 객체 값
      • 집합으로서의 객체
      • 변경 가능성
      • 컬렉션으로서 객체: 배열
      • 메소드
    • 막내 이모의 고양이 문제 해결하기
      • 단락 분리
      • 관련 단락 찾기
      • 고양이 이름 추출
      • 전체 알고리즘
      • 코드 정리
      • 날짜 표현
      • 날짜 추출
      • 더 많은 정보 수집
      • 데이터 표현
    • 심화 이론
      • 인자 객체
      • 미진한 부분 마무리
      • 수학 객체
      • 열거형 프로퍼티
  • 4장 오류 처리
    • 문제 유형
      • 프로그래머의 실수
      • 런타임 오류
    • 오류 처리
      • 특별한 값 반환
      • 예외
      • 예외가 발생한 후의 정리
      • 오류 객체
      • 처리하지 않은 예외
      • 선택적인 예외 포착
    • 자동화된 테스트
    • 5장 함수형 프로그래밍
    • 추상화
    • 고차 함수
      • 함수 수정
      • reduce 함수
      • 배열 매핑
    • 은둔자에 관한 슬픈 이야기
      • HTML
      • 은둔자의 텍스트 파일
      • 단락 찾기
      • 강조와 각주
      • 각주 옮기기
      • HTML 생성
      • 은둔자의 책 변환
    • 기타 함수형 비법
      • 연산자 함수
      • 부분 적용
      • 함수 합성
  • 6장 객체지향 프로그래밍
    • 객체
      • 메소드 정의
      • 생성자
      • 프로토타입 기반 생성
      • 생성자와 프로토타입
      • 프로토타입 오염
      • 객체를 사전으로
      • 인터페이스 구체화
    • 생태계 시뮬레이션 구축
      • 테라리엄 정의
      • 공간 내의 지점
      • 격자 표현
      • 벌레의 프로그래밍 인터페이스
      • 테라리엄 객체
      • this와 this의 유효범위
      • 생기 불어넣기
      • 움직임
      • 더 다양한 생명체
      • 다형성
    • 좀 더 생생한 시뮬레이션
      • 상속
      • 에너지 파악
      • 식물 추가
      • 초식 동물
      • 활기 불어넣기
      • 인공적인 아둔함
    • 원형 상속
      • 타입 정의 유틸리티
      • 타입으로서의 프로토타입
      • 객체의 세계
      • instanceof 연산자
      • 타입 섞어 쓰기
  • 7장 모듈화
    • 모듈
      • 예제
      • 파일 형태의 모듈
    • 모듈의 형태
      • 로컬 네임스페이스로서의 함수
      • 모듈 객체
    • 인터페이스 설계
      • 예측 가능성
      • 구성 가능성
      • 계층형 인터페이스
      • 인자 객체
    • 라이브러리
  • 8장 정규 표현식
    • 문법
      • 문자 집합 매칭
      • 단어와 문자열 경계 매칭
      • 반복 패턴
      • 하위 표현식 그룹화
      • 후보 선택
    • 매칭과 치환
      • match 메소드
      • 정규 표현식과 replace 메소드
      • RegExp 객체의 동적 생성
    • .ini 파일 처리
    • 정리
  • 9장 웹 프로그래밍: 단기 속성 과정
    • 인터넷
      • URL
      • 서버 측 프로그래밍
      • 클라이언트 측 프로그래밍
    • 웹 스크립트 작성 기초
      • window 객체
      • document 객체
      • 타이머
      • 폼 스크립팅
      • 자동 포커스
    • 브라우저 비호환성
    • 추가 참고 자료
  • 10장 문서 객체 모델
    • DOM 요소
      • 노드 링크
      • 노드의 유형
      • innerHTML 프로퍼티
      • 노드 찾기
      • 노드 생성
      • 생성 도우미 메소드
      • 노드 이동
      • print 구현
    • 스타일시트
      • style 프로퍼티
      • 노드 숨기기
      • 배치
      • 노드 크기 제어
    • 당부의 말
  • 11장 브라우저 이벤트
    • 이벤트 핸들러
      • 핸들러 등록
      • 이벤트 객체
      • 마우스 관련 이벤트 타입
      • 키보드 이벤트
      • 이벤트 중지
      • 이벤트 객체의 정상화
      • 초점 추적
      • 폼 이벤트
      • 윈도우 이벤트
    • 예제: 소코반 구현
      • 레벨 입력 형식
      • 프로그램 설계
      • 게임판 표현
      • 컨트롤러 객체
  • 12장 HTTP 요청
    • HTTP 프로토콜
    • XMLHttpRequest API
      • 요청 객체 생성
      • 단순 요청
      • 비동기 요청
      • XML 데이터 조회
      • JSON 데이터 읽기
      • 기초적인 요청 래퍼

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.65: 2행]
alert 함수는 다른 인자를 무시하고 Hello를 출력한다.
->
alert 함수는 다른 인자를 무시하고 "안녕하세요"를 출력한다.