너희가 자바스크립트를 알아! 이제는 자바스크립트를 제대로 알고 쓰자.
웹 초창기 시절부터 자바스크립트는 사람들이 대화하듯 웹 콘텐츠를 소비할 수 있게 해준 기반 기술이었다. 자바스크립트가 비록 마우스 궤적을 깜빡이거나 팝업 알림창을 띄우는 용도에서 시작했지만, 20년 가까이 흐른 지금은 엄청난 규모로 기술적 역량이 성장하였고, 세계에서 가장 널리 사용되는 소프트웨어 플랫폼이라 불리는 웹의 심장부를 형성하는 핵심 기술이 되었다.
자바스크립트는 처음 시작하고 실행하기가 가장 쉬운 언어지만, 다른 언어보다 완전히 숙달한 사람은 훨씬 적다. C/C++ 등으로 완전한 프로그램을 짜려면 언어 자체를 깊이 있게 알고 있어야 가능하지만, 자바스크립트는 언어 전체의 능력 중 일부를 수박 겉핥기 정도만 알고 사용해도 웬만큼 서비스가 가능한 프로그램을 만들어낼 수 있다.
바로 이 부분이 자바스크립트의 모순이자 아킬레스건이고, 이 책에서 다루는 주제이기도 하다. ‘You Don't Know JS’ 시리즈는 자바스크립트의 모든 것, 그중 특히 착각하기 쉽고 이해하기 어려운 부분을 깊고 철저하게 파고든다.
이 책은 ‘You Don't Know JS’ 시리즈의 세 번째 책으로, 자바스크립트 언어에서 가장 헷갈리고 난해한 동시에 그 무엇보다도 중요한 기본 개념인 this 바인딩과 프로토타입 체인, 이 두 주제를 집중적으로 파고든다. 이 책에서는 험한 길을 마주한 상황에서 쉬운 길로 돌아가라는 식의 조언은 절대 하지 않는다. 지금은 자바스크립트를 제대로 모르더라도 이 시리즈를 읽고 나면 완벽히 알게 될 것이다. ‘You Don't Know JS’ 시리즈와 함께 진정한 자바스크립트를 배워 보자.
이 책의 목표
자바스크립트는 굉장한 언어다. 다만 적당히 아는 건 쉬워도 완전히 다 알기는 어렵다. 헷갈리는 부분이 나오면 개발자들은 대부분 자신의 무지를 탓하기 전에 언어 자체를 비난하곤 한다. 이 책은 이런 나쁜 습관을 바로잡고 이제라도 독자들이 자바스크립트를 제대로, 깊이 있게 이해할 수 있도록 도와주는 것을 목표로 한다.
이 책에서 다루는 내용
호출부 코드에 따라 this가 어떻게 바인딩되어 객체를 참조하는지 살펴본다.
자바스크립트 객체 본연의 속성과 객체를 가리켜야 하는 이유를 이해한다.
자바스크립트 믹스인 패턴으로 클래스를 어떻게 흉내 내는지 배운다.
자바스크립트 프로토타입 체계가 객체 간 링크를 형성하는 방법을 이해한다.
클래스/상속 디자인에서 어떻게 작동 위임 패턴으로 전환할지 고찰한다.
OLOO(객체를 다른 객체에 연결) 스타일의 코드로 작동 위임 패턴을 구현하는 방법을 알아본다.
대상 독자
『You Don’t Know JS』 시리즈 도서
chapter 1 this라나 뭐라나
1.1 this를 왜?
1.2 헷갈리는 것들
1.2.1 자기 자신
1.2.2 자신의 스코프
1.3 this는 무엇인가?
1.4 정리하기
chapter 2 this가 이런 거로군!
2.1 호출부
2.2 단지 규칙일 뿐
2.2.1 기본 바인딩
2.2.2 암시적 바인딩
2.2.3 명시적 바인딩
2.2.4 new 바인딩
2.3 모든 건 순서가 있는 법
2.3.1 this 확정 규칙
2.4 바인딩 예외
2.4.1 this 무시
2.4.2 간접 레퍼런스
2.4.3 소프트 바인딩
2.5 어휘적 this
2.6 정리하기
chapter 3 객체
3.1 구문
3.2 타입
3.2.1 내장 객체
3.3 내용
3.3.1 계산된 프로퍼티명
3.3.2 프로퍼티 vs 메서드
3.3.3 배열
3.3.4 객체 복사
3.3.5 프로퍼티 서술자
3.3.6 불변성
3.3.7 [[Get]]
3.3.8 [[Put]]
3.3.9 게터와 세터
3.3.10 존재 확인
3.4 순회
3.5 정리하기
chapter 4 클래스와 객체의 혼합
4.1 클래스 이론
4.1.1 클래스 디자인 패턴
4.1.2 자바스크립트 클래스
4.2 클래스 체계
4.2.1 건축
4.2.2 생성자
4.3 클래스 상속
4.3.1 다형성
4.3.2 다중 상속
4.4 믹스인
4.4.1 명시적 믹스인
4.4.2 암시적 믹스인
4.5 정리하기
chapter 5 프로토타입
5.1 [[Prototype]]
5.1.1 Object.prototype
5.1.2 프로퍼티 세팅과 가려짐
5.2 클래스
5.2.1 클래스 함수
5.2.2 생성자
5.2.3 체계
5.3 프로토타입 상속
5.3.1 클래스 관계 조사
5.4 객체 링크
5.4.1 링크 생성
5.4.2 링크는 대비책?
5.5 정리하기
chapter 6 작동 위임
6.1 위임 지향 디자인으로 가는 길
6.1.1 클래스 이론
6.1.2 위임 이론
6.1.3 멘탈 모델 비교
6.2 클래스 vs 객체
6.2.1 위젯 클래스
6.2.2 위젯 객체의 위임
6.3 더 간단한 디자인
6.3.1 탈클래스화
6.4 더 멋진 구문
6.4.1 비어휘적 식별자
6.5 인트로스펙션
6.6 정리하기
부록 ES6 class
A.1 class
A.2 class의 함정
A.3 정적에서 동적으로?
A.4 정리하기
카일 심슨(Kyle Simpson)
카일 심슨(Kyle Simpson)
카일 심슨(Kyle Simpson)
리얼타임 eBook 안내
PDF 형식으로 제공되며, 다운로드한 eBook은 PDF 포맷을 지원하는 디바이스 또는 프로그램에서 제한없이 열람할 수 있습니다. 또한 eBook 내의 텍스트 검색 및 인쇄도 가능합니다.