Top

모던 자바스크립트 Modern JavaScript [최신 웹 환경을 위한 자바스크립트 개발 기법]

  • 원서명Modern JavaScript: Develop and Design (ISBN 9780321812520)
  • 지은이래리 울맨
  • 옮긴이조경빈
  • ISBN : 9788960775329
  • 40,000원
  • 2014년 02월 28일 펴냄
  • 페이퍼백 | 684쪽 | 188*235mm
  • 시리즈 : 웹 프로페셔널

책 소개

요약

『모던 자바스크립트 Modern JavaScript』는 지금까지 출간된 자바스크립트 개발서 중 자바스크립트 언어의 핵심을 가장 정확히 다룬 책이다. 대부분 자바스크립트 서적이 언어의 기본은 잊은 채 당장 써먹을 수 있는 단순한 예제를 나열하는 데 급급했다면, 이 책은 자바스크립트라는 언어에 대한 가장 기본적인 이해부터 제대로 된 활용까지를 탁월한 저자의 내공으로 쉽고 명쾌하게 알려 준다. 또한, 구식 자바스크립트 개발 기법을 넘어 최신 웹 환경의 사이트를 구축할 수 있는 새롭고 트렌디한 자바스크립트 개발 기법을 다루며, 어떤 형태의 개발방식을 사용해야 크로스 브라우저 환경에서 제대로 된 동작을 보장할 수 있는지에 대해서도 상세히 설명한다. 이 책은 자바스크립트를 처음 배우려는 개발자에게는 언어에 대한 제대로 된 이해와 접근 방법을 제공하며, 경험이 있는 개발자에게는 자바스크립트에 대한 오해를 해소하고 올바른 개발 접근방식을 제공함으로써 한 단계 발전할 수 있도록 도와준다.

이 책에서 다루는 내용

■ 친절한 단계별 설명, 이해를 돕는 다양한 일러스트레이션과 명료한 예제
■ 실력 향상을 위한 실전 기술 설명
■ 웹 전문가의 모범 사례에 대한 통찰력
■ 최신 브라우저와 다양한 기기에서 자바스크립트 지원 여부와 관계없이 높은 신뢰도로 동작하는 코드를 만드는 전략

이 책의 대상 독자

이 책은 주로 다음과 같은 독자를 대상으로 한다.

■ 자바스크립트에 대해 아무런 사전 지식이 없고 프로그래밍 경험도 없는 독자
■ 자바스크립트에 대해 약간의 지식은 있지만, 자바스크립트를 왜 사용해야 하고, 어떻게 사용해야 하는지 제대로 배우고 싶은 독자

여러분은 다른 언어로는 개발을 해봤지만, 자바스크립트는 제대로 다뤄본 적이 없는 웹 개발자일 수도 있다. 또는 그래픽 업무를 주로 담당하는 웹 디자이너이지만 자바스크립트를 배워야겠다고 느낀 사람일 수도 있다. 어떤 경우건 간에 최신 자바스크립트를 이해하고 어떻게 사용하는지 알고 싶다면 이 책은 가장 좋은 선택이다.

이 책의 구성

이 책의 내용을 읽으면서 다양한 예제를 작성하다 보면 자바스크립트란 무엇이고, 자바스크립트로 어떻게 프로그램을 작성하는지 알 수 있다. 이 책의 주요 내용은 크게 3부로 구성했다.

1부 시작

1부에서는 자바스크립트의 역사와 최근 웹에서의 역할을 소개한다. 기본적인 용어와 개념을 배우고 웹 페이지에서 HTML과 자바스크립트를 함께 사용하는 방법을 살펴본다. 1부의 마지막 장은 자바스크립트를 사용해서 개발과 디자인, 디버그, 테스트할 때 사용하는 도구의 형태와 종류에 대해 전반적으로 살펴본다.

2부 자바스크립트 기초

2부는 가장 양이 많고 중요한 부분으로 자바스크립트의 핵심 요소인 데이터 타입의 종류와 연산자, 제어구조, 함수 정의, 이벤트 처리, Ajax 등을 다루며, 두 개의 장에 걸쳐 브라우저와 HTML 폼을 집중적으로 다룬다.

3부 심화 단계

모든 책은 다룰 수 있는 내용에 한계가 있기 마련이다. 그렇기에 이 책에서 자바스크립트의 모든 내용을 다룰 수는 없으며, 책의 목적이 자바스크립트 고수를 만들기 위함도 아니다. 하지만 3부에서는 자바스크립트 프로그래머로서 앞으로 알아나가야 하는 내용을 소개하고자 한다. 13장은 프레임워크에 대해 소개하고, 14장은 고급 자바스크립트의 개념을 설명하며, 15장에서는 실제로 적용할 수 있는 웹 애플리케이션을 자바스크립트와 PHP를 사용해서 함께 만든다.

저자/역자 소개

저자 서문

자바스크립트는 오늘날 가장 널리 사용되는 프로그래밍 언어 중 하나로, 거의 모든 웹 페이지에 쓰인다. 지난 10년 동안 자바스크립트를 사용하는 방법에 대한 경제적 변화와 확장 사이에서 점점 더 웹 개발자와 디자이너는 당연히 자바스크립트라는 언어를 알아야 한다는 공감대가 형성됐는데, 아이러니하게도 이런 분위기 탓에 자바스크립트는 진정한 프로그래밍 언어가 아니라는 인식이 확산됐다. 뿐만 아니라 아직도 많은 책에서는 자바스크립트를 간단한 기능이나 재미있는 요소를 추가하는 데 사용하는 기술이라고 소개하고 있다. 이 책은 자바스크립트에 대한 이런 잘못된 인식을 바로잡으려는 데 목적이 있으며, 오늘날의 동적인 웹 사이트에서 자바스크립트를 제대로 활용하는 방법을 이해하기 쉽게 설명한다.

저자 소개

래리 울맨(Larry Ullman)

기술서 저자이며 웹과 소프트웨어 개발자, 트레이너, 강사, 발표자, 컨설턴트 등 다양한 직업을 가지고 있다. 22권의 책과 수많은 글을 작성한 그의 책을 읽어본 독자라면 누구나 알겠지만, 래리는 복잡하고 어려운 기술적 내용을 쉽게 글로 풀어내는 재주를 가진 유능한 저자다.

옮긴이의 말

자바스크립트는 이미 20년에 가까운 역사를 가진 언어며, 오랜 역사를 지닌 만큼 자바스크립트를 다룬 책은 이미 많이 나왔습니다. 당연한 이야기지만, 저자의 손을 거쳐 세상에 빛을 보는 모든 책은 다들 자신들의 책이 단연 최고라고 말합니다. 이 책에서조차 ‘이 책은 이제까지 나온 자바스크립트 서적 중 단언컨대 최고입니다.’라고 말한다면 너무 진부하게 들릴 수 있다는 사실 또한 잘 알고 있습니다. 하지만 지금까지 몇 권의 자바스크립트 책을 읽었던 독자라면, 이 책을 펴서 몇 페이지만 읽어 봐도 왜 제가 이 책을 최고의 자바스크립트 책으로 추천하는 데 주저하지 않는지 이해하시리라 생각합니다.

이 책의 본문에도 언급되는 내용으로 자바스크립트와 자바는 태생과 언어적 특성에서 본질적으로 전혀 다른 언어임에도 불구하고 자바스크립트라는 이름 탓에 자바 언어와 혼동하는 분을 많이 볼 수 있습니다. 심지어 국내 유명 온라인 서점조차도 JAVA(자바)라는 카테고리의 하위에 자바스크립트 관련 서적을 배치하고 있으니 말입니다. 자바스크립트는 IT 업계 종사자뿐만 아니라 해당 분야와 직접 관련이 없는 분조차도 개인 홈페이지나 블로그를 만들면서 한두 번 정도는 들어보셨거나 사용해보신 경험이 있을 정도로 우리에게 친숙한 언어입니다. 하지만 이 언어를 제대로 이해하고 사용하는 사람의 수도 작고 제대로 다루는 책도 적은 것이 현실입니다.

자바스크립트라는 언어가 가진 특유의 낮은 진입장벽으로 인해서 이 언어를 사용하는 개발자나 다루는 책에서조차도 자바스크립트를 간단한 기능이나 재미있는 요소를 추가하는 데 사용하는 가벼운 기술이라 여겨온 것도 사실입니다. 하지만 요즘의 웹 환경에서 자바스크립트는 매우 중요한 역할을 맡고 있으며 더는 가볍게 여길 수 없는 핵심 언어로 자리를 잡았습니다. 이 책은 지금까지 자바스크립트에 대해 사람들이 가져온 오해나 편견을 바로잡고 인식을 개선하는 데 주요한 목적을 두고 있습니다. 과거의 정적이고 단순한 웹서비스와 달리 날로 복잡해지고 동적 기능을 요구하는 최신의 웹서비스를 구현하기 위해서는 무엇보다도 자바스크립트에 대한 제대로 된 이해가 필수며 제대로 된 크로스 브라우저 지원을 위해서도 자바스크립트에 대한 정확한 이해는 필수입니다.

저는 몇 년 전에 인프라웨어에서 브라우저의 엔진 개발 업무를 맡아 수행하면서 자바스크립트라는 언어를 사용해서 웹사이트를 구현하는 업무가 아닌 자바스크립트 엔진의 동작 자체를 구현하는 일을 경험했고, 당시 브라우저마다 서로 다른 자바스크립트 엔진 동작 형태에 대해 깊은 고민을 한 적이 있습니다. 일반적으로 언어를 배울 때 직접 언어의 문법을 익히고 활용하는 과정을 거치게 되는 데 반해, 저는 운 좋게도 브라우저를 개발하면서 자바스크립트의 기능을 직접 구현하는 소중한 경험을 했고 이는 자바스크립트라는 언어를 좀 더 제대로 이해하는 데 큰 도움이 되었습니다. 이때 이후로 단순한 활용서 수준의 자바스크립트 서적에 많은 아쉬움을 느끼고 있던 차에 이 책을 만났고 정말 제대로 자바스크립트를 다룬 책이라는 것을 확인했을 때 아주 반가운 마음이 들었습니다.

이 책의 번역을 맡은 일은 제겐 영광스러운 경험이었고 제대로 된 자바스크립트 서적을 자신 있게 소개해 드릴 수 있어서 기분이 좋습니다. 이런 좋은 기회를 주신 에이콘 출판사 모든 분께 진심으로 감사드립니다. 그리고 무엇보다도 이 책을 선택해 이 글을 읽고 있는 독자 여러분에게 진심으로 고맙습니다. 부디 이 책이 자바스크립트 고급개발자로 나아가는 데 큰 도움이 되기를 희망합니다.

옮긴이 소개

조경빈

중학교 때 처음으로 8비트 컴퓨터를 만지기 시작하면서부터 프로그래밍에 흥미를 느끼기 시작했으며, 인프라웨어에서 웹 브라우저 엔진 개발에 참여했고 현재는 게임개발사 셀바스에서 모바일 게임 개발에 전념하고 있다. 형식에 얽매이는 일을 가장 싫어하며, 새롭고 흥미로운 세상 모든 일, 그리고 사람들을 즐겁게 하는 일에 관심이 많다. 대학 시절부터 다수의 전시회 출품과 공모전 입상 경력이 있으며, 가장 최근에는 SKT T스토어 제1회 공모전 스마트폰 게임 부문에서 입상했다.

목차

목차
  • 1장 자바스크립트의 재발견
  • 2장 자바스크립트 활용
  • 3장 유용한 도구
  • 4장 간단한 변수 타입
  • 5장 제어구조
  • 6장 복합 변수 타입
  • 7장 함수 생성하기
  • 8장 이벤트 처리
  • 9장 자바스크립트와 브라우저
  • 10장 폼 다루기
  • 11장 Ajax
  • 12장 에러 처리
  • 13장 프레임워크
  • 14장 고급 자바스크립트
  • 15장 PHP와 자바스크립트

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p. 45 그림 1.7]
화살표 1번과 4번의 방향이 거꾸로 되어있음

1번 화살표: URL 요청 (클라이언트 → 웹 서버) 4번 화살표: HTML, CSS, 자바 스크립트 (웹 서버 → 클라이언트)

[p. 145 7행]
if ( (email.value.langth > 0) → if (email.value.langth > 0)

[p. 145 17행]
if ( (document.getElementById('email').value.length > 0) { ...
→ if (document.getElementById('email').value.length > 0) { ...

[p. 150 9번 단계의 코드 중 3행]
calcForm → theForm

[p. 152 아래에서 9행]

[p. 156 아래에서 8행]
total += parseFloat(shipping, 10); → total += parseInt(shipping, 10);

[p. 171 두 번째 코드블럭에서 1, 2, 3, 4행]
&& → ||

[p. 215 2행]
getTimeZoneOffset() → getTimezoneOffset()

[p. 216 2행 4행]
var now = Date(); → var now = new Date();

[p. 232 7번 단계 중 4, 6행]
numbers → messaage

[p. 236 마지막 코드블록의 for문에서 1행]
count → count1

[p. 246 아래에서 1행]

[p. 246 에서 8행]
if (chapter.startPage == 'number') {
→ if (typeof chapter.startPage == 'number') {

[p. 273 4번 단계에서 7, 9행]
numbers → message

[p. 317 그림 8.1과 8.2]
seconds → milliseconds

[p. 318 4번 단계에서 3행]
seconds → milliseconds

[p. 332 5번 단계에서 2행]
setHandlers (e) → setHandlers()

[p. 338 8행]
addEventListener() 메서드를 지원하지 않는 → addEventListener() 메서드를 지원하는

[p. 346 아래에서 4행]
폼 제출 에러 처리와 → 폼 제출 이벤트 처리와

[p. 388 1행]
insertBefore → replaceChild

[p. 412 11번 단계에서 3행]
setThemeCookie(theme) → setTheme(theme)

[p. 500 9행]

[p.508 HTML코드 중 8, 9행]
Comments → comments

[p.515 11번 단계에서 1행]
contact.js → content.js

[p.520 11번 단계 아래에서 1행]

[p.532 11번 단계 아래에서 9행]
assert(!isNaN(volume)) → assert(!isNaN(colume)