책 소개
▣ 출판사서평
다음 질문들의 해답이 『속 깊은 자바스크립트』에 있습니다.
Q. 덩치 큰 코뿔소(?)와 아무리 싸워봐도 클로저나 프로타타입 등 몇 가지 개념은 도저히 모르겠어요.
Q. jQuery나 AngularJS, Node.JS를 배워보려고 해도 자바스크립트가 약해서 엄두를 못 내겠어요.
Q. 함수가 어떻게 호출되고 반환되는지, 그 과정을 자세하게 알고 싶어요(이왕이면 ECMAScript 표준으로)
Q. with와 eval, 그리고 글로벌 변수 사용을 자제하라는데, 왜죠? 그렇다면 대안은요?
Q. ECMAScript 2015랑 2016에서 크게 바뀐 부분이랑 꼭 알아야 하는 핵심은 뭐죠?
Q. 자바스크립트로 객체지향을 구현할 수 있다는 게 사실인가요? 상속도?
Q. C랑 JAVA 배웠고, 이제 막 자바스크립트 시작했는데 this, new, class 이런 것들이 뭔가 조금 달라서 어렵네요.
Q. 웹페이지의 로딩 속도가 너무 느립니다. 1초라도 줄이고 싶어요.
Q. 그냥 실무에서 바로 써먹을 수 있는 소스를 주세요.
이 책의 구성
1장에서는 자바스크립트를 간단하게 소개하고 웹 개발 방법론의 변화에 따른 자바스크립트의 변화를 살펴본다.
2~4장에서는 자바스크립트 개발자로서 반드시 알아야 하는 클로저와 변수를 깊이 있게 다루고, 자바스크립트로 객체지향을 구현하는 방법을 살펴본다.
5~6장에서는 자바스크립트를 다양하게 응용할 수 있는 디자인 패턴들을 소개하고, 브라우저 환경이라서 발생하는 자바스크립트만의 특징을 다룬다.
7~8장에서는 사용자 경험을 개선하는 방법과 이를 웹 페이지에 반영하기 위한 개발환경 구성법을 다룬다.
9~10장에서는 미래 자바스크립트의 변화에 대비하기 위하여 최신 표준에 관한 내용과 각종 프레임워크에 대해서 살펴본다.
▣ 작가 소개
저자 : 양성익
현재 미국 아마존(Amazon) 본사에서 소프트웨어 엔지니어로 일하고 있는 그는 2001년부터 웹 개발과 자바스크립트를 시작하였다. 이후 2005년에 스탠드얼론(Stand alone) 프로그램이었던 군병자력관리 시스템을 AJAX를 활용하여 웹으로 옮기는 등 자바스크립트를 다양하게 활용하였다. 이후 모바일, 통신, 서버 개발 등 다양한 분야에서 개발직을 수행하면서, 각종 프로그래밍 언어나 표준, 프레임워크 등을 공부하고 연구하여 이를 블로그나 SNS를 통해 공유하는 것을 즐긴다.
▣ 주요 목차
1장. 웹과 자바스크립트
1.1. 자바스크립트의 어제와 오늘
1.2. 웹 개발 방법론의 변화
2장. 자바스크립트의 스코프와 클로저
2.1. 스코프란?
__2.1.1. 스코프의 생성
__2.1.2. 스코프의 지속성
__2.1.3. with 구문
__2.1.4. with 구문을 자제해야 하는 이유
2.2. 클로저란?
__2.2.1. 클로저 쉽게 이해하기
__2.2.2. 클로저의 실제 활용 예
__2.2.3. 클로저의 단점
3장. 자바스크립트의 변수
3.1. 자바스크립트의 기본형과 typeof
3.2. new String("")과 "", 그리고 String("")의 차이
3.3. 글로벌 변수
3.4. 글로벌 변수 정의
3.5. window 객체
3.6. 글로벌 변수 선언 방법과 차이
3.7. var 키워드의 효율적인 사용
3.8. 글로벌 변수 최소화하기
3.9. 변수 사용 방법과 성능
4장. 프로토타입과 객체지향, 그리고 상속
4.1. 프로토타입을 통한 객체지향
__4.1.1. 프로토타입이란?
__4.1.2. 자바스크립트와 자바에서의 객체 생성
__4.1.3. this의 이해
__4.1.4. new 키워드
__4.1.5. 프로토타입에 대한 표준 정의
__4.1.6. 프로토타입의 사용 예
__4.1.7. 프로토타입과 생성자
__4.1.8. 객체 내의 속성 탐색 순서
__4.1.9. 프로토타입의 장단점
4.2. 자바스크립트에서의 상속 활용
__4.2.1. 기존의 상속 구현 방법
__4.2.2. instanceof 동작 원리
__4.2.3. Object.create 함수
__4.2.4. Object.create 함수의 상속 여부 확인
__4.2.5. Object.create의 객체 초기화
__4.2.6. Object.create와 new 키워드 조합
__4.2.7. class와 extends를 통한 상속
__4.2.8. Object.create 함수 크로스브라우저 호환성 보완
__4.2.9. 생성자 vs Object.create 성능 비교
5장. 디자인 패턴 실용
5.1. 모듈 패턴
5.2. 이벤트 델리게이션 패턴
5.3. 프락시 패턴
5.4. 데커레이터 패턴
5.5. Init-time branching 패턴
5.6. Self-defining function 패턴
5.7. 메모이제이션 패턴
5.8. Self-invoking constructor 패턴
5.9. 콜백 패턴
5.10. 커링 패턴
6장. 브라우저 환경에서의 자바스크립트
6.1. 단일 스레드 환경
6.2. requestAnimationFrame( ) 함수
6.3. DOM과 자바스크립트
__6.3.1. DOM repaint
__6.3.2. DOM reflow
__6.3.3. DOM 탐색 횟수 최소화를 통한 성능 개선
6.4. 웹 워커
7장. 자바스크립트 성능과 사용자 경험 개선
7.1. 〈script〉 태그 위치와 레이지 로드
7.2. 인터넷 환경에서의 HTTP GET 최적화
__7.2.1. 소스 미니피케이션으로 GET 용량 최소화
__7.2.2. 파일을 압축해서 GET 용량 최소화(gzip과 deflate)
__7.2.3. GET 요청 횟수 최소화(파일 합치기)
__7.2.4. 캐시 설정
8장. 자바스크립트 코딩과 개발 환경
8.1. 자바스크립트 코딩 스타일
__8.1.1. 변수 이름 표기법
__8.1.2. 공백과 탭
__8.1.3. 중괄호 여는 위치
__8.1.4. strict mode
8.2. 자바스크립트 검증 도구 - JSLint
8.3. 자바스크립트 빌드 환경
9장. 자바스크립트 표준
9.1. ECMAScript 6 표준
__9.1.1. 변수, 상수 선언 키워드(let, const)
__9.1.2. 함수 화살표 표현식
__9.1.3. 클래스(class) 키워드
__9.1.4. 객체 표현식 기능 확대
__9.1.5. 템플릿 문자열 표현식
__9.1.6. Destructuring
__9.1.7. 함수 인자 기능 확대
__9.1.8. iterator와 for-of 기능
__9.1.9. Map과 Set 기능 추가
__9.1.10. Binary/Octal 표현식 추가
__9.1.11. TypedArray 기능 추가
__9.1.12. 모듈 기능 표준화
__9.1.13. 프락시 모듈
__9.1.14. Symbol 모듈
__9.1.15. Promise 모듈
9.2. ECMAScript 2016
__9.2.1. Array.prototype.includes 함수
__9.2.2. 지수 연산자
10장. 자바스크립트 프레임워크
10.1. jQuery
10.2. AngularJS
10.3. React
10.4. ExtJS
10.5. RequireJS
10.6. Backbone.js
10.7. Ember
10.8. Underscore.JS
10.9. Node.js
10.10. Cylon.js
다음 질문들의 해답이 『속 깊은 자바스크립트』에 있습니다.
Q. 덩치 큰 코뿔소(?)와 아무리 싸워봐도 클로저나 프로타타입 등 몇 가지 개념은 도저히 모르겠어요.
Q. jQuery나 AngularJS, Node.JS를 배워보려고 해도 자바스크립트가 약해서 엄두를 못 내겠어요.
Q. 함수가 어떻게 호출되고 반환되는지, 그 과정을 자세하게 알고 싶어요(이왕이면 ECMAScript 표준으로)
Q. with와 eval, 그리고 글로벌 변수 사용을 자제하라는데, 왜죠? 그렇다면 대안은요?
Q. ECMAScript 2015랑 2016에서 크게 바뀐 부분이랑 꼭 알아야 하는 핵심은 뭐죠?
Q. 자바스크립트로 객체지향을 구현할 수 있다는 게 사실인가요? 상속도?
Q. C랑 JAVA 배웠고, 이제 막 자바스크립트 시작했는데 this, new, class 이런 것들이 뭔가 조금 달라서 어렵네요.
Q. 웹페이지의 로딩 속도가 너무 느립니다. 1초라도 줄이고 싶어요.
Q. 그냥 실무에서 바로 써먹을 수 있는 소스를 주세요.
이 책의 구성
1장에서는 자바스크립트를 간단하게 소개하고 웹 개발 방법론의 변화에 따른 자바스크립트의 변화를 살펴본다.
2~4장에서는 자바스크립트 개발자로서 반드시 알아야 하는 클로저와 변수를 깊이 있게 다루고, 자바스크립트로 객체지향을 구현하는 방법을 살펴본다.
5~6장에서는 자바스크립트를 다양하게 응용할 수 있는 디자인 패턴들을 소개하고, 브라우저 환경이라서 발생하는 자바스크립트만의 특징을 다룬다.
7~8장에서는 사용자 경험을 개선하는 방법과 이를 웹 페이지에 반영하기 위한 개발환경 구성법을 다룬다.
9~10장에서는 미래 자바스크립트의 변화에 대비하기 위하여 최신 표준에 관한 내용과 각종 프레임워크에 대해서 살펴본다.
▣ 작가 소개
저자 : 양성익
현재 미국 아마존(Amazon) 본사에서 소프트웨어 엔지니어로 일하고 있는 그는 2001년부터 웹 개발과 자바스크립트를 시작하였다. 이후 2005년에 스탠드얼론(Stand alone) 프로그램이었던 군병자력관리 시스템을 AJAX를 활용하여 웹으로 옮기는 등 자바스크립트를 다양하게 활용하였다. 이후 모바일, 통신, 서버 개발 등 다양한 분야에서 개발직을 수행하면서, 각종 프로그래밍 언어나 표준, 프레임워크 등을 공부하고 연구하여 이를 블로그나 SNS를 통해 공유하는 것을 즐긴다.
▣ 주요 목차
1장. 웹과 자바스크립트
1.1. 자바스크립트의 어제와 오늘
1.2. 웹 개발 방법론의 변화
2장. 자바스크립트의 스코프와 클로저
2.1. 스코프란?
__2.1.1. 스코프의 생성
__2.1.2. 스코프의 지속성
__2.1.3. with 구문
__2.1.4. with 구문을 자제해야 하는 이유
2.2. 클로저란?
__2.2.1. 클로저 쉽게 이해하기
__2.2.2. 클로저의 실제 활용 예
__2.2.3. 클로저의 단점
3장. 자바스크립트의 변수
3.1. 자바스크립트의 기본형과 typeof
3.2. new String("")과 "", 그리고 String("")의 차이
3.3. 글로벌 변수
3.4. 글로벌 변수 정의
3.5. window 객체
3.6. 글로벌 변수 선언 방법과 차이
3.7. var 키워드의 효율적인 사용
3.8. 글로벌 변수 최소화하기
3.9. 변수 사용 방법과 성능
4장. 프로토타입과 객체지향, 그리고 상속
4.1. 프로토타입을 통한 객체지향
__4.1.1. 프로토타입이란?
__4.1.2. 자바스크립트와 자바에서의 객체 생성
__4.1.3. this의 이해
__4.1.4. new 키워드
__4.1.5. 프로토타입에 대한 표준 정의
__4.1.6. 프로토타입의 사용 예
__4.1.7. 프로토타입과 생성자
__4.1.8. 객체 내의 속성 탐색 순서
__4.1.9. 프로토타입의 장단점
4.2. 자바스크립트에서의 상속 활용
__4.2.1. 기존의 상속 구현 방법
__4.2.2. instanceof 동작 원리
__4.2.3. Object.create 함수
__4.2.4. Object.create 함수의 상속 여부 확인
__4.2.5. Object.create의 객체 초기화
__4.2.6. Object.create와 new 키워드 조합
__4.2.7. class와 extends를 통한 상속
__4.2.8. Object.create 함수 크로스브라우저 호환성 보완
__4.2.9. 생성자 vs Object.create 성능 비교
5장. 디자인 패턴 실용
5.1. 모듈 패턴
5.2. 이벤트 델리게이션 패턴
5.3. 프락시 패턴
5.4. 데커레이터 패턴
5.5. Init-time branching 패턴
5.6. Self-defining function 패턴
5.7. 메모이제이션 패턴
5.8. Self-invoking constructor 패턴
5.9. 콜백 패턴
5.10. 커링 패턴
6장. 브라우저 환경에서의 자바스크립트
6.1. 단일 스레드 환경
6.2. requestAnimationFrame( ) 함수
6.3. DOM과 자바스크립트
__6.3.1. DOM repaint
__6.3.2. DOM reflow
__6.3.3. DOM 탐색 횟수 최소화를 통한 성능 개선
6.4. 웹 워커
7장. 자바스크립트 성능과 사용자 경험 개선
7.1. 〈script〉 태그 위치와 레이지 로드
7.2. 인터넷 환경에서의 HTTP GET 최적화
__7.2.1. 소스 미니피케이션으로 GET 용량 최소화
__7.2.2. 파일을 압축해서 GET 용량 최소화(gzip과 deflate)
__7.2.3. GET 요청 횟수 최소화(파일 합치기)
__7.2.4. 캐시 설정
8장. 자바스크립트 코딩과 개발 환경
8.1. 자바스크립트 코딩 스타일
__8.1.1. 변수 이름 표기법
__8.1.2. 공백과 탭
__8.1.3. 중괄호 여는 위치
__8.1.4. strict mode
8.2. 자바스크립트 검증 도구 - JSLint
8.3. 자바스크립트 빌드 환경
9장. 자바스크립트 표준
9.1. ECMAScript 6 표준
__9.1.1. 변수, 상수 선언 키워드(let, const)
__9.1.2. 함수 화살표 표현식
__9.1.3. 클래스(class) 키워드
__9.1.4. 객체 표현식 기능 확대
__9.1.5. 템플릿 문자열 표현식
__9.1.6. Destructuring
__9.1.7. 함수 인자 기능 확대
__9.1.8. iterator와 for-of 기능
__9.1.9. Map과 Set 기능 추가
__9.1.10. Binary/Octal 표현식 추가
__9.1.11. TypedArray 기능 추가
__9.1.12. 모듈 기능 표준화
__9.1.13. 프락시 모듈
__9.1.14. Symbol 모듈
__9.1.15. Promise 모듈
9.2. ECMAScript 2016
__9.2.1. Array.prototype.includes 함수
__9.2.2. 지수 연산자
10장. 자바스크립트 프레임워크
10.1. jQuery
10.2. AngularJS
10.3. React
10.4. ExtJS
10.5. RequireJS
10.6. Backbone.js
10.7. Ember
10.8. Underscore.JS
10.9. Node.js
10.10. Cylon.js
01. 반품기한
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
03. 배송상태에 따른 환불안내
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
04. 취소방법
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
06. 취소반품 불가 사유
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |