Top

개발자와 디자이너가 함께 보는 자바스크립트 프로그래밍

  • 원서명Learning JavaScript : A Hands-On Guide to the Fundamentals of Modern JavaScript (ISBN 9780321832740)
  • 지은이팀 라이트(Tim Right)
  • 옮긴이이대엽
  • ISBN : 9788960777101
  • 30,000원
  • 2015년 05월 27일 펴냄 (절판)
  • 페이퍼백 | 456쪽 | 188*235mm
  • 시리즈 : 웹 프로페셔널

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

요약

자바스크립트를 체계적으로 배우는 가장 확실한 방법! 기존의 자바스크립트 책과는 전혀 다른 구성이 돋보이는 보기 드문 책이다. 이 책은 점진적 기능 향상으로 시작해 기본적인 자바스크립트 코드 작성법, 관련 웹 개발 기법 등 다양한 주제가 한데 어우러져 있다. 따라서 자바스크립트뿐 아니라 웹 개발에 관심이 있는 개발자나 디자이너가 자바스크립트를 체계적으로 시작하고 가장 현대적인 코드 작성법을 배우는 데 적합하다. 아울러 프론트엔드 개발이라는 큰 그림을 놓치지 않고 그 안에서 자바스크립트를 적절히 활용하는 데 주안점을 두고 있기에 기존의 자바스크립트 프로그래머들도 배울 만한 내용이 많을 책이다.

추천의 글

“현대적인 웹 인터페이스, 서버 측 기술, HTML5 게임에서, 오늘날 자바스크립트는 그 어떤 때보다도 매우 중요하고 두루 사용되는 도구로 자리매김했다. 자바스크립트를 시작하려고 하거나 자바스크립트라는 언어의 실제적인 핵심 지식을 좀 더 깊이 있게 이해하고자 하는 분들에게 이 책을 적극 추천한다.”
- 에반 버차드(Evan Burchard) / 독립 웹 개발자

“전에 자바스크립트에 관한 다른 책을 두어 권 정도 읽어봤지만, 백엔드 개발자로서 이 책을 읽으며 짜릿한 흥분을 느꼈다. ‘점진적 기능 향상’과 ‘단계적 기능 축소’의 의미 차이를 설명한 부분은 프론트엔드 개발을 처음 접하는 사람이 잘 이해할 수 있는 방식으로 정리돼 있다. 팀, 정말 멋집니다!”
- 조 데본(Joe Devon) / StartupDevs.com의 공동 설립자

“팀 라이트는 자바스크립트를 배우려는 초보 프론트엔드 개발자를 위한 유쾌한 실용서를 써냈다. 이 책의 강점은 자바스크립트를 잘 소개하고 있을뿐더러 자바 스크립트를 언제 어디에 사용해야 할지에 대한 맥락을 잘 보여준다는 사실이다.”
- R. S. 도이엘(R. S. Doiel) / USC 웹 서비스의 선임 소프트웨어 엔지니어

“현대적인 자바스크립트 개발을 굉장히 잘 소개한 책이다. 흥미진진한 미래까지 이어지는 자바스크립트의 역사를 다루며 시작하는 이 책은 초보 개발자가 현업에서 실제 응용할 수 있는 방법을 알려준다. 내가 초보일 때 이 책이 나왔더라면 좋았을 텐데!”
- 힐리샤 헤이굿(Hillisha Haygood) / 스포팅 뉴스의 선임 웹 개발자

“팀은 최전선에서 점진적 기능 향상을 유지하면서 자바스크립트 코드를 작성하기 위한 귀중한 기법들을 선사한다. 자바스크립트를 처음 접하는 사람들에게 이 책은 소중한 자산이 될 것이다. 기초적인 사항을 모두 다룬 다음 곧바로 터치 이벤트, Ajax, HTML5 API로 넘어가는 이 책의 예제는 명료하며 이해하기도 쉽다. 이 책을 읽고 나면 큰 효과를 낼 수 있는 자바스크립트를 언제 어떻게 사용해야 할지 배울 수 있을 것이다.”
- 톰 리드베터(Tom Leadbetter) / 프리랜서 웹 디자이너

“초보 개발자와 베테랑 개발자 모두에게 가치 있는 책이다. 읽기 쉽게 구성되어 있고 자바스크립트에 익숙해지는 단계별 과정을 알려주는 책으로서 특히 초보 개발자에게 매우 좋다. 베테랑 개발자는 어느새 까맣게 잊어버렸을 다양한 모범사례를 떠올릴 수 있을 것이다.”
- 크리스토퍼 스웨너(Christopher Swenor) / zMags의 기술 부문 과장

이 책에서 다루는 내용

■ 새 프로그램을 작성하거나 기존 코드를 효율적으로 수정하는 데 필요한 모든 자바스크립트 개념과 기술
■ 디자인과 개발에 쓰일 견고하고 안전한 코드 작성
■ 사용성, 재사용성, 접근성, 명료함, 보안, 성능의 극대화
■ 코드가 실행될 브라우저 환경의 완벽 활용
■ 행위와 데이터 상호작용을 만들어 내기 위한 DOM 접근
■ 손쉽고 효율적인 접근을 위한 데이터 저장
■ 변수, 함수, 반복문을 비롯한 핵심 언어 기능 활용
■ 이벤트를 통한 사용자와의 상호작용
■ Ajax를 통한 서버와의 통신
■ 자바스크립트 라이브러리를 활용한 생산성 향상

이 책의 대상 독자

이 책은 자바스크립트에 관해 알고 싶은 초보 웹 디자이너나 개발자를 위한 책이다. 이 책을 읽기 전에 HTML과 CSS에 관해 알고 있어야 하며, 점진적 기능 향상(progressive enhancement)의 개념에 친숙해야 한다. 이 책은 완전 초보를 비롯해 자바스크립트에 관한 지식을 넓히고자 하는 숙련된 웹 베테랑에게도 똑같이 도움될 수 있다. 이 책을 통해 빠르게 변화하는 업계에 관해 좀 더 배우고 싶어하는 열정이 스며들길 바란다.

저자/역자 소개

지은이의 말

자바스크립트에 관한 책을 쓰기로 마음먹었을 때 이 언어를 배우는 법이 자연스럽게 느껴지는 식으로 책을 만들고 싶었다. 나는 자바스크립트를 학교나 책에서 배우지 않았다. 내가 알고 있는 자바스크립트 지식은 현실 세계의 애플리케이션과 시행착오, 자기 동기부여에서 나온 것이다. 나는 여러분이 이 책의 내용을 금세 따라가면서도, 자바스크립트 언어에 대한 탄탄한 기반을 다질 수 있고 지나치게 많은 정보로 위압감을 느끼지는 않게 하는 독특한 방식으로 정보를 제공하고 싶었다. 전반적으로는 신속하게 진행하지만 기본적으로 구획을 나눠 구간마다 집중적이고 명확하게 공부했던 나의 학습 경험을 살려 이 책의 내용을 설명하고자 노력했다. 자바스크립트 언어는 한 번에 모든 것을 배운다면 혼란스러울 수 있다. 동일한 작업을 달성하는 데는 수백 가지의 방법이 있는데, 대부분은 꼭 알아야 할 필요가 없는 기법들이다. 따라서 이 책에서는 같은 작업을 하기 위한 지나치게 많은 방법을 보여주기보다는 한 가지라도 정말 잘 해내는 데 집중할 수 있도록 최선을 다했다.

이 책의 구성은 기존 자바스크립트 책과는 조금 다르다. 전 책에 걸쳐 용어를 빈번하게 소개하고 용어가 새로 등장할 때마다 설명하면 독자들은 한 번에 너무 많은 정보를 주입 받는다는 느낌이 들 수 있다. 이렇게 되면 당면한 주요 문제에 집중하는 것을 방해한다. 나는 아무도 읽지 않는 용어집을 따로 실어 용어를 설명하는 대신 이 책의 초반부에 집어넣어 이러한 문제를 해결했다. 이와 같은 내용을 담은 초반부에서 여러분은 자바스크립트 언어에 담긴 각종 핵심 개념을 간결하게 설명한 내용도 읽을 수 있다. 이런 방식을 통해, 자질구레한 용어 정의에 귀중한 시간을 낭비하지 않아도 되고 우리가 함께 하는 이 짧은 시간 동안 최대한 많은 지식을 얻는 데 집중할 수 있다.

자바스크립트 같은 견고한 언어를 배우는 과정은 언뜻 보기에는 어려운 일처럼 보일지도 모르지만 그리 심각하지는 않으니 걱정할 필요는 없다. 기초 개념을 이해하고 나면 나머지는 말을 배우는 과정과 같다. 언어를 적절히 조직화하는 방법과 성능 최적화, 그리고 무엇보다도 CSS를 사용해야 하는 시점 등이 다소 어려울 수는 있다. 이 책을 거의 다 읽을 때쯤이면 자바스크립트를 책임감 있게 사용함으로써 더 나은 사용자 경험을 효과적으로 만들어내는 데 필요한 지식들을 모두 얻게 될 것이다.

자바스크립트는 놀랍도록 다채로운 역사를 지녔으며 전망이 매우 밝은 언어다. 이 책을 읽는 과정에서 자바스크립트라는 언어의 기초적인 사항들을 배울 것이며, 동시에 HTML5 자바스크립트 API와 터치가 가능한 인터페이스를 제작하는 방법 등 좀 더 수준 높은 주제에 관해서도 익힐 수 있을 것이다. 자바스크립트는 분명히 코드이지만 지루함과는 거리가 멀다는 사실을 확실히 알게 될 것이다. 자바스크립트를 이용해 꽤 멋들어진 인터페이스도 만들 수 고, 그 과정에서 재미도 느낄 수 있으리라.

이 책이 오래도록 여러분에게 도움을 주고 자바스크립트에 지속적인 관심을 갖게 할 발판이 되길 바란다. 자바스크립트를 배우는 여정의 첫 단계로 이 책을 선택한 여러분을 환영한다. 이미 자바스크립트를 알고 있는 분이라면, 다시 찾아주어 반갑다.

지은이 소개

팀 라이트(Tim Wright)

2004년부터 웹 디자이너이자 프론트엔드 개발자로 활동해 왔으며, 주로 CSS, HTML5, 접근성, 사용자 경험에 관심을 두고 데스크톱에서 모바일 기기로 자연스럽게 확장되는 능력을 갖춘 애플리케이션을 구축해 왔고, 전국의 다양한 대학교에서 근무해 오면서 그 과정에서 웹 표준의 발전을 도모해왔다. 아울러 스매싱 매거진(Smashing Magazine), 사이트포인트(SitePoint), 웹 디자이너 디팟(Web Designer Depot)과 같은 인기 있는 웹 디자인 관련 사이트에 HTML5와 CSS3부터 사용자 경험과 고급 자바스크립트 기법에 이르기까지 프론트엔드 개발의 모든 부문에 관해 수많은 글을 기고해 왔다. 또한, 자신의 개인 블로그인 csskarma.com을 통해 많은 글을 쓰고 있다. 팀은 버지니아공대에서 마케팅경영 학사학위를 받았으며, 그래픽 디자인을 전공했다.

옮긴이의 말

자바스크립트가 프론트엔드를 위한 가장 강력한 언어로 자리매김한 지 벌써 수년이 지났지만 시중에 나온 책 가운데 극히 일부를 제외하면 초보자에게 올바른 자바스크립트 코딩 기법을 체계적으로 알려주는 책은 많지 않다. 게다가 기존에 나온 책들은 대부분 자바스크립트 문법이나 코드 작성법에만 초점을 맞추고 있고 실제 프로젝트에서 자바스크립트를 올바르게 활용하는 방향이나 기법에 대해서는 다루지 않는 경우가 대부분이다. 하지만 실제 프로젝트에서는 단순히 자바스크립트 코드를 잘 작성하는 것은 기본이고 자바스크립트라는 기술이 본연의 목적을 잘 달성하고, 다른 요소와 조화롭게 어우러지게끔 적절히 배치하고 구성하는 등의 기술도 필요하다. 이 책에는 현장에서 꼭 필요로 하는 현대적인 자바스크립트 개발 방법론이 간결하게 정리돼 있다. 기본적인 자바스크립트 코드 작성법은 물론, 점진적 기능 향상(progressive enhancement)과 단계적 기능 축소(graceful degradation) 등의 현대적인 자바스크립트 개발 기법, 효율적인 코드 구성, 웹의 동작 원리와 HTML5 자바스크립트 API, 외부 라이브러리 활용법 등 자바스크립트 개발을 둘러싼 다양한 주제를 간결하고도 빠짐없이 소개한다. 게다가 웹 개발을 처음 시작하는 개발자나 디자이너도 읽고 이해할 수 있을 정도로 쉽게 쓰여 있어서 웹 개발에 막 입문한 분들이 올바른 자바스크립트 개발 기법을 체계적으로 익히는 데 적당하다. 요즘 자바스크립트는 전례 없는 부흥기를 맞고 있다. Node.js 같은 서버 측 자바스크립트까지 나오면서 자바스크립트는 활동 영역을 급격히 확대해 나가고 있으며, 새로 만들어지는 오픈소스 프로젝트에서도 자바스크립트가 압도적으로 많이 사용되고 있다. 이 같은 자바스크립트의 부흥기에 이런 책이 나왔다는 것이 반갑고, 이 책을 번역할 수 있게 되어 감사하다.

옮긴이 소개

이대엽

책 만드는 일을 하고 있으며, 이따금 IT 관련 서적을 번역하기도 한다. 『자바 API 디자인』 『풀스택 자바스크립트 개발』 『테스트 주도 개발로 배우는 객체 지향 설계와 실천』 『자바스크립트 개론』 『모듈라 자바』 『시작하세요! 맥 OS X 라이언』 『도메인 주도 설계』 『하이버네이트 완벽 가이드』 『개념을 잡아주는 프로그래밍 정석』 등을 번역했다.

목차

목차
  • 1장 점진적 기능 향상
    • 점진적 기능 향상의 정의
      • 역사
      • 목적
      • 접근성
      • 재사용성
      • 점진적 기능 향상 대 단계적 기능 축소
    • 구조 계층
      • HTML5에 의미 더하기
    • 표현 계층
      • 인라인 CSS
      • 스타일시트 연결
    • 행위 계층
      • 인라인 자바스크립트
      • 내장 자바스크립트
      • 외부 및 분리형 자바스크립트
    • 점진적 기능 향상의 혜택
      • 성능
      • 미래를 위한 대비
      • 터치 인터페이스
    • 점진적 기능 향상에 관한 마지막 조언
    • 정리
    • 연습문제

  • 2장 브라우저에서의 자바스크립트
    • 자바스크립트의 민중사
      • 기원
      • 점진적 기능 향상
      • 행위 계층
      • 오늘을 지나서
    • 브라우저와 자바스크립트의 상호작용
      • HTTP 요청
      • 자바스크립트와 렌더링 엔진
    • 자바스크립트가 할 수 있는 일
      • HTML 변경
      • 서버와의 통신
      • 데이터 저장
    • 자바스크립트를 사용하는 법
      • 사용자 경험 개선
      • 책임감 있게 자바스크립트 사용
      • 실패 처리 기법 작성
    • 자바스크립트를 사용하는 데 도움되는 도구
      • 언어에 내장된 도구
      • 브라우저에 내장된 도구
    • 정리
    • 연습문제

  • 3장 자바스크립트 용어
    • 기초
      • 문서 객체 모델
      • 부모
      • 자식
      • 형제
      • 변수
      • 문자열
      • 주석
      • 연산자
      • use strict
    • 저장소
      • 캐시
      • 배열
      • 쿠키
      • 자바스크립트 객체 표기법
      • 객체
    • 상호작용 생성
      • 반복문
    • 조건문
      • switch 문
      • 함수
      • 익명 함수
      • 콜백 함수
      • 메소드
      • 이벤트
      • Ajax
    • 정리
    • 연습문제

  • 4장 DOM 접근
    • DOM이란 무엇인가?
    • DOM 트리
      • 엘리먼트 노드
      • 텍스트 노드
      • 속성 노드
    • 엘리먼트 노드 사용
      • ID를 이용한 엘리먼트 선택
      • 태그 이름을 이용한 엘리먼트 선택
      • 클래스를 이용한 엘리먼트 선택
      • 자바스크립트에서 CSS 선택자를 이용한 노드 선택
    • 속성 노드 사용
      • 속성 구하기
      • 속성 설정
      • 속성 제거
    • 텍스트 노드 다루기와 콘텐츠 변경
    • DOM 탐색
      • 첫 번째 자식과 마지막 자식에 접근
      • DOM에서 동적으로 노드를 추가하거나 제거
      • DOM에 엘리먼트 추가
      • DOM에서 엘리먼트 제거
    • 정리
    • 연습문제

  • 5장 자바스크립트에서의 데이터 저장
    • 변수
      • 문자열
      • 숫자
      • 불린
      • 변수의 성능
    • 배열
      • 기본 배열
      • 연관 배열
      • 다차원 배열
      • 배열에 데이터 넣기
      • 배열 메소드 사용
    • join
    • slice
    • shift와 unshift
    • 러닝
    • pop
    • concat
    • sort
    • 객체
      • 객체의 성능
    • JSON
      • JSON 사용의 이점
      • API 사용
    • HTML5의 웹 스토리지
      • localStorage와 sessionStorage
    • setItem
    • getItem
    • removeItem
      • JSON을 이용한 데이터 덩어리 저장
      • 책임감 있는 웹 스토리지 사용
    • 정리
    • 연습문제

  • 6장 변수, 함수, 반복문
    • 변수 정의
      • 변수 그룹화
      • 예약어
    • 함수
      • 기본 함수
      • 익명 함수
    • 유효범위
      • 함수를 이용한 함수 호출
      • 데이터 반환
      • 메소드로서의 함수
    • 반복문
      • for 문
    • 조건문
      • if 문
      • if/else 문
      • switch 문
      • if와 switch
    • 종합 예제
    • 정리
    • 연습문제

  • 7장 이벤트를 통한 사용자와의 상호작용
    • 이벤트 첨부
      • 이벤트 핸들러
      • 이벤트 리스너
      • 이벤트 바인딩
      • 이벤트 바인딩 해제
    • 마우스 이벤트와 키보드 이벤트
      • click
      • focus와 blur
      • 접근성
      • change
      • mouseover와 mouseover(호버)
      • submit
      • 기본 동작 방지
      • keydown, keypress, keyup
      • 종합 예제
    • 터치와 방향 이벤트
      • touchstart와 touchend
      • touchmove
      • orientationchange
      • 터치 이벤트 지원
    • 종합 예제
    • 정리
    • 연습문제

  • 8장 Ajax를 이용한 서버와의 통신
    • Ajax의 역사
      • 서버 통신
      • XMLHttpRequest
    • Ajax 호출 생성
      • 서버에 요청 전송
      • 서버에서 데이터 돌려받기
      • 반복적인 Ajax 호출
    • Ajax 데이터 형식
      • XML
      • HTML
      • JSON
    • Ajax 접근성
      • 라이브 영역과 ARIA
    • 자주 저지르는 Ajax 관련 실수
      • 피드백 제공
    • 종합 예제
    • Ajax는 어디로 가고 있나?
    • 정리
    • 연습문제

  • 9장 코드 구성
    • 일반적인 코드 작성 스타일 규칙
      • 유효범위
      • 빨리 실패하기
      • 사용자 경험
    • 코드 설계
      • 파일과 디렉토리
      • 문서 내의 스크립트
      • 변수 선언
      • 변수와 함수의 명명
      • 주석
      • 들여쓰기
      • 공백
      • 문장 공백
      • 줄바꿈
      • 수학과 연산자
      • eval( ) 사용
      • 스타일 가이드를 과도하게 받아들이기
    • 코드 구조
      • 함수
      • 익명 함수
      • 변수로서의 함수
      • 메소드로서의 함수
      • 자바스크립트 개발 패턴
    • 정리
    • 연습문제

  • 10장 라이브러리 활용
    • 자바스크립트 라이브러리 기초
      • 라이브러리 학습 과정
      • 문법
      • 목표에 집중
      • 지름길 트기
      • 브라우저 문제 해결
      • 인기 있는 라이브러리
    • 제이쿼리 기초
      • document.ready
      • 선택자
      • DOM 탐색
      • 스타일 정보 추가
      • 이벤트 바인딩
      • 애니메이션
    • 제이쿼리 중급
      • 제이쿼리의 Ajax 활용
      • 제이쿼리에서의 데이터 순회
      • 함수 연쇄 호출
    • 플러그인을 통한 라이브러리 확장
      • 플러그인 제작
    • 라이브러리의 좋은 점
      • 대중성과 커뮤니티
      • 효율적인 코드
    • 라이브러리의 나쁜 점
      • 부하
      • 성능
      • 과도한 의존과 유통 기한
    • 마이크로라이브러리의 활용
      • 좋은 점
      • 나쁜 점
    • 정리
    • 연습문제

  • 11장 HTML5 자바스크립트 API
    • HTML5란 무엇인가?
    • 마크업(HTML로도 알려진)
      • 더 나은 시맨틱 만들기
      • 좀 더 접근성 높은 콘텐츠 제작
    • 자바스크립트 API
      • navigator 객체
      • 지오로케이션
      • 오디오와 비디오
      • 히스토리 API
      • 웹 워커
    • 디바이스 API
      • 배터리 상태 API
      • 진동 API
      • 네트워크 정보 API
    • 기능 탐지를 이용한 디바이스 API 활용
    • 정리
    • 연습 문제

  • 12장 자바스크립트를 통한 전진
    • 핵심 주제에 대한 간략한 복습
      • 점진적 기능 향상
      • DOM 조작
      • 데이터 저장소
      • 서버 통신
    • 디자이너를 위한 자바스크립트
      • 고급 인터페이스 디자인
      • 자바스크립트에서의 CSS 변환
      • 데스크톱에서의 상호작용
    • 개발자를 위한 자바스크립트
      • 자바스크립트 템플릿
      • NodeJS를 이용한 서버 측 자바스크립트
    • 정리
    • 연습문제

  • 부록 A 모범 답안

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[pp.131-132 ; 아래서 7행]
- 예제 4.9.1 새 엘리먼트를 생성하는 HTML 예제