이 책은 초보자에게도 쉽게 이해할 수 있도록 쉬운 어체로 쓰여있습니다.
그냥 보통 책을 읽듯이 술술 읽히기 때문에, 비전공자나 자바스크립트를 접해보지 않은 사람들에게도 잘 맞을 것 같아요.
그렇다고 예제가 적은 것도 아니고 700개가 넘는 예제가 수록되어 있기 때문에 어느 정도의 기본이 된 사람들에게도 도움이 될 것 같아 보입니다.
최신 버전을 적용하여 4년 만에 다시 집필한, 전면개정판
<모던 웹을 위한 JavaScript + jQuery 입문>은 많은 독자님들의 사랑을 받았습니다. 이번에 발행한 3판은 최신 버전을 적용하여 2013년 개정판 이후 4년 만에 다시 집필한, 전면개정판입니다.
HTML5, ECMAScript 5, jQuery 3.X를 활용한 클라이언트 개발
현대 흐름에 맞게 ECMAScript 5로 자바스크립트의 기능을 자세하게 설명한다. 또한 jQuery 3.X를 통해 클라이언트 개발과 관련된 지식을 습득한다.
Node.js를 활용한 서버 개발
웹 개발은 클라이언트와 서버를 함께 이해해야 원하는 것을 만들 수 있다. 따라서 자바스크립트를 기반으로 서버를 개발할 수 있게 하는 Node.js 플랫폼을 활용해 서버 개발과 관련된 개념, MySQL을 활용해 데이터베이스와 관련된 개념을 함께 습득한다. 따라서 이 책 한 권으로 웹 개발과 관련된 전반적인 지식을 모두 살펴볼 수 있다.
ECMAScript 6 추가 설명
아직 사용하기 이르다고 생각할 수 있지만, 3판에서는 국내 최초로 ECMAScript 6와 관련된 내용도 수록했다. 에어비앤비(Airbnb)의 자바스크립트 가이드 라인에 따라 현재 시점에 사용할 수 있는 범위의E CMAScript 6와 관련된 내용을 추가적으로 설명한다.
700개가 넘는 예제와 개념을 확인할 수 있는 연습문제
자바스크립트, jQuery, Node.js, Ajax, MySQL 등을 설명하기 위해 700개가 넘는 예제들이 수록되어 있다. 간단한 문법을 살펴보기 위한 예제뿐 아니라 수학을 활용한 움직임 구현, RESTful 웹 서비스, 피벗 플러그인 개발 등을 모두 수록해 입문에서 활용까지 살펴볼 수 있도록 했다.
어떤 독자를 위한 책인가?
-. 자바스크립트와 jQuery를 처음 배우는 사람
-. 자바스크립트와 jQuery를 함께 공부하는 개발 입문자와 디자이너
-. 자바스크립트와 jQuery의 최신 변경 사항을 확인하려는 개발자
PART 1 JavaScript
CHAPTER 1 개요
__1.1 자바스크립트의 역사
__1.2 자바스크립트의 활용
__1.3 자바스크립트의 종류
__1.4 Visual Studio 2015 Express for Web 설치
__1.5 Visual Studio 2015 Express for Web 인증받기
__1.6 HTML 파일 만들기
__1.7 오류 확인 방법
__ [연습문제]
CHAPTER 2 기본 문법
__2.1 기본 용어
__2.2 출력
__2.3 문자열 자료형
__2.4 숫자 자료형
__2.5 불 자료형
__2.6 변수
__2.7 자료형 검사
__2.8 undefined 자료형
__2.9 입력
__2.10 숫자와 문자열 자료형 변환
__2.11 불 자료형 변환
__2.12 일치 연산자
__2.13 조금 더 나아가기
__ [연습문제]
CHAPTER 3 조건문
__3.1 if 조건문
__3.2 if else 조건문
__3.3 중첩 조건문
__3.4 if else if 조건문
__3.5 switch 조건문
__3.6 삼항 연산자
__3.7 짧은 조건문
__ [연습문제]
CHAPTER 4 반복문
__4.1 반복문의 장점
__4.2 배열
__4.3 while 반복문
__4.4 do while 반복문
__4.5 for 반복문
__4.6 for in 반복문
__4.7 중첩 반복문
__4.8 break 키워드
__4.9 continue 키워드
__4.10 조금 더 나아가기
__ [연습문제]
CHAPTER 5 함수
__5.1 익명 함수
__5.2 선언적 함수
__5.3 매개변수와 리턴 값
__5.4 매개변수
__5.5 가변 인자 함수
__5.6 리턴 값
__5.7 내부 함수
__5.8 콜백 함수
__5.9 함수를 리턴하는 함수
__5.10 클로저
__5.11 자바스크립트 내장 함수
__5.12 조금 더 나아가기
__ [연습문제]
CHAPTER 6 객체
__6.1 객체 개요
__6.2 속성과 메서드
__6.3 객체와 반복문
__6.4 객체 관련 키워드
__6.5 객체의 속성 추가와 제거
__6.6 객체와 배열을 사용한 데이터 관리
__6.7 함수를 사용한 객체 생성
__6.8 조금 더 나아가기
__ [연습문제]
CHAPTER 7 생성자 함수
__7.1 생성자 함수 개요
__7.2 프로토타입
__7.3 new 키워드
__7.4 캡슐화
__7.5 상속
__7.6 조금 더 나아가기
__ [연습문제]
CHAPTER 8 기본 내장 객체
__8.1 기본 자료형과 객체의 차이점
__8.2 Object 객체
__8.3 Number 객체
__8.4 String 객체
__8.5 Array 객체
__8.6 Date 객체
__8.7 Math 객체
__8.8 ECMAScript 5 Array 객체
__8.9 ECMAScript 5 String 객체
__8.10 조금 더 나아가기
__ [연습문제]
CHAPTER 9 브라우저 객체 모델
__9.1 브라우저 관련 객체
__9.2 window 객체
__9.3 새로운 window 객체 생성
__9.4 window 객체의 기본 메서드
__9.5 screen 객체
__9.6 location 객체
__9.7 navigator 객체
__9.8 window 객체의 onload 이벤트 속성
__9.9 조금 더 나아가기
__ [연습문제]
CHAPTER 10 문서 객체 모델
__10.1 문서 객체 모델과 관련된 용어 정리
__10.2 문서 객체 만들기 1
__10.3 문서 객체 만들기 2
__10.4 문서 객체 만들기 3
__10.5 문서 객체 가져오기 1
__10.6 문서 객체 가져오기 2
__10.7 문서 객체 가져오기 3
__10.8 문서 객체의 스타일 조작
__10.9 문서 객체 제거
__10.10 조금 더 나아가기
__ [연습문제]
CHAPTER 11 이벤트
__11.1 이벤트의 종류
__11.2 이벤트 관련 용어 정리
__11.3 고전 이벤트 모델
__11.4 이벤트 발생 객체와 이벤트 객체
__11.5 이벤트 강제 실행
__11.6 인라인 이벤트 모델
__11.7 디폴트 이벤트 제거
__11.8 이벤트 전달
__11.9 인터넷 익스플로러 이벤트 모델
__11.10 표준 이벤트 모델
__ [연습문제]
CHAPTER 12 예외 처리
__12.1 예외 처리 개요
__12.2 기본 예외 처리
__12.3 고급 예외 처리
__12.4 예외 객체
__12.5 에러와 예외
__12.6 예외 강제 발생
__12.7 조금 더 나아가기
__ [연습문제]
PART II jQuery
CHAPTER 13 기본
__13.1 개요
__13.2 다운로드
__13.3 $(document).ready( )
__13.4 기본 선택자
__13.5 자손 선택자와 후손 선택자
__13.6 속성 선택자
__13.7 필터 선택자
__13.8 배열 관리
__13.9 객체 확장
__13.10 jQuery 충돌 방지
__13.11 조금 더 나아가기
__ [연습문제]
CHAPTER 14 문서 객체 선택과 탐색
__14.1 기본 필터 메서드
__14.2 문서 객체 탐색 종료
__14.3 특정 위치의 문서 객체 선택
__14.4 문서 객체 추가 선택
__14.5 문서 객체의 특징 판별
__14.6 특정 태그 선택
__14.7 조금 더 나아가기
__ [연습문제]
CHAPTER 15 문서 객체 조작
__15.1 문서 객체 조작의 개요
__15.2 문서 객체의 클래스 속성 추가
__15.3 문서 객체의 클래스 속성 제거
__15.4 문서 객체의 속성 검사
__15.5 문서 객체의 속성 추가
__15.6 문서 객체의 속성 제거
__15.7 문서 객체의 스타일 검사
__15.8 문서 객체의 스타일 추가
__15.9 문서 객체의 내부 검사
__15.10 문서 객체의 내부 추가
__15.11 문서 객체 제거
__15.12 문서 객체 생성 1
__15.13 문서 객체 생성 2
__15.14 문서 객체 삽입 1
__15.15 문서 객체 삽입 2
__15.16 문서 객체 이동
__15.17 문서 객체 복제
__ [연습문제]
CHAPTER 16 이벤트
__16.1 이벤트 개요
__16.2 이벤트 연결 기본
__16.3 간단한 이벤트 연결
__16.4 이벤트 연결 제거
__16.5 매개변수 context
__16.6 이벤트 객체
__16.7 이벤트 강제 발생
__16.8 기본 이벤트와 이벤트 전달
__16.9 이벤트 연결 범위 한정
__16.10 마우스 이벤트
__16.11 키보드 이벤트
__16.12 윈도우 이벤트
__16.13 입력 양식 이벤트
__16.14 조금 더 나아가기
__ [연습문제]
CHAPTER 17 효과
__17.1 기본 시각 효과
__17.2 사용자 정의 효과
__17.3 상대적 애니메이션
__17.4 애니메이션 큐
__17.5 애니메이션 정지
__17.6 애니메이션 지연
__17.7 jQuery UI Effect 플러그인
__17.8 조금 더 나아가기
CHAPTER 18 이미지 슬라이더
__18.1 jQuery 애니메이션을 위한 준비
__18.2 HTML 구성
__18.3 스타일시트 구성
__18.4 자바스크립트 구성
CHAPTER 19 플러그인
__19.1 라이트박스 개요
__19.2 Colorbox 플러그인
__19.3 Colorbox 플러그인의 옵션
__19.4 Colorbox 플러그인을 활용한 다이얼로그
__19.5 Colorbox 플러그인의 전역 메서드
__19.6 Masonry 플러그인
__19.7 조금 더 나아가기
CHAPTER 20 jQuery 플러그인 제작
__20.1 선택자를 사용하지 않는 jQuery 플러그인 생성
__20.2 선택자를 사용하는 jQuery 플러그인 생성
__20.3 피벗 슬라이드 플러그인 만들기 1
__20.4 피벗 슬라이드 플러그인 만들기 2
__20.5 피벗 슬라이드 플러그인 만들기 3
PART 3 Ajax
CHAPTER 21 node.js 기본
__21.1 Ajax 개요
__21.2 데이터 전송 형식
__21.3 node.js 개요와 설치
__21.4 기본 파일 실행
__21.5 내부 모듈
__21.6 외부 모듈
__21.7 서버 생성 및 실행
__21.8 미들웨어
__21.9 정적 파일 제공
__21.10 라우터
__21.11 응답과 응답 형식
__21.12 Postman 크롬 확장 프로그램
__21.13 요청과 요청 매개변수
__21.14 요청 방식
__21.15 서버 정리
__ [연습문제]
CHAPTER 22 XMLHttpRequest
__22.1 XMLHttpRequest 객체
__22.2 동기 방식과 비동기 방식
__22.3 데이터 요청과 조작
__22.4 데이터 요청 방식
__22.5 조금 더 나아가기
__ [연습문제]
CHAPTER 23 jQuery Ajax
__23.1 기본
__23.2 추가적인 jQuery Ajax 메서드
__23.3 XML 조작
__23.4 데이터 요청 방식
__23.5 보조 메서드
__23.6 이벤트 관리
__ [연습문제]
CHAPTER 24 MySQL 데이터베이스
__24.1 설치
__24.2 기본 명령어
__24.3 MySQL 모듈
__24.4 데이터베이스 웹 서비스
__24.5 Ajax를 사용한 데이터 추가와 삭제
__ [연습문제]
CHAPTER 25 크로스 도메인
__25.1 개요
__25.2 JSONP 개요
__25.3 JSONP 웹 서비스
__25.4 간접 접근 웹 서비스
CHAPTER 26 Reverse Ajax
__26.1 개요
__26.2 서버 구성
__26.3 클라이언트 구성
부록 A 검사
__A.1 검사의 기능
__A.2 검사를 사용한 자바스크립트 디버깅
__A.3 변수 검사
__A.4 HTTP 헤더 확인
부록 B 정규 표현식
__B.1 정규 표현식 객체
__B.2 대체 문자
__B.3 플래그 문자
__B.4 앵커 문자
__B.5 메타 문자
__B.6 수량 문자
__B.7 선택 문자
__B.8 정규 표현식 사용 예제
부록 C 쿠키와 저장소
__C.1 쿠키 개요
__C.2 쿠키 읽기
__C.3 쿠키 함수
__C.4 jQuery Cookie 플러그인
__C.5 저장소
부록 D 지오로케이션
__D.1 구글 지도
__D.2 현재 위치 확인
__D.3 위치 추적
부록 E 자주 발생하는 오류
__E.1 자바스크립트 오류
__E.2 node.js 오류
__E.3 node.js 버그
__E.4 인터넷 익스플로러의 문서 모드 관련 문제
연습문제 풀이
지은이의 글
2017년 4월, 『모던 웹을 위한 JavaScript + jQuery 입문(3판)』으로 개정을 하게 되었습니다. 이번 개정 과정에서는 많은 분들께서 메일과 쪽지로 “이렇게 개정해주세요!”라는 의견을 많이 주셨습니다. 해당 내용들은 대부분 반영했으나, 일부 반영하지 않은 것도 있습니다. 이에 대해 설명하겠습니다.
<2016년 10월에 네이버에서 공개한 네이버 접속 웹 브라우저 비율>
네이버에서 2016년 10월에 공개한 네이버에 접속하는 웹 브라우저의 종류를 살펴보면 IE8, IE9, IE10, IE11의 점유율이 75%(IE11이 44%) 정도 됩니다. 또한, 국내 모바일 브라우저 점유율 1위는 네이버 애플리케이션입니다. 스마트폰 애플리케이션 내부에 있는 웹 브라우저는 대부분 최신 버전의 크롬 또는 사파리가 아닙니다. 때문에 최신 기능을 사용할 수 없는 경우가 많습니다. 그래서 이를 기준으로 책의 개정 방향을 정하게 되었습니다.
<ECMAScript 6를 ‘조금 더 나아가기’로 담았습니다>
위의 통계로 인해 2017년 4월을 기준으로 ES6와 ES7의 기능을 활용해 웹 페이지를 만들 경우 문제가 발생할 수 있습니다. 물론 보완할 수 있는 트랜스파일 도구들이 있습니다. 하지만 모든 개발자들이 완전히 알아야 하는 내용이라고 말할 수는 없습니다. 그래서 이번 3판에서는 ES6 와 관련된 내용을 본문에 넣지 않고, 장의 후반부에 ‘조금 더 나아가기’로 추가했습니다. 조금 더 나아가기에 추가한 ES6의 범위는 ‘현재 시점에서 활용할 수 있는 범위’로 한정했습니다. 이러한 범위는 ES6를 광범위하게 활용하고 있는 에어비앤비의 ES6 개발 스타일 가이드 (https://github.com/airbnb/javascript)를 참고했습니다. 예를 들어, 에어비앤비는 2017년 4월 시점에 제너레이터 기능을 트랜스파일 도구도 정확하게 변환해주지 못한다는 이유로 사용하지 말자고 가이드를 잡았습니다. 또한 이터레이터도 부작 용이 더 많다는 이유로 사용하지 말자고 가이드를 잡았습니다. 따라서 이러한 기능들은 이번 3 판에서 제외했습니다. 해당 도서를 2년에서 3년 주기로 계속해서 개정하고 있으므로, 2018년 또는 2019년에는 또 해당 시점에 맞게 ES6와 ES7의 기능을 추가하도록 하겠습니다.
<ECMAScript 5를 본문에 흡수했습니다>
1판에서 장의 후반부에서 다뤘던 ES5의 기능은 이제 90% 이상의 웹 브라우저에서 사용 가능 한 상태가 되었습니다. 이는 국내 데스크톱 웹 브라우저를 기준으로 한 통계이므로, 스마트폰 까지 합한다면 95% 이상이 될 것입니다. 따라서 ‘배열의 메서드’, ‘ECMAScript 5 배열의 메서드’ 등으로 분리했던 것을 합쳤습니다.
<jQuery는 유지합니다>
최근 꿈에서 『모던 웹을 위한 JavaScript 48판』이라는 책을 보고 일어나서 ‘jQuery를 빼야 하 나?’하는 생각을 했었습니다. 1판을 집필하던 2010년 시점에는 “모두가 jQuery를 사용하기 위해 JavaScript를 사용했다”라고 말할 수 있을 정도로 모두가 jQuery를 사용하고, jQuery 라이브러리를 활용했습니다. 하지만 2017년 시점에서는 다양한 라이브러리들이 나와서 “jQuery는 너무 오래된 과거의 유물 아니야?”라고 말하는 사람들이 많아졌습니다. 하지만 2010년에 책을 집필하던 시점과 2017년 현재 시점을 기준으로 전 세계 상위 1만 개의 사이트에서 jQuery를 사용하는 비율은 크게 변화하지 않았습니다. 또한, jQuery는 기본 지식을 익히기 위한 도구로써 아직도 좋은 중간 과정이라고 할 수 있습니다.
<jQuery 플러그인과 관련된 내용을 축소했습니다>
다만 최근에는 jQuery로 기본기를 익힌 뒤에 다른 대규모 프론트엔드 웹 프레임워크 등을 활 용하는 일이 많아졌습니다. 따라서 기존 1판과 2판의 파트4에서 다뤘던 jQuery 플러그인과 관련된 내용을 대폭 축소했습니다. 파트4가 축소되면서 책의 전체적인 두께가 이전 판보다 약 간 감소되었습니다.
변경 사항과 그에 대한 이유는 이 정도로 정리하면 될 것 같습니다. 3판까지 나올 수 있게 6년 동안 책을 구매해주신 모든 분들께 감사 드립니다. 또한, 이번 3판 개정을 담당해주신 이중민 과장님과 이미향 과장님께도 감사의 말씀을 드립니다.
_2017. 4 윤인성
자료명 | 등록일 | 다운로드 |
---|---|---|
예제소스 | 2021-01-29 | 다운로드 |