이미 소장하고 있다면 판매해 보세요.
|
1장. 값, 타입, 연산자
__값 __숫자 __문자열 __단항 연산자 __불리언 값 __빈 값 __자동 형 변환 __요약 2장. 프로그램 구조 __표현식과 구문 __바인딩 __바인딩 이름 __환경 __함수 __console.log 함수 __반환 값 __제어 흐름 __조건부 실행 __while과 do 반복문 __코드 들여쓰기 __for 반복문 __반복문 나가기 __간결한 바인딩 업데이트 __switch를 통한 값 분기 __대문자 사용 __주석 __요약 3장. 함수 __함수 정의 __바인딩과 범위 __함수 값 __선언 표기법 __화살표 함수 __호출 스택 __선택적 인수 __클로저 __재귀 함수 __함수의 발전 __함수와 부수 효과 __요약 __연습 문제 4장. 객체와 배열 자료 구조 __다람쥐 전설 __데이터 세트 __속성 __메서드 __객체 __변형 __변신 로그 __상관관계 계산 __배열 반복문 __최종 분석 __배열 더 보기 __문자열과 문자열 속성 __나머지 매개변수 __Math 객체 __구조 분해 __JSON __요약 __연습 문제 5장. 고차 함수 __추상화 __반복 추상화 __고차 함수 __문자 데이터 세트 __배열 필터링 __맵으로 변환 __리듀스로 요약 __결합성 __문자열과 문자 코드 __텍스트 인식 __요약 __연습 문제 6장. 객체의 이중 생활 __캡슐화 __메서드 __프로토타입 __클래스 __클래스 표기법 __파생 속성 재정의 __맵 __다형성 __심볼 __반복자 인터페이스 __게터, 세터, 스태틱 __상속 __instanceof 연산자 __요약 __연습 문제 7장. 로봇 프로젝트 __메도우필드 __할 일 __영구 데이터 __시뮬레이션 __메일 트럭의 경로 __길 찾기 __연습 문제 8장. 버그와 오류 __언어 __엄격한 모드 __유형 __테스팅 __디버깅 __오류 전파 __예외 처리 __예외 처리 후 정리 __선택적 예외 처리 __어설션 __요약 __연습 문제 9장. 정규 표현식 __정규 표현식 만들기 __일치 테스트 __문자 세트 __패턴의 부분 반복 __하위 표현식 그룹화 __매칭과 그룹 __날짜 클래스 __단어와 문자열 경계 지정 __선택 패턴 __매칭의 동작 방식 __역추적 __replace 메서드 __탐욕적인 연산자 __동적 RegExp 객체 생성 __search 메서드 __lastIndex 속성 __INI 파일 파싱 __국제 문자 __요약 __연습 문제 10장. 모듈 __모듈 __패키지 __임시 모듈 __데이터를 코드로 평가하기 __CommonJS __ECMAScript 모듈 __빌드와 번들링 __모듈 설계 __요약 __연습 문제 11장. 비동기 프로그래밍 __비동기성 __까마귀의 기술 __콜백 __프로미스 __실패 __네트워크는 어렵다 __프로미스 모음 __네트워크 플러딩 __메시지 라우팅 __비동기 함수 __제너레이터 __이벤트 루프 __비동기 버그 __요약 __연습 문제 12장. 프로그래밍 언어 프로젝트 __파싱 __실행기 __특별한 형식 __환경 __함수 __컴파일 __편법 __연습 문제 2부. 브라우저 13장. 자바스크립트와 브라우저 __네트워크와 인터넷 __웹 __HTML __HTML과 자바스크립트 __샌드박스 __호환성과 브라우저 전쟁 14장. DOM __문서 구조 __트리 __표준 __트리 이동하기 __요소 찾기 __문서 변경하기 __노드 생성하기 __속성 __레이아웃 __스타일링 __CSS __쿼리 선택자 __위치 지정과 애니메이션 __요약 __연습 문제 15장. 이벤트 처리 __이벤트 핸들러 __이벤트와 DOM 노드 __이벤트 객체 __전파 __기본 동작 __키 이벤트 __포인터 이벤트 __스크롤 이벤트 __포커스 이벤트 __로드 이벤트 __이벤트와 이벤트 루프 __타이머 __디바운스 __요약 __연습 문제 16장. 플랫폼 게임 프로젝트 __게임 __기술 __레벨 __레벨 읽기 __액터 __캡슐화의 부담 __드로잉 __움직임과 충돌 __액터 업데이트 __키 추적 __게임 실행 __연습 문제 17장. 캔버스에 그리기 __SVG __캔버스 요소 __선과표면 __경로 __곡선 __파이 차트 그리기 __텍스트 __이미지 __변환 __변환저장 및 삭제 __플랫폼 게임에 적용하기 __그래픽인터페이스 선택하기 __요약 __연습 문제 18장. HTTP와 폼 __프로토콜 __브라우저와 HTTP __패치 __HTTP 샌드박싱 __탁월한 HTTP __보안과 HTTPS __폼 필드 __포커스 __필드 비활성화 __전체 폼 __텍스트 필드 __체크박스와 라디오 버튼 __셀렉트 필드 __파일 필드 __클라이언트 측에 데이터 저장 __요약 __연습 문제 19장. 픽셀 이미지 편집기 프로젝트 __구성 요소 __상태 __DOM 생성 __캔버스 __애플리케이션 __드로잉 도구 __저장과 불러오기 __작업 실행 취소 __드로잉 __왜 이렇게 어려운가? __연습 문제 __3부 Node 20장. NODE.JS __배경 __노드 명령어 __모듈 __NPM으로 설치 __파일 시스템 모듈 __HTTP 모듈 __스트림 __파일 서버 __요약 __연습 문제 21장. 기술 공유 웹 사이트 프로젝트 __설계 __롱 폴링 __HTTP 인터페이스 __서버 __클라이언트 __연습 문제 22장. 자바스크립트와 성능 __단계적 컴파일 __그래프 레이아웃 __그래프 정의하기 __힘 지향 레이아웃 __작업 줄이기 __프로파일링 __함수 인라인 __가비지 줄이기 __가비지 콜렉션 __동적 유형 __요약 __연습 문제 연습 문제 힌트 __2장 프로그램 구조 __3장 함수 __4장 객체와 배열의 자료 구조 __5장 고차 함수 __6장 객체의 이중 생활 __7장 로봇 프로젝트 __8장 버그와 오류 __9장 정규 표현식 __10장 모듈 __11장 비동기 프로그래밍 __12장 프로그래밍 언어 프로젝트 __14장 DOM __15장 이벤트 처리 __16장 플랫폼 게임 프로젝트 __17장 캔버스에 그리기 __18장 HTTP와 폼 __19장 픽셀 이미지 에디터 프로젝트 __20장 Node.js __21장 기술 공유 웹 사이트 프로젝트 __22장 자바스크립트와 성능 |
Marijn Haverbeke
양정열의 다른 상품
|
이 책에서 다루는 내용
- 문법과 제어 흐름, 자료 구조를 포함한 프로그래밍의 필수 요소 이해 - 객체 지향과 함수형 프로그래밍을 통해 코드를 작성하고 명확하게 만드는 방법 - 기본 웹 애플리케이션과 브라우저 스크립트를 만드는 방법 - DOM을 사용해 브라우저와 효율적으로 상호 작용하는 방법 - Node.js를 활용해 서버와 도구를 만드는 방법 이 책의 구성 이 책은 세 부분으로 구성된다. 처음 1, 2장에서는 자바스크립트 언어를 설명한다. 그 이후 일곱 개의 장에 걸쳐 웹 브라우저와 자바스크립트를 사용해 프로그래밍하는 방법을 설명한다. 마지막 두 장에서는 자바스크립트 프로그래밍을 할 수 있는 또 다른 환경인 Node.js를 다룬다. 책 전반에 걸쳐 5개의 프로젝트 장이 있으며, 실제로 프로그래밍을 경험해 볼 수 있도록 비교적 큰 예제 프로그램을 설명한다. 배달 로봇, 프로그래밍 언어, 플랫폼 게임, 픽셀 페인트 프로그램, 다이나믹 웹 사이트 순서로 진행한다. 이 책에서 언어 부분은 자바스크립트 언어의 기본 구조를 소개하는 4개의 장으로 구성된다. 소개글에서 봤던 while문과 같은 제어 구조와 사용자 고유의 빌딩 블록을 작성할 수 있는 함수 그리고 자료 구조를 소개한다. 그 다음에 기본적인 프로그램을 작성할 수 있게 된다. 다음으로 5장과 6장에서는 함수와 객체를 사용해 추상적인 코드를 작성하고 복잡성을 제어하는 방법을 소개한다. 첫 번째 프로젝트 다음에 나오는 언어 부분에서는 오류 처리와 버그 수정, 정규식(텍스트를 처리하는 중요한 도구), 모듈성(복잡성에 대한 또 다른 대응책), 비동기 프로그래밍(시간이 걸리는 이벤트 처리)에 관해 설명하는 장이 계속된다. 이어서 두 번째 프로젝트로 책의 1부를 마친다. 2부는 13장에서 19장으로 구성되며 브라우저 자바스크립트에서 접근할 수 있는 도구를 설명한다. 화면에 사물을 표시하고(14장, 17장) 사용자 입력에 응답하고(15장) 네트워크로 통신하는 방법(18장)을 배운다. 그리고 두 개의 프로젝트를 진행한다. 이후 20장에서는 Node.js를 설명하고 21장에서는 해당 도구를 사용해 소규모 웹 사이트를 만든다. 끝으로 22장에서는 속도를 개선하기 위해 자바스크립트 프로그램을 최적화할 때 고려해야 할 내용을 설명한다. 지은이의 말 이 책은 컴퓨터 명령에 관한 내용을 다룬다. 오늘날 컴퓨터는 스크류 드라이버만큼 흔하지만 훨씬 더 복잡하며, 컴퓨터가 우리가 원하는 작업을 처리하도록 만드는 일이 쉽지만은 않다. 컴퓨터에서 이메일을 보여 주거나 계산하는 것처럼 일반적이고 이해가 쉬운 작업을 하는 경우, 적당한 애플리케이션을 열고 작업을 시작하면 된다. 하지만 고유한 작업이나 확장이 가능한 작업의 경우는 해당되는 애플리케이션이 존재하지 않을 것이다. 여기서 바로 프로그래밍이 개입하게 된다. 프로그래밍은 프로그램을 만드는 행위로 컴퓨터가 무엇을 해야 하는지 알려주는 구체적인 명령어 집합이다. 컴퓨터는 지나치게 바보같이 규칙을 따르는 물건이기 때문에 프로그래밍은 본질적으로 지루하고 답답하다. 다행히 이러한 사실을 극복할 수 있고, 바보 같은 기계가 처리할 수 있는 용어를 사용해 엄격하게 사고하는 것을 즐길 수 있다면 프로그래밍에 보람을 느낄 수 있다. 직접 하면 오래 걸리는 작업을 프로그래밍으로 몇 초 만에 할 수 있다. 프로그래밍은 컴퓨터에서 이전에는 처리할 수 없었던 작업을 처리하도록 만드는 방법이다. 그리고 추상적인 사고를 할 수 있는 좋은 훈련이 된다. 대부분의 프로그래밍은 프로그래밍 언어를 사용한다. 프로그래밍 언어는 컴퓨터에게 명령하기 위해 인위적으로 만든 언어다. 컴퓨터와 가장 효율적으로 의사 소통하는 방법이 인간의 의사 소통 방법에서 많은 부분을 차용한 것은 흥미로운 부분이다. 인간의 언어와 마찬가지로 컴퓨터 언어도 단어와 구문을 새로운 방식으로 결합해 새로운 개념을 표현할 수 있다. 1980년대와 1990년대에는 BASIC과 DOS 프롬프트와 같은 언어 기반 인터페이스가 컴퓨터와 상호 작용하는 주요 방법이었던 적도 있었다. 이후로 대부분은 시각적인 인터페이스로 대체됐고 배우기 쉬워졌지만 자유도는 줄어들었다. 하지만 컴퓨터 언어가 사용되는 곳을 알고 있다면 여전히 그 자리를 지키고 있는 언어를 확인할 수 있다. 이러한 언어 중 하나인 자바스크립트는 모든 최신 웹 브라우저에 내장돼 있으며 거의 모든 장치에서 사용할 수 있다. 이 책에서는 이 언어와 친해져 재미 있고 쓸모 있는 작업을 할 수 있도록 도와줄 것이다 자바스크립트를 설명하는 내용과 더불어 프로그래밍의 기본 원리를 소개한다. 프로그래밍은 어렵다. 기본적인 규칙은 간단하고 명확하지만 이러한 규칙 위에 만들어진 프로그램은 스스로 만든 규칙과 복잡함을 설명해야 할 만큼 복잡해지기도 한다. 특정 방식으로 자신만의 미로를 만들고 그 안에서 길을 잃을 수도 있다. 이 책을 읽다가 몹시 좌절감이 들 수 있다. 프로그래밍이 처음이라면 소화해야 할 새로운 내용이 많을 것이다. 대부분의 내용은 추가 연결이 필요한 방식으로 구성돼 있다. 필요한 노력을 하는 것은 자신에게 달려 있다. 책을 따라하기 위해 고군분투 할 때 자신의 능력을 성급하게 평가하지 않기를 바란다. 잘하고 있고, 멈추지 않고 계속해서 하면 된다. 잠시 휴식을 취한 다음 내용을 다시 읽고, 예제 프로그램과 연습 문제를 이해했는지 확인한다. 배움은 힘든 일이지만 배우는 모든 것은 자신의 것이며 이후에 배울 내용을 더 수월하게 익힐 수 있다. 옮긴이의 말 자바스크립트는 더 이상 자세한 설명이 필요 없는 중요한 언어로 자리매김했다. 클라이언트와 서버에서 사용되며, 수많은 대규모 프로젝트에서 채택해 사용하고 있다. 또한 여러 가지 프레임워크와 라이브러리가 커뮤니티를 통해 계속해서 만들어지고 지속적으로 발전하고 있다. 이러한 자바스크립트의 수요에 따라 이 언어를 배우고 활용하기 위한 개발자를 위한 기초 문법과 라이브러리, 프레임워크를 소개하는 좋은 안내서가 시중에 많이 나와 있다. 이 책은 그러한 기본서와 활용서 사이에 부족한 부분을 보완할 수 있는 좋은 책이다. 참고로, 잘 알려진 모질라 개발자 네트워크MDN 사이트에도 중급 개발자용 도서로 소개돼 있다. 간단한 예제부터 적당한 규모의 프로젝트까지 다양한 예제를 통해 자연스럽게 자바스크립트 고급 기술을 습득할 수 있도록 구성돼 있다. 웹 사이트로 공개 출판된 버전에서는 샌드박스를 제공하며, 이를 통해 별도의 개발 환경이나 에디터가 없어도 PC나 모바일 브라우저에서 예제 코드를 실행하고 결과를 확인할 수 있다. 책으로 출판된 버전에는 웹에서 공개되지 않은 자바스크립트 성능 개선을 위한 챕터가 포함돼 더 많은 내용을 확인할 수 있다. 자, 그럼 즐거운 배움의 시간이 되길 바란다. |
|
“내가 읽어본 프로그래밍 개념에 대한 최고의 설명이다.” - 산드라 헨리 스토커(SANDRA HENRY-STOCKER) (IT WORLD)
|
|
“이 책으로 자바스크립트 여정을 시작하면 다양한 기술에 대한 정보와 프로그래밍의 지혜를 빠르게 배울 수 있다.” - 마이클 J. 로스(MICHAEL J. ROSS) (웹 개발자 겸 슬래시닷(SLASHDOT) 기고자)
|
|
“나는 이 책 덕분에 더 나은 아키텍트, 작가, 멘토, 개발자가 됐다. 플래너건(Flannagan)과 크록포드(Crockford)의 책과 함께 책장에 두어도 좋다.” - 앵거스 크롤(ANGUS CROLL) (트위터 개발자)
|
|
“모든 프로그래밍 언어와 프로그래밍 전반에 대한 최고의 글이다. 끝!” - 얀 레나르트(JAN LEHNARDT) (후디(HOODIE)의 공동 창업자 겸 JSCONF EU 주최자)
|
|
“사람들이 자바스크립트를 배우는 방법을 물을 때 일러주는 책이다.” - 크리스 윌리엄스(CHRIS WILLIAMS) (JSCONF US 주최자)
|
|
“내가 읽은 최고의 자바스크립트 책 중 하나다.” - 레이 뱅고(REY BANGO) (제이쿼리(JQUERY)팀 멤버 (마이크로소프트 클라이언트 웹 커뮤니티 프로그램 매니저)
|
|
“자바스크립트 가이드로도 정말 좋지만 그 이상으로 훌륭한 프로그래밍 가이드다.” - 벤 나델(BEN NADEL) (EPICENTER CONSULTING의 최고 소프트웨어 엔지니어)
|
|
“자바스크립트 경험이 없는 사람들뿐만 아니라 프로그래밍 경험이 없는 사람들에게도 적합한 좋은 책이다.” - 니콜라스 자카스(NICHOLAS ZAKAS) (『JavaScript』와 『객체지향 자바스크립트의 원리』의 저자)
|
|
“자바스크립트가 처음이라면 가장 먼저 Eloquent JavaScript 사이트에서 머라인 하버비케가 쓴 소개 글을 읽어 보기 바란다.” - [CNET UK]
|