개발자와 디자이너가 함께 보는 자바스크립트 프로그래밍
- 원서명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)의 개념에 친숙해야 한다. 이 책은 완전 초보를 비롯해 자바스크립트에 관한 지식을 넓히고자 하는 숙련된 웹 베테랑에게도 똑같이 도움될 수 있다. 이 책을 통해 빠르게 변화하는 업계에 관해 좀 더 배우고 싶어하는 열정이 스며들길 바란다.
목차
목차
- 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는 어디로 가고 있나?
- 정리
- 연습문제
- 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 모범 답안
도서 오류 신고
정오표
정오표
[pp.131-132 ; 아래서 7행]
- 예제 4.9.1 새 엘리먼트를 생성하는 HTML 예제