자바스크립트 - 해당되는 글 21건

 

누구나 쉽게 배우는 자바스크립트

 

시리즈명 이지코딩 시리즈-003

저자 닉 모건

역자 김태곤, 이미령

출판사 비제이퍼블릭

 

출간일 2015916 ()

정가 28,000

페이지 344

판형 188*245

ISBN 979-11-86697-03-0 (93000)

원서정보 JAVASCRIPT FOR KIDS

 

 

 

책 소개

 

정말 쉬운 프로그래밍!

 

자바스크립트는 인터넷 프로그래밍 언어입니다. 웹을 더 근사하게 만들고, 좋아하는 웹 사이트에 생동감을 더해주며, 온라인 게임과 같은 즐거움도 선사해주는 마법의 소스입니다!

 

『누구나 쉽게 배우는 자바스크립트』는 단계별 예제와 재미있는 그림들을 느긋하게 보면서 프로그래밍의 필수 요소를 가벼운 마음으로 배울 수 있는 책입니다. 처음에는 문자열, 배열, 반복문과 같은 기초에서 시작해서 jQuery를 사용한 인터랙션 구현, 캔버스를 사용한 그래픽 그리기 등과 같은 고급 주제도 살펴봅니다. 이 과정에서 여러분은 보물 찾기, 행맨, 뱀 게임과 같은 재미있는 게임을 작성하고, 다음과 같은 내용을 배울 것입니다.

 

- 코드를 구조화하고 재사용할 수 있게 해주는 함수 작성법

- 동적인 웹 페이지를 만드는 HTML 작성 및 수정 방법

- DOM jQuery를 사용해서 사용자의 입력에 반응하는 웹 페이지를 만드는 방법

- 캔버스 엘리먼트를 사용해서 그림을 그리고 움직이게 하는 방법

- 충돌 감지 및 점수 기능을 갖춘 게임을 만드는 방법

 

튕기는 공, 레이싱 카, 날아다니는 벌과 같은 시각적인 예제를 통해 여러분이 프로그래밍한 것을 확인할 수 있습니다. 각 장 마지막 부분에는 프로그래밍 과제를 첨부해서 학습 효과를 배가하는 한편, 여러분이 작성한 프로그래밍을 더 좋게 바꿀 수 있도록 했습니다. 바로 지금 자바스크립트를 사용해서 멋진 결과물을 만들어보세요!

 

 

독자대상

 

초급

 

 

 

저자 소개

 

닉 모건

 

트위터의 프런트엔드 엔지니어다. 프로그래밍 언어는 전부 좋아하지만 자바스크립트에는 특별히 더 큰 애정을 가지고 있다. 안개가 많은 샌프란시스코에서 약혼녀와 함께 복슬복슬한 강아지 팬케이크를 키우며 살고 있으며, 블로그(http://skilldrick.co.uk)를 운영하고 있다.

 

 

 

역자 소개

 

김태곤

 

Fancy(http://fancy.com)라는 서비스를 만들고 있는 프런트엔드 개발자다. 새로운 기술을 배우는 것만큼이나 지식을 나누는 것도 좋아해 오픈 소스는 물론 강의와 번역을 꾸준히 진행하고 있다. 또한 개인 블로그(http://taegon.kim)와 트위터(@taggon)를 통해서도 웹 기술과 관련된 글을 전한다. 옮긴 책으로는 『자바스크립트를 깨우치다』(비제이퍼블릭), 『객체지향 자바스크립트의 원리』(비제이퍼블릭), 『거침없이 배우는 자바스크립트 & 제이쿼리』(지앤선) 등이 있다.

 

이미령

 

큰 변화도 작은 행동이 모여 이루어진다는 생각에 가치 있는 콘텐츠를 우리말로 공유하고자 자원봉사로 시작한 번역이 신문기사, 온라인 콘텐츠 번역을 지나 결국 전문 번역가의 길까지 이어졌다. 모든 일을 재미있게 하는 비결은 아이 같은 호기심을 잃지 않는 데 있다고 믿고 있으며 사람과 사람, 사람과 컴퓨터 간의 연결 분야에 관심이 많다. 옮긴 책으로는 『생각하는 냉장고 뉴스 읽는 장난감』(지앤선), 『멀티 디바이스 UX 디자인』(한빛미디어), 『사용자를 생각하게 하지마』(인사이트)가 있다.

 

 

목차

 

1. 기초

 

1. 자바스크립트 소개

- 자바스크립트를 만나보세요

- 자바스크립트를 배워야 하는 이유는 무엇인가요?

- 간단한 자바스크립트 프로그램 작성

- 자바스크립트 프로그램의 구조

- 정리해봅시다

 

2. 자료형과 변수

- 숫자와 연산자

- 변수

- 문자열

- 불리언

- Undefined null

- 정리해봅시다

 

3. 배열

- 배열을 배워야 하는 이유

- 배열 만들기

- 배열 원소에 접근하기

- 배열 원소 설정하기와 바꾸기

- 한 배열에서 여러 자료형 사용하기

- 배열 다루기

- 유용하게 배열 활용하기

- 정리해봅시다

- 프로그래밍 과제

 

4. 객체

- 객체 만들기

- 객체 안의 값에 접근하기

- 객체에 값 추가하기

- 배열과 객체 결합하기

- 콘솔에서 객체 탐색하기

- 객체를 유용하게 활용하는 방법

- 정리해봅시다

- 프로그래밍 과제

 

5. HTML 기초

- 텍스트 편집기

- 첫 번째 HTML 문서

- 완전한 HTML 문서

- HTML 계층구조

- HTML에 링크 추가하기

- 정리해봅시다

 

6. 조건문과 반복문

- HTML에 자바스크립트 포함하기

- 조건문

- 반복문

- 정리해봅시다

- 프로그래밍 과제

 

7. 행맨 게임 제작

- 플레이어와 상호작용

- 게임 설계하기

- 게임 코딩하기

- 게임 코드

- 정리해봅시다

- 프로그래밍 과제

 

8. 함수

- 함수의 기본 구조

- 간단한 함수 작성

- 함수 호출하기

- 함수에 인수 전달하기

- 함수에서 값 반환하기

- 함수를 값으로써 사용하기

- 함수를 사용해 코드를 단순하게 만들기

- Return을 사용해 함수 빨리 끝내기

- If…else 대신 return을 여러 번 사용하기

- 정리해봅시다

- 프로그래밍 과제

 

2. 고급 자바스크립트

 

9. DOM jQuery

- DOM 엘리먼트 선택하기

- jQuery를 사용한 DOM 트리 다루기

- jQuery를 사용해 엘리먼트 새로 만들기

- jQuery를 사용한 애니메이션

- jQuery 애니메이션 연결하기

- 정리해봅시다

- 프로그래밍 과제

 

10. 인터랙티브 프로그래밍

- setTimeout을 사용한 코드 지연

- 타임아웃 취소하기

- Setlnterval을 사용해 코드를 여러 번 호출하기

- Setlnterval을 사용한 엘리먼트 애니메이션

- 사용자 행동에 반응하기

- 정리해봅시다

- 프로그래밍 과제

 

11. 보물 찾기 게임

- 게임 설계하기

- HTML을 사용해 웹 페이지 만들기

- 보물의 위치 무작위로 고르기

- 클릭 핸들러

- 하나로 합치기

- 정리해봅시다

- 프로그래밍 과제

 

12. 객체지향 프로그래밍

- 단순 객체

- 객체에 메서드 추가하기

- 생성자를 사용한 객체 만들기

- 자동차 그리기

- drawCar 함수 테스트하기

- 프로토타입을 사용해 객체 설정하기

- 정리해봅시다

- 프로그래밍 과제

 

3. 캔버스

 

13. 캔버스 엘리먼트

- 간단한 캔버스 만들기

- 캔버스에 그리기

- 색상 바꾸기

- 사각형 외곽선 그리기

- 직선 또는 경로 그리기

- 경로 색칠하기

- 호와 원 그리기

- 함수를 사용해 원을 여러 개 그리기

- 정리해봅시다

- 프로그래밍 과제

 

14. 캔버스 애니메이션

- 페이지를 가로질러 이동하기

- 정사각형의 크기 바꾸기

- 활발한 벌 그리기

- 공 튕기기

- 정리해봅시다

- 프로그래밍 과제

 

15. 키보드를 사용한 애니메이션 제어

- 키보드 이벤트

- 키보드로 공 움직이기

- 하나로 합치기

- 코드 실행하기

- 정리해봅시다

- 프로그래밍 과제

 

16. 뱀 게임 만들기: 1

- 게임 플레이

- 게임의 구조

- 게임 설정

- 경계선 그리기

- 점수 표시하기

- 게임 끝내기

- 정리해봅시다

- 프로그래밍 과제

 

17. 뱀 게임 만들기: 2

- 블록 생성자 만들기

- 뱀 만들기

- 뱀 움직이기

- 키보드로 뱀의 방향 설정하기

- 사과 만들기

- 하나로 합치기

- 정리해봅시다

- 프로그래밍 과제

 

마치며: 이후 학습할 내용

용어집

 

 

출판사 리뷰

 

프로그래밍 언어는 일반적인 언어와 비슷합니다. 문법과 어휘를 익혀야 하고 시간도 많이 들여야 합니다. 코드를 많이 작성하고 읽어보는 것이 프로그래밍 능력을 발전시킬 유일한 방법입니다. 이 책에서는 연습문제프로그래밍 과제를 통해 실제로 코드를 작성하고 테스트할 수 있도록 도와줍니다. 책에 등장하는 코드 예제를 직접 입력해보고 테스트해보시길 바랍니다. 책에 실린 코드를 실행해보는 건 프로그래밍을 처음 배울 때 유용한 방법입니다. 나중에 스스로 코드를 작성하기 시작할 즈음에는 프로그래밍에 대한 이해가 더욱 깊어져 있을 것입니다. 코드 작성량이 늘어날수록 자연스럽게 쓰게 되고, 능숙하게 쓰는 수준에 이를 것입니다. 실제 어떻게 동작하는지 완벽히 이해하지 못하겠다면 코드를 약간씩 바꿔보고, 그럴 결과가 어떻게 바뀌는지 확인해보는 것도 좋습니다. 기대한 결과가 나오지 않을 때는 이유를 알아낼 있을지도 확인해보세요. 이 책은 여러분이 자바스크립트의 세계로 가는 데 많은 도움을 줄 것입니다.

 

 

이 책의 대상 독자

 

책은 자바스크립트를 배우고 싶은 분이나 프로그래밍을 처음 시작하는 분을 위해 쓰였습니다. 아이들이 편하게 읽을 있도록 썼지만 사실 나이에 상관없이 누구나 프로그래밍 입문서로 활용해도 좋습니다. 책은 단순 자료형에서 시작해서 복합 자료형, 제어문, 함수에 이르기까지 자바스크립트 관련 지식을 차근차근 쌓을 있게 도와줍니다. 뒤에는 사용자가 마우스를 움직이거나 키보드 키를 누를 반응하는 코드를 작성하는 방법도 배웁니다. 그리고 마지막에는 자바스크립트로 여러분이 상상하는 것은 무엇이든 그리거나 움직이게 하는 캔버스 엘리먼트를 배웁니다. 과정에서 여러분의 프로그래밍 기술을 발전시키고 배운 것을 활용할 있도록 가지 게임도 직접 만들어볼 것입니다.

 

신고
Trackback 0 | Comment 0

 

 

 

객체지향 자바스크립트의 원리

 

저자 니콜라스 C. 자카스

역자 김태곤

출간예정 2015326()

정가 16,500

페이지 152

판형 173 x 230

ISBN 978-89-94774-92-3 (93000)

원서정보 THE PRINCIPLES OF OBJECT–ORIENTED JAVASCRIPT

 

 

책 소개

 

인기 작가이자 TandemSeven의 프론트엔드 아키텍트인 코디 린들리가 추천한 책

 

C++와 자바 같은 전통적인 객체지향 언어를 사용하는 사람에게는 자바스크립트가 전혀 객체지향적으로 보이지 않을 것이다. 자바스크립트에는 클래스라는 개념도 없으며, 객체를 정의하지 않고도 코드를 작성할 수 있다. 하지만 섣부른 판단은 금물이다. 자바스크립트는 여러 설계 기법을 적용할 수 있는 매우 강력하고 표현력 있는 객체지향 언어이다.

 

이 책의 저자는 자바스크립트의 객체지향적인 특성을 철저히 파헤치는 동시에 자바스크립트의 독특한 상속 기법과 주요 특성을 밝히고 있다. 이 책을 통해 다음과 같은 내용을 배울 수 있다.

 

- 원시 값과 참조 값의 차이

- 자바스크립트 함수가 독특한 이유

- 객체를 생성하는 다양한 방법

- 직접 생성자를 정의하는 방법

- 프로토타입을 이해하고 다루는 방법

- 타입과 객체의 상속 패턴

 

숙련된 개발자도 이 책을 보면 자바스크립트에 대해 더 잘 이해하게 될 것이다. 객체를 조작할 때 자바스크립트 내부적으로 일어나는 동작을 이해하면 더 명확하고 유연하며 효율적인 코드를 작성할 수 있다.

 

이 책에서 다루는 내용

 

- 자바스크립트만의 독특한 객체지향 프로그래밍 방법

- 프로토타입 기반 상속과 생성자 함수의 개념

- 객체를 생성하는 법, 자신만의 타입을 정의하는 법, 상속을 사용하는 법, 객체를 다루는 방법 등

- ES5객체는 물론 ES5의 새 기능을 배우는 동안 이해해야 할 ES3의 일부 기능에 대해서도 균형 있게 제시

- 자바스크립트를 전문적으로 이해하고 작성할 때 필요한 모든 지식

 

독자대상

 

초중급

 

 

저자 소개

 

니콜라스 C. 자카스 Nicholas C. Zakas

 

Box에서 근무하는 소프트웨어 엔지니어로서 자바스크립트 최신 모범 사례에 대한 글과 강연으로 유명하다. 5년간 야후!에서 근무하며 야후! 홈페이지를 책임지는 프론트엔드 엔지니어로 일했다.

 

저서로는 『읽기 좋은 자바스크립트 코딩 기법』(한빛미디어, 2013), 『프론트엔드 개발자를 위한 자바스크립트 프로그래밍』(인사이트, 2013) 등이 있다.

 

 

역자 소개

 

김태곤

 

호기심 가득한 프론트엔드 개발자. 현재는 Fancy(http://www.fancy.com)라는 서비스를 만들고 있으며, NHN에 근무할 때는 스마트 에디터, 진도 자바스크립트 프레임워크, 네이버 지도, XpressEngine 등의 프로젝트에 참여했다. 배우는 것만큼 지식을 나누는 것도 좋아해서 강의와 번역을 꾸준히 진행하고 있으며 『거침없이 배우는 자바스크립트』(지앤선), 『자바스크립트 쿡북』(한빛미디어), 『자바스크립트를 깨우치다』(비제이퍼블릭) 등 다섯 권의 웹 개발 서적을 우리말로 옮겼다.

 

개인 블로그(http://taegon.kim)와 트위터(@taggon)를 통해 웹 기술과 관련한 글을 전하고 있다.

 

 

목차

 

1. 원시 타입과 참조 타입

 

타입이란?

원시 타입

- 원시 타입 종류 확인

- 원시 메소드

참조 타입

- 객체 생성

- 객체 참조 제거

- 프로퍼티 추가 및 제거

내장 타입 인스턴스화

- 리터럴 형식

- 객체 및 배열 리터럴

- 함수 리터럴

- 정규 표현식 리터럴

프로퍼티 접근

참조 타입 확인

배열 확인

원시 래퍼 타입

요약

 

2. 함수

 

선언 vs. 표현식

값으로서의 함수

인수

오버로딩

객체 메소드

- This 객체

- This값 변경

요약

 

3. 객체의 이해

 

프로퍼티 정의

프로퍼티 탐지

프로퍼티 제거

열거

프로퍼티 종류

프로퍼티 속성

- 공통 속성

- 데이터 프로퍼티 속성

- 접근자 프로퍼티 속성

- 여러 프로퍼티 정의하기

- 프로퍼티 속성 가져오기

객체 수정 방지

- 확장 방지

- 객체 봉인

- 객체 동결

요약

 

4. 생성자와 프로토타입

 

생성자

프로토타입

- [[Prototype]] 프로퍼티

- 생성자와 프로토타입 함께 사용하기

- 프로토타입 체이닝

- 내장 객체의 프로토타입

요약

 

5. 상속

 

프로토타입 체이닝과 Object.prototype

- Object.prototype에서 메소드 상속

- Object.prototype 수정

객체 상속

생성자 상속

생성자 훔치기

상위타입 메소드 접근

요약

 

6. 객체 패턴

 

비공개 멤버와 특권 멤버

- 모듈 패턴

- 생성자의 비공개 멤버

믹스인

스코프 세이프 생성자

요약

 

 

이 책의 구성

 

 

1: 원시 타입과 참조 타입

 

자바스크립트에 있는 두 종류의 타입, 원시 타입과 참조 타입에 대해 다룬다. 두 종류가 서로 어떻게 다른지 알려주는 한편 자바스크립트를 전체적으로 이해하기 위해 두 타입의 차이를 아는 것이 얼마나 중요한지 설명한다.

 

2: 함수

 

함수의 입출력에 대해 다룬다. 자바스크립트는 일급 함수 덕분에 재미있는 언어가 됐다.

 

3: 객체의 이해

 

자바스크립트의 객체 구조를 설명한다. 자바스크립트 객체는 다른 언어의 객체와 다르게 동작하기 때문에 객체의 동작 원리를 잘 이해하고 있어야 자바스크립트를 능수능란하게 다룰 수 있다.

 

4: 생성자와 프로토타입

 

생성자에 대해 살펴보며 앞서 함수에 대해 배웠던 내용을 심화 학습한다. 모든 생성자는 함수이지만 일반적인 함수와는 사용법이 조금 다르다. 두 방식의 차이점을 살펴보는 한편 고유 타입을 작성하는 법도 배울 것이다.

 

5: 상속

 

자바스크립트에서 상속이 이루어지는 방식을 설명한다. 자바스크립트에는 클래스가 없지만 그렇다고 상속을 할 수 없다는 뜻은 아니다. 프로토타입 상속을 배우고 프로토타입 상속과 클래스 기반 상속의 차이점에 대해서 알아본다.

 

6: 객체 패턴

 

자주 사용되는 객체 패턴을 살펴본다. 자바스크립트에는 여러 방법으로 객체를 작성하고 구성할 수 있는데, 그중 가장 유명한 패턴 몇 가지에 대해 배워볼 것이다.

 

 

출판사 리뷰

 

개발자 대부분은 객체지향 프로그래밍이라는 말을 들으면 C++이나 자바 등 클래스를 중심으로 한 객체지향 프로그래밍 언어를 떠올린다. 이런 언어로 어떤 작업을 하려면 간단한 명령행 프로그램을 만들 때도 클래스를 만드는 법을 먼저 배워야 한다. 실무에서 많이 사용하는 디자인 패턴은 클래스 기반 개념을 더 보강한다. 하지만 자바스크립트는 클래스를 사용하지 않는데, 이 때문에 C++이나 자바를 먼저 배운 사람들은 자바스크립트를 배울 때 혼란스러워한다.

 

객체지향 언어에는 캡슐화(Encapsulation), 집합(Aggregation), 상속(Inheritance), 다형성(Polymorphism)과 같은 특징이 있다. 자바스크립트에는 클래스가 없지만, 앞에서 말한 특성은 모두 가지고 있으며 일부는 의외의 방식으로 구현되어 있다. 이 책에서는 이 특성들이 자바스크립트로는 어떻게 만들어지는지 설명하고 있다. 그래서 이 책은 이미 개발에 익숙한 프로그래머가 객체지향 자바스크립트 개발을 시작할 때 아주 좋다. 또 자바스크립트 개발자 중에는 ECMAScript 3(ES3) 수준의 객체만 이해하고 있는 사람이 많은데, 이런 사람들에게는 ECMAScript 5(ES5)의 객체 기능에 대해 잘 알려줄 책이 필요하다. 그런 의미에서 이 책은 ES3 객체와 ES5 객체의 간극을 메워주는 좋은 안내서가 될 것이다.

 

이 책을 읽는 독자들은 자바스크립트만의 독특한 객체지향 프로그래밍 방법을 배우게 될 것이다. 클래스나 클래스 기반 상속에 대한 개념은 잠시 뒤로하고 프로토타입 기반 상속과 생성자 함수에 대해 배울 것이며, 객체를 생성하는 법, 자신만의 타입을 정의하는 법, 상속을 사용하는 법, 객체를 다루는 방법 등도 배우게 될 것이다. 한마디로 이 책을 읽으면 자바스크립트를 전문적으로 이해하고 작성할 때 필요한 모든 지식을 배우게 된다는 뜻이다.

 

이 책의 대상 독자

 

이 책은 객체지향 프로그래밍은 알지만, 자바스크립트에서 객체지향 프로그래밍이 어떻게 동작하는지 정확히 모르는 사람을 위한 안내서로 기획했다. 자바, C# 또는 다른 언어의 객체지향 프로그래밍에 익숙하다면 이 책을 강력히 추천한다. 특히 이 책은 다음과 같은 독자를 대상으로 한다.

 

- 객체지향 프로그래밍의 개념에 익숙하고 이를 자바스크립트에 적용하고 싶은 개발자

- 코드를 조금 더 효율적으로 구성하고 싶은 웹 응용프로그램 및 Node.js개발자

- 자바스크립트에 대해 깊이 있게 알고 싶은 초보 자바스크립트 개발자

 

이 책은 자바스크립트를 한 번도 작성해본 적 없는 초심자에게는 적합하지 않다. 이 책의 내용을 이해하려면 자바스크립트 코드를 작성하고 실행하는 방법을 잘 알고 있어야 하기 때문이다.

 

 

신고
Trackback 0 | Comment 0

 

전문가를 위한 자바스크립트

:그 한계를 넘어서

 

시리즈 전문가를 위한 시리즈-004

저자 존 라쉬

역자 양정열, 이지은

 

출간예정 201488()

정가 30,000

페이지 432

 

판형 188 x 245

ISBN 978-89-94774-73-2 (93000)

원서정보 JAVASCRIPT PROGRAMMING: Pushing the Limits

 

 

책 소개

 

자바스크립트 개발 기술을 한계까지,

그리고 그 이상으로!

 

자바스크립트는 더 새롭고 더 빠른 자바스크립트 가상머신과 자바스크립트 프레임워크의 다양한 개선사항들로 인해 클라이언트와 서버, 모바일 애플리케이션 개발을 위한 가장 강력한 도구가 되었다. 개발 기술을 향상시키고 싶은 개발자를 위한 자바스크립트의 숨겨진 기능을 소개한다. 고객이 원하는 복잡한 응용 애플리케이션의 개발에 필요한 지식과 기술로 더 빨리 개발하고 실행할 수 있다.

 

이 책은 실용적인 실습 예제를 보여주는 방법을 통해 실제 애플리케이션의 개발 기초부터 단계별로 소개한다.

 

이 책에서 다루는 내용

 

--백본을 사용하는 프런트엔드 데스크톱과 모바일 애플리케이션 개발

--자바스크립트 템플릿을 통한 제한 없는 복잡도 관리

--노드와 몽고DB를 사용하는 이벤트 기반 프로그래밍

--제스처와 그 외 모바일 전용 API를 통한 모바일 웹 애플리케이션의 기능 강화

--2D 캔버스 및 라파엘을 사용한 SVG 생성

--3D 캔버스와 WebGL, Three.js를 통한 3D 애니메이션

--웹소켓을 사용한 리얼타임 애플리케이션

--높은 확장성과 약한 결합도의 애플리케이션 개발을 위한 애자일 개발

--데스크톱 애플리케이션을 모바일 애플리케이션으로 전환

 

자바스크립트 개발 노하우를 아는 개발자이거나 HTMLCSS를 사용한 경험이 있는 웹 개발자 및 디자이너라면, 『전문가를 위한 자바스크립트: 그 한계를 넘어서』를 통해 킬러 애플리케이션 개발에 필요한 기술을 얻을 수 있다.

 

참고 사이트

http://www.wiley.com/go/ptl/javascriptprogramming

 

독자대상

중고급

 

 

저자 소개

 

존 라쉬Jon Raasch

데스크톱과 모바일의 최신 웹 애플리케이션 개발을 전문으로 하는 웹 개발 프리랜서다. 성능 또는 사용성 및 기능성 향상을 통해 사용자에게 좋은 사용자 경험을 제공하는 데 초점을 맞춰 자바스크립트 애플리케이션을 개발한다. 사용자의 요구사항을 만족시키면 비즈니스 목표는 저절로 따라온다고 믿는다. 이 책은 그의 세 번째 웹 개발서다.

 

 

역자 소개

 

양정열

경력의 대부분은 프런트엔드 개발자이며, ktds및 알티캐스트에서는 PM업무를 수행해오고 있다. /모바일 개발 기술 및 미디어 플랫폼에 관심이 있으며, 최근에는 자바스크립트 프레임워크에 관한 관심이 커지고 있다. 현재 기술 전문가 그룹 GoDev(www.godev.kr)과 미래창조과학부 위촉 한이음멘토로 활동하고 있다.

 

이지은

모바일 솔루션 개발 및 SaaS플랫폼 운영 업무를 수행했다. 현재는 통신사의 과금 서버 운영 및 검증 업무를 하고 있으며, 기술 전문가 그룹 GoDev(www.godev.kr)의 아키텍트로 활동하고 있다. 웹 애플리케이션 및 모바일 애플리케이션에 관심이 많으며, 자바스크립트 기술의 발전 동향과 활용에도 관심을 갖고 있다.

 

 

목차

 

1. 기초

 

1. 모범 사례

--느슨한 결합

--자바스크립트 MVC와 템플릿

--개발 도구

--테스트 \

--요약

--추가 자료

 

2. 라이브러리와 프레임워크, 플러그인

--자바스크립트 라이브러리 선택

--프레임워크

--여러 가지 스크립트

--HTML5 보일러플레이트

--jQuery 플러그인 찾기

--요약

--추가 자료

 

2. 프런트엔드 개발

 

3. Backbone.js

--백본 시작하기

--백본 모델

--백본 컬렉션 사용

--백본 뷰 이해

--데이터 저장 및 가져오기

--마무리

--라우터

--이벤트

--컬렉션

--요약

--추가 자료

 

4. 자바스크립트 템플릿

--템플릿 소개

--언더스코어 템플릿 사용

--백본에서 템플릿 사용

--요약

--추가 자료

 

5. 폼 생성

--단계적 향상의 개념

--HTML5 동작

--구 버전 브라우저를 위한 폴리필 사용

--REST API 연결

--백본 폼

--요약

--추가 자료

 

3. 서버 측 자바스크립트

 

6. Node.js소개

--왜 노드인가?

--노드 설치

--노드 시작

--노드 모듈

--노드 패턴

--요약

--추가 자료

 

7. 익스프레스 프레임워크

--익스프레스

--라우트

--뷰 생성

--폼 데이터 처리

--이메일 전송

--요약

--추가 자료

 

8. 몽고DB

--NoSQL의 무엇이 좋은가?

--몽고DB 시작

--몽고DB CRUD

--몽구스

--기타 데이터베이스 옵션

--요약

--추가 자료

 

4. 한계를 넘어서

 

9. 웹소켓 리얼타임 애플리케이션

--웹소켓

--Socket.IO 시작

--실시간 채팅방 만들기

--요약

--추가 자료

 

10. 모바일

--모바일 앱

--터치스크린 통합

--위치정보

--전화와 SMS

--폰갭

--요약

--추가 자료

 

11. 자바스크립트 그래픽스

--캔버스

--SVG

--Raphaël.js

--gRaphaël로 차트 그리기

--WebGL 3D 캔버스

--CSS 3D Transform

--요약

--추가 자료

 

12. 앱 출시

--성능 검사

--배포

--출시

--추가 자료

 

부록. LESS CSS전처리

--LESS

--LESS 기초

--함수와 믹스인

--파일 구조

--요약

--추가 자료

 

 

이 책의 구성

 

1: 기초

 

1부에서는 몇 가지 모범 사례와 이 책에서 전달하고자 하는 두 가지 메시지인 느슨한 결합과 관심사항의 분리에 대해 알아본다. 그리고 다양한 개발 툴에 대해 살펴보고, 그런트(Grunt.js)를 사용한 테스트 주도 개발(test driven development, TDD)에 대해 배워본다. 마지막으로 개발에 도움이 될 수 있는 다양한 라이브러리와 프레임워크를 비교해보고, 프로젝트별로 가장 적합한 라이브러리나 프레임워크를 선택하는 기준을 알아본다.

 

2: 프런트엔드 개발

 

2부에서는 프런트엔드 애플리케이션을 MVC로 설정하는 데 도움을 주는 백본(Backbone.js) 및 데이터를 인터페이스와 분리시키는 방법을 살펴본다. 그리고 백본에서 자바스크립트 템플릿을 활용한 뷰를 렌더링하는 방법에 대해 배운다. 마지막으로 애플리케이션의 토대를 완성할 수 있도록 폼을 처리하고 검사하는 몇 가지 모범 사례를 다뤄본다.

 

3: 서버 측 자바스크립트

 

3부에서는 노드(Node.js)를 사용해서 서버 측 자바스크립트 작성 방법을 배운다. 노드의 기초와 동작 방법 및 적용 시점에 대해서 알아본다. 그리고 일반적인 노드 개발 패턴과, 노드 개발 과정을 간소화하고 잘 실행할 수 있도록 도움을 주는 익스프레스(express) 프레임워크를 소개한다. 마지막으로 MySQL 같은 전통적인 관계형 데이터베이스를 대신해서 노드와 함께 사용할 수 있는 몽고DB NoSQL 데이터베이스에 대해서도 배운다.

 

4: 한계를 넘어서

 

4부에서는 애플리케이션의 기능을 극대화한다. 먼저 서버 측 자바스크립트 지식과 클라이언트 측의 기술을 종합하여 실시간 애플리케이션 개발 방법을 배운다. 다음으로 애플리케이션의 모바일 컴포넌트 개발을 다룬다. 또한 캔버스(Canvas) SVG를 사용하는 기본적인 동작을 살펴보고, Raphaël SVG library사용 방법도 알아본다. 마지막으로 출시에 앞서 마지막으로 확인해야 하는 이슈 리스트를 제공한다.

 

 

출판사 리뷰

 

최근 몇 년 사이에 HTML5가 다양한 자바스크립트 API를 소개했고, 개발자가 브라우저까지 신경 쓰게 되었다. 새로운 API 3D그래픽, 지리정보 데이터, 고성능 애니메이션 같은 인상적인 기능까지 만들어냈다. 하지만 HTML5가 화려함만으로 사용자들을 놀라게 한 건 아니다. 개발 과정을 간소화시키는 많은 API를 포함하고, 차세대 웹 애플리케이션을 만들 수 있게 되었다. 브라우저의 발전 외에, 노드(Node.js)를 사용하는 서버 측 자바스크립트도 빼놓을 수 없다. 노드는 자바스크립트로 만드는 학습용 수준의 서버가 아니다. 이는 상용화가 가능한 서버 솔루션으로, 실시간 메시지 통신을 위한 최신 웹 애플리케이션 모델을 제공한다.

 

이 책에서는 차세대 자바스크립트 애플리케이션의 개발 방법을 살펴본다. 뿐만 아니라 사용해야 하는 개발 방법의 이론에 대해서도 설명한다. 이 책을 다 읽을 즈음에는 다양한 대화형 애플리케이션의 개발 기술을 갖추게 될 것이다. 하지만 모범 사례를 더 깊이 있게 이해할 수 있게 될 것이란 점이 중요하며, 자바스크립트나 다른 언어를 사용하는 것과 상관없이 미래형 애플리케이션을 개발할 수 있게 될 것이다.

 

누구를 위한 책인가?

 

『전문가를 위한 자바스크립트: 그 한계를 넘어서』는 최신 웹 애플리케이션 개발의 로드맵을 제공한다. 개발 과정에서 맞닥뜨릴 수 있는 일반적인 문제의 해답을 제시하고, 다양한 상황에 활용할 수 있는 모범 사례를 살펴본다. 이 책은 노드 개발에 관심이 있고 자바스크립트에 대한 기본적인 이해가 있는 프런트엔드 전문 개발자와 백엔드 개발자를 대상으로 한다.

 

자바스크립트에 대한 중급 정도의 이해가 있는 개발자는 이 책에서 소개하는 개념과 예제를 따라 올 수 있다(마지막에는 고급 스킬까지 익힐 수 있을 것이다). 클라이언트 자바스크립트를 완전히 이해했다면, 노드를 이해하기 위해 서버 자바스크립트에 대한 경험이 없어도 된다. 3부에서 기초부터 다루기 때문이다.

 

신고
Trackback 0 | Comment 0

 

 

전문가를 위한 CSS3

: 그 한계를 넘어서

 

시리즈명 전문가를 위한 시리즈 003

저자 스테판 그레이그

역자 유하영, 전우영

 

출간예정 2014730()

정가 32,000

페이지 452

 

판형 188 x 245

ISBN 978-89-94774-72-5 (93000)

원서정보 CSS3: Pushing the Limits

 

 

책 소개

 

CSS3의 한계를 뛰어넘는 능력으로 디자인 기술의 혁신을 체험하자!

 

CSS의 혁명적인 도약이라고 평가 받고 있는 CSS3는 새로운 기능들로 알차게 무장하여, 일반적인 스타일링 언어가 갖는 한계를 넘어 그 활용 영역을 대폭 확장시켰다. 『전문가를 위한 CSS3: 그 한계를 넘어서』는 고객들의 요구와 사용자들의 기대에 부응하는 좀 더 정교한 웹 사이트와 응용프로그램들을 만들기 위하여 새로운 기능들을 어떻게 활용해야 하는지를 상세히 설명하고 있다.

 

이 책은 CSS3의 새롭고 한 단계 발전된 기능들을 모두 소개하고 있다. 그리고 그 기능들을 활용하여 매혹적인 반응형 웹 사이트와 응용프로그램들을 디자인할 수 있도록 실질적인 예제들과 생생한 데모 파일들을 제공하고 있다.

 

 

이 책에서 다루는 내용

 

--고급 선택자들과 새롭게 등장한 강력한 텍스트 툴들에 대한 활용법

--상황에 맞게 조정이 가능한 배경 이미지, 아름다운 보더 장식, 복잡한 패턴을 만드는 법

--2D 3D 전환, 전이, 그리고 키프레임 기반의 애니메이션을 통하여 놀라운 효과를 만드는 법

--새로운 레이아웃 툴들을 통해 레이아웃에 관한 다양하고 어려운 문제를 빠르게 해결하는 법

--미디어 쿼리와 새로운 레이아웃 모듈들을 활용하여 반응형 웹 디자인을 간단하게 만드는 법

--의사-요소들을 활용하여 추상적이고 확장 가능한 이미지와 아이콘을 제작하는 법

--전처리기의 활용과 CSS를 스타일시트 본문 내부의 프로그래밍 언어처럼 활용하는 법

 

CSS3에 대한 기본 지식을 넘어서, CSS3가 지닌 그 이상의 막강한 능력을 배울 수 있는 이 기회를 놓치지 않도록 하자!

 

 

데모 파일 다운로드

 

http://bjpublic.webhard.co.kr/

 

(아이디: webhard, 비밀번호: webhard)

 

독자대상

 

중고급

 

저자 소개

 

스테판 그레이그Stephen Greig

 

아주 열정적인 웹 개발자이며 디자이너다. 시멘틱 코드를 기반으로 환상적인 시각적 효과를 제공하는 기능적 웹 사이트를 제작하는 데 관심을 쏟고 있다.

 

 

역자 소개

 

유하영

 

전남대학교 영어영문과를 졸업하고 이후 성균관대학교 번역/테솔 대학원을 졸업했다. 웹 컨텐츠 관리자로 경력을 쌓다가 현재 전문 번역가로 활동하고 있으며, 특히 기술 번역에 역량을 발휘하고 있다. 주요 번역서로 『라이프 코칭 가이드』, 『아버지의 러브레터』, 『홈스쿨 이렇게 시작하세요』, 『탁월한 여성의 11가지 브랜드』 등이 있고 공동 번역서로 『거침없이 배우는 라즈베리 파이』, 『아두이노 로봇 보난자』가 있다.

 

전우영

 

데이터베이스 프로그래머로 출발하여 국내 많은 기업체들의 CRM DW(Customer Relationship Management Data Warehouse)를 구축했고, 그 후 외국계 기업 IT분야에서 10년 넘게 경력을 쌓은 IT업계의 인재다. 현재는 빅 데이터 시스템의 CRM 적용 및 Embedding System에 관한 연구를 하고 있으며, 공동 번역서로 『거침없이 배우는 라즈베리 파이』, 『아두이노 로봇 보난자』가 있다.

 

 

목차

 

1. 새로운 기능

 

1. 고급 선택자

--자식과 형제 선택자

--속성 선택자

--의사-클래스

--통합 예제 

--요약 

--참고 자료

 

2. 문자를 위한 새로운 툴

--문자 제대로 꾸미기

--글쓰기 방식

--시각적인 효과가 전체의 반이다

--요약

--참고 자료

 

3. 배경과 보더를 위한 새로운 툴

--CSS3의 뛰어난 배경 제어 능력 

--다수의 배경 이미지 활용

--보더를 위한 새로운 툴

--그라디언트

--요약

--참고 자료

 

4. CSS 필터와 블렌딩 모드를 적용한 브라우저

--CSS3 필터

--블렌딩 모드

--요약

--참고 자료

 

2. 전환, 전이, 그리고 애니메이션

 

5. CSS3 2D 전환

--transform 속성

--전환 원점

--전환을 복합적으로 결합하기

--브라우저 지원 상황

--요약

--참고 자료

 

6. 전이 기능으로 2D 전환에 생동감 부여하기

--CSS 전이 소개

--전이 활용

--전이와 2D 전환의 결합

--흩어져 있는 구조의 이미지 갤러리 만들기

--요약

--참고 자료

 

7. 3D 전환으로 열리는 새로운 세계

--3D 전환이란?

--관점(Perspective)에 관한 모든 것

--기타 전환 속성들

--3D 전환을 사용하여 정육면체 들기

--전이로 정육면체 애니메이션 만들기

--3D 전환에 대한 브라우저 지원 상황

--요약

--참고 자료

 

8. 애니메이션 만들기

--CSS3 애니메이션에 대해

--CSS3 애니메이션 활용

--단계적 향상을 위해 애니메이션 최소화하기

--애니메이션 결합

--CSS 애니메이션에 대한 브라우저 지원 상황

--요약

--참고 자료

 

3. 새로운 레이아웃 툴에 대한 이해

 

9. 다단 레이아웃

--레이아웃 툴의 진화

--레이아웃 솔루션의 새로운 기능

--다단 레이아웃 소개

--다단 레이아웃 만들기

--다단 레이아웃에 대한 브라우저 지원 상황

--요약

--참고 자료

 

10. 플렉스박스 레이아웃

--플렉스박스란?

--새로운 플렉스박스 속성

--플렉스박스 레이아웃 만들기

--플렉스박스에 대한 브라우저 지원 상황

--요약

--참고 자료

 

11. 격자 레이아웃, 그리고 리전과 익스클루전

--CSS 격자 레이아웃 소개

--CSS 리전 소개

--CSS 익스클루전 소개

--요약

--참고 자료

 

12. CSS 미디어 쿼리와 반응형 웹

--반응형 웹 디자인이란?

--미디어 쿼리를 사용하여 기기별 디자인 만들기

--뷰포트 meta 태그 활용

--다단 레이아웃 반응형 웹 만들기

--플렉스박스 레이아웃 반응형 웹 만들기

--CSS 격자 레이아웃에 대한 한마디

--RWD의 현재

--요약

--참고 자료

 

4. 한계를 넘어서

 

13. 의사-요소의 창의적 활용

--의사-요소와 의사-클래스의 차이점

--의사-요소의 범주

--의사-요소로 서체 개선하기

--의사-요소를 활용한 콘텐츠 생성

--의사-요소 그 한계를 넘어서

--요약

--참고 자료

 

14. 전처리기와 CSS3의 활용

--CSS 전처리기란?

--CSS 전처리기가 할 수 있는 일은?

--올바른 전처리기 선택

--전처리기의 단점에 대한 이해

--Mixin으로 CSS3 효과적으로 활용하기

--간단한 수식으로 비례 레이아웃 만들기

--함수로 다이내믹한 색상 팔레트 만들기

--전처리기에서 주의할 점

--요약

--참고 자료

 

15. CSS3만을 이용한 실용적 솔루션 만들기

--CSS3만을 이용한 탭 콘텐츠 만들기

--CSS3만을 사용하여 라이트박스 기능 만들기

--CSS3만을 이용하여 3D 이미지 캐러셀 만들기

--요약

--참고 자료

 

16. CSS의 미래

--CSS 변수

--CSS 선택자: 레벨 4

--CSS의 조건 규칙을 사용한 브라우저 지원

--의사-요소: 레벨 4

--자신의 목소리를 내라!

--요약

--참고 자료

 

 

이 책의 구성

 

1: 새로운 기능

 

1: 고급 선택자에서는 예상하지 못했던 방식으로 요소들을 대상으로 삼는 방법(target elements)에 대해 설명한다.

 

2: 문자를 위한 새로운 툴에서는 새로운 CSS3모듈에서 제공하는 정교한 제어 기능을 통해 문자를 완벽하게 만드는 법에 대해 설명한다.

 

3: 배경과 보더를 위한 새로운 툴에서는 레벨 3의 배경과 보더 모듈들로 무장한 새로운 기능들에 대해 설명한다.

 

4: CSS 필터와 블렌딩 모드를 적용한 브라우저에서는 CSS3필터들과 이들을 사용하여 얻을 수 있는 다양한 효과에 대해 상세하게 분석하고 블렌딩 모드의 기능들에 대해서 간단하게 살펴본다.

 

 

2: 전환, 전이, 그리고 애니메이션

 

5: CSS 2D 전환에서는 2D환경에서 요소들의 모양을 조정하도록 도와주는 전환의 기능들에 대

해 소개한다.

 

6: 전이 기능으로 2D 전환에 생동감 부여하기에서는 전이가 무엇인지 상세히 알아보고, 가장 뛰어난 효과들을 만들어내기 위해 전이가 가진 기능을 어떻게 활용할 것인지에 대해 살펴본다.

 

7: 3D 전환으로 열리는 새로운 세계에서는 기본적인 3D전환 속성들에 대해 상세히 설명한다.

 

8: 애니메이션 만들기에서는 CSS애니메이션에 대해 모듈별로 분류하여 설명하고, 다양한 제어 방식에 대해서도 심도 있게 다룬다. 또한 단계적 향상이라는 법칙 안에서 효과들을 영리하게 적용할 방법에 대해서도 설명한다.

 

 

3: 새로운 레이아웃 툴에 대한 이해

 

9: 다단 레이아웃에서는 예전과 현재의 레이아웃 솔루션이 만족스러운 결과를 내지 못하는 이유에 대해서 설명하고, CSS3가 새롭게 제안한 레이아웃 모듈들에 대해 살펴본다.

 

10: 플렉스박스 레이아웃에서는 새로운 레이아웃 모듈들 중에 가장 포괄적인 격자 레이아웃과 함께 유동적 레이아웃 모듈 또는 플렉스박스라고 하는 모듈에 대해 소개한다.

 

11: 격자 레이아웃, 그리고 리전과 익스클루전에서는 레이아웃 모듈의 개념에 대해 흥미로운 점을 위주로 설명하고, 각 모듈이 제공하는 툴들과 문법에 대하여 기술적인 면을 위주로 다룬다.

 

12: CSS 미디어 쿼리와 반응형 웹에서는 새로운 메커니즘이 웹 사이트가 적응력을 갖는 데 어떤 식으로 도움이 될 수 있는지에 대해 살펴본다.

 

 

4: 한계를 넘어서

 

13: 의사-요소의 창의적 활용에서는 의사-요소와 의사-클래스 간의 차이점을 설명하고, 의사-요소를 통해 타이포그래피의 기능을 강화하고 콘텐츠를 생성하는 방법과 그 외 아주 기발한 활용 방안들에 대해 설명한다.

 

14: 전처리기와 CSS3의 활용에서는 전처리기가 정확히 무엇인지 그리고 왜 존재하는지에 대해 설명한다. 그리고 성능이나 문법 면에서 좀 더 인기가 있는 전처리기에 대해서 살펴보고, CSS3를 그 한계치까지 최대한 활용할 수 있는 방법에 대해서 자세히 설명한다.

 

15: CSS3만을 이용한 실용적 솔루션 만들기에서는 흔히 활용되는 상호작용을 하는 세 가지 요소를 만드는 법에 대해 차례차례 살펴본다.

 

16: CSS의 미래에서는 “CSS의 미래는 어떤 것일까?”라는 문제에 대해서 통찰해본다.

 

 

출판사 리뷰

 

CSS(Cascading Style Sheets)는 웹 디자이너들에게 반드시 필요한 툴 키트다. 1996년에 사용되기 시작한 이후 여러 가지 제약으로 생명이 없었던 HTML에 심장과 영혼을 부여했다고 할 수 있다. CSS는 그 이후 많은 발전을 거듭했다. 그리고 가장 최근에 나온 CSS3는 매우 다양하고 놀라운 기능들을 담고 있으며 단순한 스타일링 언어가 갖는 한계를 넘어서고 있다. 이제는 단순히 웹 페이지의 배경색을 입히는 정도를 떠나서 배경이 달라지기도 하고 모양을 조정하기도 하며 색상이 달라지기도 한다. 그리고 CSS와 유사한 종류로 더 방대하고 뛰어난 기능을 가졌다고 하는 자바스크립트에 의존하지 않더라도 이런 모든 기능들을 CSS는 가능하게 만든다.

 

CSS3는 이미 너무나 엄청난 주목을 받아왔다. 대부분의 서적은 비슷비슷한 부분들만 계속 다루어졌지만, 이 책은 CSS3의 한쪽 구석에 숨겨진 보석을 찾는 데 더 주력하였다. 그래서 여러분이 이 단순한 스타일링 언어로 과연 가능할 것인가?’하고 의심했던 일들을 이루어낼 수 있도록 이끌어줄 것이다. 먼저 CSS3의 큰 흐름을 구성하는 내용들 중 일부에 대해 간략하게 설명한 후, 이런 기능들이 열린 생각과 마음을 가질 때 얼마나 확장될 수 있는지, 얼마나 풍성하고 창조적인 결과를 얻을 수 있을 것인지에 대해 증명하게 될 것이다.

 

 

누구를 위한 책인가?

 

이 책은 CSS3를 한 단계 더 발전시킬 수 있도록 도움을 준다. 더 고급화된 기술과 개념들을 소개하여 다양한 기능들을 그 한계를 넘어서 최대한 활용할 수 있게 돕는다. 그래서 여러분이 CSS에 대해 중급 정도의 지식과 기술을 갖추고 있는 것으로 가정하고 내용이 진행된다. 매일 CSS를 활용하는 것에 불편을 느끼지 않을 뿐만 아니라, 만약 CSS3의 큰 흐름에 대해 상당한 지식과 경험을 갖고 있으며 그 다음 단계로 자연스럽게 진행하고 발전할 준비가 되어 있다면 이 책이 더욱 도움이 될 것이다. 이처럼 기본적인 지식을 갖추고 있다면 이 책에서 최대한 많은 것을 얻을 수 있는 최적의 조건을 갖추었다고 할 수 있다.

 

신고
Trackback 0 | Comment 0

 

 

 

 

제대로 배우는 Backbone.js 프로그래밍

저자 애디 오스마니

역자 이지훈

출간예정 2014623()

정가 28,000

 

페이지 400

판형 173 * 230

ISBN 978-89-94774-68-8 (93000)

원서정보 Developing Backbone.js Applications

 

 

책 소개

 

Backbone.js 애플리케이션 개발하기

 

유용하고 실용적인 이 책 《제대로 배우는 Backbone.js 프로그래밍》에서는 Backbone.js를 이용해 단일 페이지 애플리케이션(SPA) 모델로 사이트를 구축하는 방법뿐만 아니라, 모델--컨트롤러(MVC) 아키텍처의 Backbone 특유의 맛을 살려 구조화된 자바스크립트 애플리케이션을 만드는 방법을 배울 수 있다.

 

MVC, SPA, Backbone의 기본적인 사항들을 시작으로, Backbone으로 간단한 Todo 리스트 앱, RESTful 책 라이브러리 앱, 그리고 모듈화된 앱과 같은 샘플 애플리케이션을 직접 구축해볼 것이다. 구글 크롬팀의 엔지니어이기도 한 이 책의 저자는 또한 프레임워크의 고급 사용법에 대해서도 다루고 있다.

 

- Backbone.js MVC가 클라이언트 측에 이득을 줄 수 있도록 하는 방법을 배운다.

- 쉽게 읽을 수 있고, 구조화하고, 확장할 수 있는 코드를 작성한다.

- Backbone.MarionetteThorax 확장 프레임워크로 작업한다.

- Backbone.js를 사용하면서 쉽게 접할 수 있는 문제를 해결한다.

- AMD RequireJS를 사용하여 코드를 모듈로 구성한다.

- Backbone.Paginator 플러그인으로 컬렉션에 대한 데이터의 페이지를 매긴다.

- 보일러플레이트 코드로 새로운 Backbone.js 애플리케이션을 부트스트랩한다.

- jQuery Mobile과 함께 Backbone을 사용하면서 이들 간의 경로 문제를 해결한다.

- Jasmine, QUnit, SinonJS로 여러분이 구축한 Backbone 앱을 단위 테스트한다.

 

 

웹 애플리케이션을 작성하는 것은 복잡한 과정이지만, 저자는 Backone.js를 사용하여 그 과정을 간단하고 쉽게 세분화했다.”

— Samuel Clay, NewsBlur의 설립자

 

“Backbone.js를 이용해서 확장과 축소가 용이하며, 유지하기 쉽고 데이터가 풍부한 웹 애플리케이션을 만들기 시작할 때 필요한 모든 것을 다루고 있다."

— Marc Friedman, CommScope, Inc의 선임 수석 소프트웨어 연구원

 

 

독자 대상

초중급

 

책은 초보자뿐만 아니라, 클라이언트 코드를 보다 만들고 싶어하는 중급 개발자들을 위해 쓰였다. 책을 최대한 활용하기 위해서는 자바스크립트의 기초 사항을 이해하고 있어야 하지만, 가능한 책에 그러한 설명을 넣기 위해 애썼다.

 

 

소스 코드 다운로드

http://shop.oreilly.com/product/0636920025344.do

 

 

저자 소개

 

애디 오스마니 Addy Osmani

구글 크롬팀의 프로그램 엔지니어이며, 자바스크립트 애플리케이션 아키텍처에 대한 열정이 있다. 그는 TodoMVC와 같은 잘 알려진 프로젝트를 생성했으며, Yeoman, Modernizr, jQuery와 같은 다른 오픈 소스 프로젝트에도 기여했다. 파워 블로거(http://addyosmani.com/blog/)인 애디는 《Learning JavaScript Design Patterns(O’Reilly)를 집필하기도 했다.

 

 

역자 소개

 

이지훈

컴퓨터시스템응용기술사이자 정보시스템 수석감리원이다. 12년차 자바 개발자로 SDS SK C&C에서 근무했으며, 현재 LG 전자에서 스마트TV 관련 시스템을 운영 중이다. 안드로이드와 아이폰앱 개발자로 활동하고 있고, 새로운 기술을 접하길 좋아한다. 《나 홀로 개발자를 위한 안드로이드 프로그래밍의 모든 것》(에이콘출판사)을 집필했고, 《알기 쉬운 UX 디자인 평가: 대규모 온라인 사용성 조사 가이드》(지앤선), HBase 인액션: 빅데이터를 위한 NoSQL 데이터베이스》(비제이퍼블릭)를 번역했다.

 

 

목차

 

1. 개요

- MVC

- Backbone.js

- 자바스크립트 MVC 프레임워크는 언제 필요하나

- Backbone.js를 고려해야 하는가

- 이 책의 구성

 

2. 기초

- MVC

- MVC가 주는 이점

- 정리

 

3. Backbone의 기본

- Backbone 설치 가이드

- 모델

-

- 컬렉션

- RESTful 지속성

- 이벤트

- 라우터

- Backbone Sync API

- 의존성

- 요약

 

4. 연습 1: Todos - 첫 번째 Backbone.js

- 정적 HTML

- Todo 모델

- Todo 컬렉션

- 애플리케이션 뷰

- 개별 TodoView

- 시작

- 실행

- 완료와 삭제기능

- Todo 라우팅

- 요약

 

5. 연습 2: 책 라이브러리 - 첫 번째 REST ful Backbone.js

- 설정

- 인터페이스 엮기

- 백엔드 생성

- 서버와 통신하기

- 요약

 

6. Backbone 익스텐션

- MarionetteJS (Backbone.Marionette)

- Thorax

- 요약

 

7. 문제와 해결책

- 중첩 뷰 다루기

- 중첩 뷰 내에서의 모델 관리

- 자식 뷰에서 부모 뷰 렌더링

- 뷰 계층구조 배치

- 뷰 계층구조 렌더링

- 중첩 모델 또는 중첩 컬렉션으로 작업하기

- 모델 속성 검증

- 다수의 Backbone 버전들 사용 시 충돌 피하기

- 모델과 뷰 계층구조 만들기

- 이벤트 수집기와 중재기

 

8. 모듈 개발

- RequireJS AMD를 이용하여 모듈화하기

 

9. 연습 3: Backbone RequireJS 모듈 앱

- 개요

- 마크업

- 설정 옵션

- 모델, , 컬렉션의 모듈화

- 라우터 기반의 모듈 로딩

- 의존성 관리를 위한 또 다른 패키지

 

10. Backbone.js 요청과 컬렉션의 페이지 처리

- Backbone.Paginator

- Paginator.requestPager

- Paginator.clientPager

- 요약

 

11. Backbone 보일러 플레이트와 Grunt-BBB

- 시작하기

- 새로운 프로젝트 생성

- 다른 유용한 툴과 프로젝트들

- 요약

 

12. Backbone jQuery Mobile

- jQuery Mobile을 이용한 모바일 앱 개발

- jQuery Mobile을 위한 기본 Backbone 앱 설정

- Backbone jQueryMobile을 이용한 워크플로우

- Backbone jQM 고급 기술 적용하기

 

13. Jasmine

- 행위 주도 개발

- 테스트 슈트, 스펙, 그리고 스파이

- beforeEach() afterEach()

- 공유된 스코프

- 설치하기

- Backbone을 이용한 TDD

- 컬렉션

-

- 연습

- 참고 문헌

- 요약

 

14. QUnit

- 시작하기

- 단정문

- 단정문에 구조 추가하기

- 단정문 예제

- 픽스처

- 비동기 코드

 

15. SinonJS

- SinonJS?

- 스텁과 목

- 연습

- 더 읽을 거리

 

16. 결론

 

부록 A. 심화 학습

- 간단한 JavaScript MVC 구현

- MVP

- MVP 또는 MVC?

- MVC, MVP 그리고 Backbone.js

- 네임스페이싱

- Backbone 종속성

- Backbone vs 다른 라이브러리와 프레임워크

 

부록 B. 리소스

- 학습을 위한 도서와 과정

- 익스텐션/라이브러리

 

 

출판사 리뷰

 

해외에서는 전부터 Backbone.js Angular.js 같은 자바스크립트 MV*프레임워크가 많이 사용되었지만, 국내에 이들이 알려지기 시작한지는 얼마 되지 않았다. MV* 프레임워크를 소개하는 수준의 서적은 있었지만, Backbone.js 본격적으로 심도 있게 다루는 서적인 아마 책이 처음일 것이다.

 

Backbone.js Javascript MV* 프레임워크 중에 가장 많은 라이브러리와 Q&A 가지고 있다. Stackoverflow에서 Backbone.js 찾아보면 많은 질문과 답변들이 이루어졌다는 사실을 있다. 근래에는 Angular.js ember.js 등도 많이 사용되고 있다. 저자도 책의 후반부에서 소개했지만, Angular.js, ember.js, backbone.js 중에 어느 것이 가장 좋다라고 단정 짓는 것은 바보 같은 행위다. 현재 가장 인기 있다고 좋은 프레임워크도 아니고, 가장 많은 라이브러리를 가지고 있다고 좋은 프레임워크도 아니다.

 

프레임워크를 선택할 때에는 프로젝트의 성격과 범위에 맞아야 하고 향후 유지보수를 위한 지원까지 고려해서 결정해야 한다.

 

Backbone.js Angular.js 다르게 Full-Stack 라이브러리를 제공하지 않고 최소한의 필수 기능만 제공하여 개발자들이 유연하게 사용할 있도록 제공한다. 부족할 수도 있는 기능들은 Marionette 같은 Backbone.js 기반의 라이브러를 사용해서 해결할 있다. Backbone.js jQuery Underscore.js 같은 유틸리티 라이브러리에 강한 의존성을 가지고 있기 때문에 풍부한 jQuery 셀렉터와 강력한 Underscore.js 유틸리티를 같이 사용할 있다. Angular.js jQuery Lite에서 제공하는 수준의 셀렉터를 제공한다. 이와 같이 Backbone.js 다른 MV* 프레임워크와 다르게 최소한의 기능만 제공하기 때문에 다른 프레임워크와 같이 쉽게 융합하여 사용할 있다는 장점이 있다. 이는 애플리케이션 개발 시에 문제가 발생하였을 다른 오픈소스를 이용하거나, 오픈소스를 분석해서 문제를 쉽게 해결하는 것이 가능하다는 것을 의미한다. Angular.js ember.js 같이 Full-Stack기능을 제공하는 프레임워크도 오픈소스이긴 하지만, 프레임워크에서 가해지는 제약사항이 Backbone보다 크고 다른 오픈소스와의 융합도 어렵다.

 

 

신고
Trackback 0 | Comment 1

 

 

안녕하십니까 우주에 흔적을 남기고픈 IT 열정, 비제이퍼블릭(Bj퍼블릭)’입니다.

 

이번에 저희가 가장 최근에 출간된 신간들을 대상으로 리뷰 이벤트를 실시합니다.

 

리뷰를 원하시는 도서를 골라 신청하시고, 도서를 읽고 인터넷 서점 [YES24]에 리뷰를 올려주신 분들에 한해 저희 비제이퍼블릭에서 출간되었다면 어떤 책이라도 상관없이 읽기 원하시는 도서 한 권을 추가로! 증정해드립니다.

 

(* YES24에 등록된 리뷰만 유효합니다.)

 

많은 참여 부탁드리고, 비제이퍼블릭은 앞으로도 꾸준히 質 좋은 도서를 소개해드릴 수 있도록 최선을 다하겠습니다. 감사합니다!

 

 

이벤트 도서 정보

 

1번. 프로페셔널 TFS

 

2번. 찰스 페졸드의 Programming Windows: C#과 XAML을 이용한 윈도우 앱 개발(6판)

 

3번. 데이터가 보인다: 원리로 깨우치는 데이터 분석 기법

 

4번. 표적형 공격 보안 가이드: APT 공격, 실전 방어 및 대응

 

5번. DOM을 깨우치다: 가치에 대한 완전한 이해

 

이벤트 도서    5 (도서당 3명 추첨)

 

신청기간        2014 1 22(수) ~ 1 28(화) (도서 배송기간: 2월 3 ~ 4)

 

당첨자 발표    1 29(수)

 

리뷰등록 마감 20143월 17일()까지

 

 

신청방법

 

비제이퍼블릭 페이스북 페이지 좋아요 + 이벤트 글 공유 신청양식 참조

 

신청양식

 

1.     페이스북 댓글에 [리뷰를 원하는 이벤트 도서번호], 그리고 [간략한 신청 이유]를 써주시길 바랍니다.

 

     (* 신청은 페이스북 댓글을 통해서만 받습니다.)

 

 

2.     양식작성 후 이메일, ②성명, ③(도서 받으실) 주소, ④(택배를 위한) 전화번호, ⑤리뷰 후 읽기 원하는 도서 제목을 페이스북 메시지로 발송해주시길 바랍니다.

 

(* 연락처는 페이스북 메시지를 통해서만 받습니다.)

 

비제이퍼블릭 전체 도서 확인

 

이벤트 도서 정보

 

1번. 프로페셔널 TFS

 

2번. 찰스 페졸드의 Programming Windows: C#과 XAML을 이용한 윈도우 앱 개발(6판)

 

3번. 데이터가 보인다: 원리로 깨우치는 데이터 분석 기법

 

4번. 표적형 공격 보안 가이드: APT 공격, 실전 방어 및 대응

 

5번. DOM을 깨우치다: 가치에 대한 완전한 이해

 

 

신고
Trackback 0 | Comment 0

 

DOM을 깨우치다

: 가치에 대한 완전한 이해

 

저자 코디 린들리

역자 안재우

출판사 비제이퍼블릭

출간일 20131122()

정가 20,000

페이지 216

 

판형 175 * 230

ISBN 978-89-94774-51-0 (93000)

원서정보 DOM Enlightenment

 

예약판매 [YES24]  [인터파크]  [알라딘]  [도서11번가]

 

 

책 소개

 

모던 웹을 위한 자바스크립트와 DOM에 대한 고찰

 

“더글라스 크락포드(Douglas Crockford)는 저서인 『자바스크립트 핵심 가이드』에서 JavaScript 언어의 내부를 이해하기 위한 지도를 제공했었다. 이제 코디 린들리(Cody Lindley) Document Object Model에 대한 지침을 우리에게 내놓았다.”

 

- 제레미 키스(Jeremy Keith): Clearleft.com의 설립자이자 기술 이사이며, DOM 스크립트』의 저자

 

 

이 책을 통해 DOM 라이브러리 없이 문서 개체 모델(Document Object Model, DOM)에 대한 스크립트를 작성하여 HTML을 보다 효율적으로 조작하는 방법을 배우게 된다. 『실전 jQuery 쿡북』의 저자인 코디 린들리는 따라하기 스타일의 예제 코드를 사용하여 다양한 노드 개체가 어떻게 동작하는지 보여주면서 최신 DOM 개념을 살펴볼 수 있게 해준다.

 

지난 세월 동안 개발자들은 사용을 간편하게 해주는 프레임워크들 때문에 DOM을 묻어 둬왔다. 이 책은 이러한 도구들로부터 초점을 돌려서 최신 브라우저에 기본적으로 존재하는 개념들과 코드를 사용하고 있다. DOM 스크립트에서 jQuery가 수행하고 있는 역할을 이해하고, 오버헤드를 줄여야 하는 모바일 장치 및 특정 브라우저용 애플리케이션에서 DOM을 직접 사용하는 방법을 배우게 된다.

 

 

이 책에서 다루는 내용

 

- JavaScript 노드 개체들과 DOM 간의 관계를 이해한다.


- document, element, text, DocumentFragment
개체의 속성 및 메서드를 배운다.


-
노드 선택, 지오메트리, 인라인 스타일을 깊이 살펴본다.


- HTML
문서에 CSS 스타일 시트를 추가하고 CSSStyleRule 개체를 사용한다.


-
서로 다른 코드 패턴을 사용하여 DOM 이벤트를 설정한다.


- jQuery
와 유사한 최신 브라우저용 DOM 라이브러리인 dom.js에 대한 저자의 비전을 배운다.

 

 

 

독자 대상

초중급

 

Live code 링크 다운로드

http://www.bjpublic.co.kr (도서자료 → 소스코드 다운로드)

 

 

저자 소개

 

코디 린들리 (Cody Lindley)

 

코디 린들리는 TandemSeven의 수석 프론트엔드 아키텍트로 HTML, CSS, JavaScript, Flash, 클라이언트 단 성능 기법에 관해 13년의 경력을 가지고 있다. 클라이언트 단 코드를 작성하거나 인터페이스/인터랙션 디자인 작업을 하지 않을 때는 다양한 컨퍼런스에서 강연을 한다.

 

 

역자 소개

 

안재우

 

과거 닷넷엑스퍼트 수석컨설턴트로 10년이 넘도록 다양한 분야에서 컨설팅과 프로젝트를 수행한 경험을 가지고 있으며, 현재는 엔씨소프트에서 플랫폼 기술 기획을 담당하며 플랫폼의 영역을 넓히고 지속적인 품질 향상을 위해 노력하고 있다. 서버 기술과 아키텍처, ALM(Application Lifecycle Management)에 관심이 많다.

 

 

목차

 

1. 노드 개요

 

1.1 문서 개체 모델(Document Object Model, DOM으로 알려짐)은 자바스크립트 Node 개체의 계층화된 트리다

1.2 노드 개체 유형

1.3 Node 개체로부터 상속받은 하위 노드 개체 

1.4 노드를 다루기 위한 속성 및 메서드 

1.5 노드의 유형과 이름 식별하기 

1.6 노드 값 가져오기

1.7 JavaScript 메서드를 사용해서 Element Text 노드를 생성하기

1.8 JavaScript 문자열을 사용하여 DOM Element Text 노드를 생성 및 추가하기

1.9 DOM 트리의 일부를 JavaScript 문자열로 추출하기

1.10 appendChild() insertBefore()를 사용하여 노드 개체를 DOM에 추가하기

1.11 removeChild() replaceChild()를 사용하여 노드를 제거하거나 바꾸기

1.12 cloneNode()를 사용하여 노드를 복제하기

1.13 노드 컬렉션(NodeList HTMLCollection)에 대한 이해

1.14 직계 자식 노드 전부에 대한 리스트/컬렉션 얻기

1.15 NodeList HTMLCollection JavaScript 배열로 변환

1.16 DOM 내의 노드 탐색

1.17 contains() compareDocumentPosition()으로 DOM 트리 내의 Node 위치를 확인하기

1.18 두 노드가 동일한지 판단하기

 

2. Document 노드

 

2.1 document 노드 개요

2.2 HTMLDocument의 속성 및 메서드(상속된 것 포함)

2.3 일반적인 HTML 문서 정보 얻기 (제목, url, referrer, 최종 수정일, 호환 모드)

2.4 document 자식 노드

2.5 document <!DOCTYPE>, <html lang=“en”>, <head>, <body>에 대한 바로가기를 제공한다

2.6 document.implementation.hasFeature()를 사용하여 DOM 사양/기능 탐지하기

2.7 문서 내에서 포커스를 가지고 있거나 활성 상태인 노드에 대한 참조를 얻기

2.8 문서 혹은 문서 내의 특정 노드가 포커스를 가지고 있는지 판별하기

2.9 document.defaultView는 최상위/전역 개체에 대한 바로가기다

2.10 Element에서 ownerDocument를 사용하여 Document에 대한 참조 얻기

 

3. Element 노드

 

3.1 HTML*Element 개체 개요

3.2 HTML*Element 개체의 속성 및 메서드(상속받은 것 포함)

3.3 Element 생성

3.4 Element의 태그 이름 얻기

3.5 Element Attribute 및 값에 대한 리스트/컬렉션 얻기

3.6 Element Attribute 값 획득설정제거

3.7 Element가 특정 attribute를 가지고 있는지 확인하기

3.8 Class Attribute 값 리스트 얻기

3.9 Class attribute에 하위 값 추가 및 제거하기

3.10 Class attribute 값 토글

3.11 Class attribute 값이 특정 값을 가지고 있는지 판별하기

3.12 data-* attribute를 가져오고 설정하기

 

4. Element 노드 선택

 

4.1 특정 Element 노드 선택하기

4.2 Element 노드 리스트 선택 및 생성하기

4.3 직계 자식 Element 노드를 모두 선택하기

4.4 컨텍스트 기반 Element 선택

4.5 사전에 구성된 Element 노드 선택/리스트

4.6 선택될 Element를 검증하기 위해 matchesSelector()를 사용하기

 

5. Element 노드 지오메트리와 스크롤링 지오메트리

 

5.1 Element 노드 크기, 오프셋, 스크롤링 개요

5.2 offsetParent를 기준으로 element offsetTop offsetLeft 값을 가져오기

5.3 getBoundingClientRect()를 사용하여 뷰포트를 기준으로 element Top, Right, Bottom, Left 테두리 오프셋을 얻기

5.4 뷰포트에서 element의 크기(테두리 + 패딩 + 내용) 얻기

5.5 뷰포트에서 테두리를 제외한 element의 크기(패딩 + 내용) 얻기

5.6 elementFromPoint()를 사용하여 뷰포트의 특정 지점에서 최상단 element 얻기

5.7 scrollHeight scrollWidth를 사용하여 스크롤될 element의 크기를 얻기

5.8 scrollTop scrollLeft를 사용하여 top left로부터 스크롤될 픽셀을 가져오거나 설정하기

5.9 scrollIntoView()를 사용하여 element View로 스크롤하기

 

6. Element 노드 인라인 스타일

 

6.1 style attribute(element 인라인 CSS 속성이라고도 함) 개요

6.2 개별 인라인 CSS 속성 가져오기설정제거

6.3 모든 인라인 CSS 속성 가져오기설정제거

6.4 getComputedStyle()을 사용하여 element의 계산된 

스타일(계층화된 것을 포함한 실제 스타일) 가져오기

6.5 classid attribute를 사용하여 element CSS속성을 적용 및 제거하기

 

7. Text 노드

 

7.1 Text 개체 개요

7.2 Text 개체 및 속성

7.3 공백도 Text 노드를 생성한다

7.4 Text 노드 생성 및 삽입하기

7.5 .data nodeValue text 노드 값 가져오기

7.6 appendData(), deleteData(), insertData(), replaceData(), subStringData() text 노드 조작하기

7.7복수의 형제 텍스트 노드가 발생하는 경우

7.8 textContent를 사용하여 마크업이 제거된 모든 자식 텍스트 노드를 반환하기

7.9 textContent innerText 간의 차이

7.10 normalize()를 사용하여 형제 텍스트 노드들을 단일 텍스트 노드로 결합하기

7.11 splitText()를 사용하여 텍스트 노드를 분할하기

 

8. DocumentFragment 노드

 

8.1 DocumentFragment 개체 개요

8.2 createDocumentFragment()를 사용하여 DocumentFragment를 생성하기

8.3 DocumentFragment를 라이브 DOM에 추가하기

8.4 DocumentFragment에서 innerHTML 사용하기

8.5 복제를 사용하여 Fragment의 노드를 메모리상에서 유지하기

 

9. CSS 스타일시트와 CSS 규칙

 

9.1 CSS 스타일시트 개요

9.2 DOM 내의 모든 스타일시트(CSSStylesheet 개체)에 접근

9.3 CSSStyleSheet의 속성 및 메서드

9.4 CSSStyleRule 개요

9.5 CSSStyleRule의 속성 및 메서드

9.6 cssRules를 사용하여 스타일시트 내의 CSS 규칙 목록을 가져오기

9.7 insertRule() deleteRule()을 사용하여 스타일시트에 CSS 규칙을 삽입하고 삭제하기

9.8 .style 속성을 사용하여 CSSStyleRule의 값을 편집하기

9.9 새로운 인라인 CSS 스타일시트 생성하기

9.10 HTML 문서에 외부 스타일시트를 프로그래밍적으로 추가하기

9.11 .disabled속성을 사용하여 스타일시트를 사용 가능/불가능하게 함

 

10. DOM에서의 JavaScript

 

10.1 JavaScript 삽입 및 실행 개요

10.2 기본적으로 JavaScript는 동기 방식으로 해석됨

10.3 외부 JavaScript의 다운로드 및 실행을 지연시키기 위해 defer를 사용하기

10.4 async를 사용하여 외부 JavaScript 다운로드 및 실행을 비동기로 수행하기

10.5 외부 JavaScript의 비동기 다운로드 및 해석을 강제화하기 위한 동적 <script> element의 사용하기

10.6 비동기 <script>가 로드되는 시점을 알 수 있도록 onload 콜백을 사용하기

10.7 DOM 조작 시 HTML에서 <script>의 위치에 주의

10.8 DOM 내의 <script> 목록 가져오기

 

11. DOM 이벤트

 

11.1 DOM 이벤트 개요 

11.2 DOM 이벤트 유형

11.3 이벤트 흐름

11.4 element 노드, window 개체, document 개체에 이벤트 수신기를 추가하기

11.5 이벤트 수신기 제거하기

11.6 이벤트 개체에서 이벤트 속성 얻기

11.7 addEventListener() 사용 시 this의 값

11.8 이벤트가 호출된 노드나 개체가 아닌 이벤트의 대상을 참조

11.9 preventDefault()를 사용하여 기본 브라우저 이벤트를 취소하기

11.10 stopPropagation()을 사용하여 이벤트 흐름을 중지시키기

11.11 stopImmediatePropagation()을 사용하여 동일한 대상의 이벤트 흐름뿐만 아니라 다른 유사 이벤트도 중지시키기

11.12 사용자 정의 이벤트

11.13 마우스 이벤트 시뮬레이션/트리거링

11.14 이벤트 위임

 

12. dom.js 만들기: 최신 브라우저용 jQuery 유사 DOM 라이브러리

 

12.1 dom.js 개요

12.2 고유 범위 만들기

12.3 dom() GetOrMakeDom()을 생성하고 dom()GetOrMakeDom.prototype을 전역으로 노출시키기

12.4 dom()에 전달되는 선택적인 Context 매개변수 생성하기

12.5 params를 기반으로 DOM 노드 참조를 가진 개체를 채워 반환

12.6 each() 메서드를 생성하고 체인화된 메서드로 만들기

12.7 html(), append(), text() 메서드 만들기

12.8 dom.js 테스트

12.9 요약 및 dom.js를 계속 진행하기

 

 

출판사 리뷰

 

이 책은 DOM스크립팅이나 JavaScript에 대한 포괄적인 참고서가 아니다. 하지만 라이브러리/프레임워크를 사용하지 않으면서 HTML DOM에 대해 가장 철저하게 다룬 책이라 할 수 있다. 이 주제를 다룬 책이 없었던 점에는 이유가 있다. 대부분의 기술 저자들은 이 주제에 대해 논쟁하는 것을 꺼려하는데, 과거 브라우저들 간에 DOM사양을 구현한 것이 서로 달랐기 때문이다.

 

이 책의 목적상, 최신의 DOM을 소개하기 위해 브라우저 API의 혼란이나 사라져가는 브라우저 간의 차이점에 대해 다루는 것을 피하려고 한다. 현재에 초점을 맞추기 위해 보기 흉한 것들은 회피하겠다는 것이다. 어쨌든 우리에게는 브라우저의 추한 문제들을 처리하기 위한 jQuery와 같은 해결책이 있는데다, 더 이상 사용되지 않고 앞으로 사라질 브라우저들을 다뤄야 할 때는 절대적으로 jQuery와 같은 것을 활용해야 한다.

 

DOM스크립팅과 관련하여 있는 그대로만 사용하도록 권장하지는 않지만, DOM스크립트를 작성할 때 항상 DOM라이브러리가 있어야 하는 것은 아니라는 점을 개발자들이 깨닫기 바란다. 또한 단일 환경(: 단일 브라우저, 모바일 브라우저, PhoneGap과 같은 것을 통한 HTML+CSS+JavaScript와 네이티브 연동)에서 JavaScript 코드를 작성하게 될 운 좋은 이들도 그 대상이다. 이 책에서 배워야 할 점은 이상적인 상황에서는 굳이 DOM라이브러리가 필요하지 않다는 것이다. 예를 들어, WebKit모바일 브라우저에만 배포하는 경우에는 경량화된 DOM스크립팅을 사용하면 된다.

 

이 책의 독자 대상

 

이 책에서는 두 가지 유형의 개발자를 염두에 두었다. 두 유형 모두 JavaScript, HTML, CSS에 대해 중급~고급의 지식을 이미 가지고 있다고 가정했다.

 

첫 번째 유형은 JavaScript jQuery를 잘 다루지만, jQuery와 같은 라이브러리의 목적과 가치에 대해서는 이해하려고 해본 적이 없는 개발자다. 이 책에서 지식을 얻고 나면, 해당 개발자는 DOM스크립트로 작성할 때 jQuery가 제공해주는 가치에 대해 완전하게 이해할 수 있게 될 것이다. 가치뿐만 아니라, jQuery DOM을 어떻게 추상화했는지와 jQuery가 그 간극을 어디서 어떻게 채우고 있는지를 알게 된다.

 

두 번째 유형의 개발자는 최신 브라우저에서만 구동되거나, 여러 개의 OS및 장치로 배포(: PhoneGap)될 네이티브 코드로 포팅될 예정이고 라이브러리 사용 시의 오버헤드(: 크기)를 피해야 하는 상황에서 HTML문서에 대한 스크립트를 작성해야 하는 사람들이다.

 

이 책은 다른 프로그래밍 서적과는 다르다

 

이 책은 장황한 설명이나 통째로 만들어진 프로그램 대신, 작고 독립되어 즉시 실행이 가능한 코드를 선호하는 스타일로 작성되었다. 기술적인 정보는 최대한 단어를 줄이고, 적절한 분량의 실행 가능한 코드와 생각을 표현하는 데 필요한 주석을 함께 사용하면 가장 잘 다룰 수 있다. 이 책의 스타일은 짧은 단어들로 명확하게 정의된 생각을 제시하고, 실제 코드로 보충하였다.

 

이 때문에 먼저 이 개념을 받아들여서 코드를 실행하고 분석해봐야 한다. 그러고 나면 해당 개념을 기술하는 데 사용된 단어들에 대해 정신적인 모델을 형성하는 토대가 될 것이다. 뿐만 아니라, 이 책의 형태는 개념을 구조상 가장 작은 형태로 분할하여 각각을 독립된 맥락으로 살펴볼 수 있도록 노력하였다. 이러한 모든 사항은 이 책이 방대한 주제에 대해 장황한 설명과 깊이 있게 다루는 책은 아님을 의미한다. 일반적인 것보다 훨씬 간단명료하고 간결한 설명서라고 보면 되겠다.

 

 

신고
Trackback 0 | Comment 0

 

 

자바스크립트를 깨우치다

 

: 객체로 풀어보는 JavaScript의 원리

 

저자 코디 린들리

역자 김태곤

 

출간일 2013722()

정가 18,500

 

페이지 204

판형 175 x 230

ISBN 978-89-94774-43-5 (93000)

원서정보 JavaScript Enlightenment

 

예약판매 YES24  인터파크도서 

 

Live Code 링크 다운로드 (현재 계속 오류 등 수정중인 링크이며 출간까지 완료하도록 하겠습니다.)

 

 

Live Code.docx

 

 

 

책 소개

 

 

라이브러리 사용자에서 자바스크립트 개발자로

 

자바스크립트 라이브러리를 사용하고 있는 초중급·중급 자바스크립트 개발자라면, 『자바스크립트를 깨우치다』를 통해 자바스크립트라는 언어를 더욱 깊이 있게 이해하게 될 것이다. 『실전 jQuery 쿡북』(BJ퍼블릭)의 저자이자 자바스크립트 전문가인 코디 린들리가 쓴 이 책은 객체를 중점적으로 살펴보고, 미묘한 차이까지 전달하여 자바스크립트라는 언어에 대해 정확한 관점을 제시하고자 했다.

 

라이브러리와 프레임워크를 사용하면 웹 응용프로그램을 빠르게 만들 수 있으나, 오류가 발생하거나 성능상 문제가 나타나는 경우에는 결국 라이브러리와 프레임워크가 어떻게 동작하는지, 왜 그렇게 동작했는지 알고 있어야 한다. 자동차의 후드를 열 듯, 덮개를 열고 자바스크립트 내부의 원리를 손에 덕지덕지 묻힐 준비가 되었다면 이 책이 여러분을 도와줄 것이다.

 

이 책에서 다루는 내용

 

n  바로 실행해 볼 수 있는 코드와 함께 제공하는 ECMA-262 3판의 간결하고 이해하기 쉬운 요약본이다.

n  자바스크립트 객체 생성 과정을 면밀히 살펴본다.

n  복합 객체, 원시값, 스코프, 상속 등에 대해 배운다.

n  머리 객체의 중요성을 이해할 수 있다.

n  문자열, 숫자, 불리언 객체와 값을 다룬다.

n  null 값과 내장 Math 객체 사용하는 법을 배울 것이다.

n  모질라의 자바스크립트 1.5 참조 문서보다 더 자세히 자바스크립트를 파헤친다.

 

 

"자바스크립트를 사용할 수는 있으나 깊이가 부족하다 느끼는 사람, 라이브러리는 사용해봤지만 라이브러리의 내부 코드는 이해하기 힘든 사람, 다른 언어를 사용하던 개발자로서 자바스크립트의 특성을 빠르게 파악하고 싶은 사람에게는 가치 있는 책이 될 것입니다."

-역자의 글 중에서

 

 

독자대상

 

초중급

 

 

저자소개

 

코디 린들리

 

클라이언트 엔지니어(혹은 프론트엔드 개발자)이자 플래시 개발자다. 웹 개발과 관련된 HTML, CSS, 자바스크립트, 플래시, 클라이언트측 성능 등에 대해 11년 이상 경험을 쌓으며 광범위한 전문 배경지식을 갖추었다. 클라이언트 개발 외에도 인터페이스/인터랙션 디자인을 하며 놀거나 글을 쓰고 여러 컨퍼런스에서 강연을 하곤 한다. 컴퓨터 앞에 앉아있지 않을 때는 아마도 아이다호 주 보이즈 시에서 아내, 아이들과 시간을 보내고 있거나 트라이애슬론 훈련, 스키, 산악 자전거, 암벽 등반, 독서, 영화 감상, 기독교 세계관에 대한 토론 등을 즐기고 있을 것이다.

 

 

 

역자소개

 

김태곤

 

자바스크립트를 주로 사용하는 프론트엔드 개발자. 현재는 뉴욕에 위치한 스타트업 기업 ThingDeamon에서 Fancy(http://www.fancy.com)라는 서비스를 만들고 있으며, NHN에 근무할 때는 스마트 에디터, 진도 자바스크립트 프레임워크, 네이버 지도, XpressEngine 등의 프로젝트에 참여했다. 새로운 것을 공부하는 것만큼 지식을 나누는 것도 좋아해서 매해 꾸준히 강의와 번역을 하고 있으며 『거침없이 배우는 자바스크립트』(지앤선), 『자바스크립트 쿡북』(한빛미디어), 『고성능 자바스크립트 그래픽스』(BJ퍼블릭) 등을 우리말로 옮겼다. 개인 블로그(http://mygony.com)와 트위터(@taggon) 통해 웹 기술과 관련한 글을 전하고 있다.

 

 

 

목차

 

 

Chapter 1. 자바스크립트 객체

 

객체 만들기

자바스크립트 생성자는 객체 인스턴스를 생성하고 반환한다

자바스크립트 네이티브 / 내장 객체 생성자

사용자 정의 객체 생성자 함수

new연산자를 사용한 생성자 인스턴스 생성

리터럴을 사용한 값 생성하기

원시값(=단순값)

원시값 null, undefined, “string”, 10, true, false는 객체가 아니다

원시값은 어떻게 저장복사되는가

원시값은 값 자체를 비교한다

문자열, 숫자, 불리언 원시값을 객체처럼 사용하면 객체처럼 동작한다

복합 객체(=합성 객체)

복합 객체는 어떻게 저장복사되는가

복합 객체는 참조를 비교한다

복합 객체는 동적 속성을 포함한다

typeof 연산자

동적 속성 덕분에 객체 수정이 가능하다

생성자 인스턴스에는 자신의 생성자 함수를 가리키는 속성이 있다

객체가 특정 생성자 함수의 인스턴스인지 확인하기

생성자를 통해 만든 인스턴스에 인스턴스 속성 추가하기

“자바스크립트 객체 “Object( ) 객체의 의미

 

 

Chapter 2. 객체와 속성 다루기

 

복합 객체는 자바스크립트 자료형의 대부분을 속성으로 포함할 수 있다

복합 객체에 다른 객체 포함하기

점 표기법과 각괄호 표기법을 사용한 객체 속성 접근

객체 속성 삭제하기

객체 속성의 참조를 찾는 법

hasOwnProperty를 사용해 프로토타입 체인에서 상속받은 속성인지 확인하기

in연산자를 사용해 객체가 주어진 속성을 포함하는지 확인하기

for in루프를 사용해 객체의 속성 탐색하기

호스트 객체 vs. 네이티브 객체

Underscore.js를 사용한 객체 확장

 

 

Chapter 3. Object( )

 

Object( ) 객체 사용

Object( ) 매개 변수

Object( )의 속성과 메소드

Object( ) 객체 인스턴스의 속성과 메소드

“객체 리터럴을 사용한 Object( ) 객체 생성

모든 객체는 Object.prototype을 상속받는다

 

 

Chapter 4. Function( )

 

Function( ) 객체 사용

Function( ) 매개변수

Function( ) 속성과 메소드

Function( ) 객체의 인스턴스 속성과 메소드

함수는 항상 값을 반환한다

함수는 1급 클래스다(문법은 물론 값으로도)

함수에 매개변수 전달하기

this arguments

arguments.callee속성

함수 인스턴스의 length속성과 arguments.length

함수 매개변수 재정의

함수 완료 전에 반환하기(실행 종료)

함수를 정의하는 세 가지 방법

함수를 호출하는 네 가지 패턴

익명 함수

자기 호출 표현식

자기 호출 익명 함수

함수는 중첩될 수 있다

함수에 함수 전달하기 / 함수에서 함수 반환하기

함수가 정의되기 전에 함수를 호출하기(함수 호이스팅)

함수는 자신을 호출할 수 있다(재귀 호출)

 

 

Chapter 5. 머리/전역 객체

 

머리 객체의 사용

머리 객체에 포함된 전역 함수

머리 객체 vs. 전역 속성, 전역 변수

머리 객체 참조하기

머리 객체는 생략될 수 있다

 

 

Chapter 6. this 키워드

 

this의 사용

this의 값은 어떻게 정해지는가

중첩된 함수의 this는 머리 객체를 참조한다

중첩된 함수 문제는 스코프 체인을 사용해 우회하라

call( ) 또는 apply( )를 사용한 this값 설정

사용자 정의 생성자 함수 내에서 this키워드 사용하기

프로토타입 메소드 안의 this는 생성자 인스턴스를 참조한다

 

 

Chapter 7. 스코프와 클로저

 

자바스크립트의 스코프

자바스크립트에는 블록 스코프가 없다

함수 내에서 변수 선언 시 var를 사용해 스코프 문제 피하기

스코프 체인(문법적 스코프)

스코프 체인을 검색할 때는 가장 처음 발견한 값을 반환한다

스코프는 함수를 정의할 때 결정된다

스코프 체인이 클로저를 만든다

 

 

Chapter 8. 함수의 프로토타입

 

프로토타입 체인

prototype속성이 왜 중요한가

모든 Function( ) 인스턴스에는 prototype속성이 있다

prototype속성은 Object( ) 객체

생성자 함수를 통해 만든 인스턴스는 생성자 함수의 prototype속성과 연결되어 있다

프로토타입 체인의 끝은 Object.prototype이다

프로토타입 체인은 체인에서 제일 먼저 찾은 속성을 반환한다

prototype속성을 새 객체로 대체하면 기본 constructor속성이 삭제된다

프로토타입에서 상속한 속성은 가장 최근의 값을 사용한다

prototype속성을 새 객체로 대체하면 이전에 만든 인스턴스는 갱신되지 않는다

사용자 정의 생성자도 네이티브 생성자처럼 프로토타입을 상속할 수 있다

상속 체인 만들기

 

 

Chapter 9. Array( )

 

Array( ) 객체의 사용

Array( ) 매개변수

Array( ) 속성과 메소드

Array객체 인스턴스의 속성과 메소드

배열 만들기

배열에 값을 추가하고 갱신하기

크기와 색인

미리 설정한 크기로 배열 만들기

배열의 크기를 설정하면 값을 추가하거나 제거할 수 있다

다른 배열을 포함한 배열(다중 배열)

배열을 앞뒤로 훑기

 

 

Chapter 10. String( ) 

 

String( ) 객체의 사용

String( ) 매개변수

String( ) 속성과 메소드

String객체 인스턴스의 속성과 메소드

 

 

Chapter 11. Number( )

 

Number( ) 객체의 사용

정수와 실수

Number( ) 매개변수

Number( ) 속성

Number객체 인스턴스의 속성과 메소드

 

 

Chapter 12. Boolean( )

 

Boolean( ) 객체의 사용

Boolean( ) 매개변수

Boolean( )의 속성과 메소드

Boolean객체 인스턴스의 속성과 메소드

false복합 객체는 true로 변환된다

일부 값은 false이고, 그 외는 true

 

 

Chapter 13. 원시 문자열, 숫자, 불리언값 다루기

 

원시/리터럴 값은 속성에 접근할 때 객체로 변환된다

평소에는 원시 문자열, 숫자, 불리언값을 사용하라

 

 

Chapter 14. Null

 

null값 사용

typeof null==“object”

 

 

Chapter 15. BUndefined

 

undefined

자바스크립트 ECMAScript 3이상에서 undefined는 전역 변수로 선언된다

 

 

Chapter 16. Math 함수

 

내장 Math객체

Math객체의 속성과 메소드

Math는 생성자 함수가 아니다

Math는 변경할 수 없는 상수를 포함한다

 

부록 A. 복습

 

부록B. 마치며

 

 

 

이 책의 구성

 

 

라이브러리는 어떤 면에선 이롭지만 또 어떤 면에서는 해로운블랙박스증후군을 야기한다. 여러 작업들이 빠르고 효율적으로 진행되지만 사용자는 이 동작이 내부적으로 어떻게 진행되는지 그리고 왜 그렇게 되는지 알 수 없다. 그래서 문제가 생기거나 성능이 잘 나오지 않을 때 어떤 부분이 어떻게 문제가 되는지 모른다. 웹 응용프로그램(혹은 근사한 가입폼)을 만들 때 자바스크립트 라이브러리나 프레임워크를 사용하려는 사람은 누구라도 보닛을 열고 엔진이 어떻게 동작하는지 살펴보아야 한다. 이 책은 보닛을 열고 자바스크립트 그 자체를 손에 묻히고자 하는 사람들을 위한 것이다.

 

모질라 재단은 자바스크립트 1.5에 대한 가장 최신의 완벽한 참조 문서를 제공하지만, 사용자들이 참조 문서의 내용을 따라가기 쉽도록 하나의 관점에서 작성된 이해하기 쉬운 문서는 없다. 이 책이 모질라의 참조 문서가 다루는 것 이상의 개념을 설명하는, 자바스크립트에 대해여러분이 꼭 알아야 할 것을 알려주는매뉴얼이 될 것이다.

 

프로그래밍 언어에 대해 다루는 고급 기술 서적 중에는 획일적인 예제와 방향성 없는 이야기만 늘어놓는 경우가 많다. 필자는 방향을 제시하는 간단한 설명을 곁들이는 한편 바로 실행해 볼 수 있는 실제 코드를 제공했다. 이 책에서 도입했던 시도를기술적 저미기(technical thin-slicing)”이라는 용어로 설명하곤 하는데, 이 용어는 복잡한 주제를 쉽게 이해할 수 있는 작은 개념으로 나누어 최소한의 글로 설명하고, 실용적이며 초점이 분명한 예제 코드로 설명을 뒷받침한다는 뜻을 내포하고 있다.

 

 

이 책을 읽어야 할 사람

 

이 책은 두 부류의 사람들을 위한 책이다. 첫 번째 부류는, 자바스크립트 객체를 깊이 있게 배움으로써 자바스크립트에 대한 이해를 공고히 하고 싶은 초급을 벗어난 중급 자바스크립트 개발자다. 두 번째 부류는, 자바스크립트 라이브러리를 매우 잘 사용하며 이제는 커튼 뒤에 숨겨진 면을 살펴보고 싶은 자바스크립트 라이브러리 전문가다. 이 책은 프로그래밍이나 자바스크립트 라이브러리 혹은 자바스크립트를 이제 시작한 초급자들에게는 적합하지 않다.

 

 

 

출판사 리뷰

 

이 책의 목적은 네이티브 자바스크립트 객체를 면밀히 살펴보고, 복합값, 원시값, 범위, 상속, 머리 객체(head object) 등의 미묘한 차이도 알아보는 방식을 통해 독자들에게 자바스크립트의 정확한 세계관을 전달하는 것이다. 이 책은 ECMAScript 3판 명세의 이해하기 쉬운 축소판이 되고자 자바스크립트 객체의 특성에 집중하였다.

 

책에 나오는 예제 코드를 자세히 살펴보자. 처음 설명을 보고서 헷갈리더라도 걱정하지 말고, 코드를 살펴보고 또 수정해 보고 코드의 주석도 다시 읽어보자. 그리고 글에서 설명한 개념이 명확해질 때까지 이 과정을 반복해보자. 프로그래밍 개념을 체득할 때 필요한 것은 설명이 잘 되어 있는 코드를 하나씩 완료해가는 것이다.

 

여러분이 자바스크립트 라이브러리(jQuery, MooTools, Zepto, YUI, Dojo )만 사용해 본 디자이너나 개발자라면, 이 책을 통해 자바스크립트 라이브러리 사용자에서 자바스크립트 개발자로 거듭 났으면 하는 바람이다.

 

신고
Trackback 0 | Comments 4

 

 

 

제대로 배우는 Node.js 프로그래밍

 

 

저자 셸리 파워즈

역자 안재우

출간일 201367()

 

정가 28,000

페이지 460

판형 190 x 245

ISBN 978-89-94774-40-4 (93560)

 

원서정보 Learning Node

구매예약 YES24  인터파크도서 

 

 

책 소개

 

 

Learning Node

 

“손이 닿는 가까이에 두고 항상 참고해야 할 훌륭한 Node.js 입문서다.”

 

- Mike Amundsen, Building Hypermedia APIs with HTML5 and Node(O’Reilly)의 저자

 

이 책은 Node.js의 성격에 잘 들어맞는 책이라고 할 수 있다. 무슨 얘기인가 하면, Node.js는 백마디 글을 읽는 것보다 직접 코드를 작성해보는 것이 가장 바람직하다고 생각한다. 특히 NPM을 통해 필요한 모듈들을 찾아서 다운로드해보는 과정도 직접 겪어봐야 Node.js가 소프트웨어 개발에서 주는 장점들을 제대로 이해할 수 있다. 이 책은 Node.js에 대해 이론적인 내용을 주저리주저리 늘어놓는 대신, 수많은 예제들과 실제 가장 많이 사용되는 모듈들을 다루는 데 초점을 맞추고 있다.

 

-역자의 글 중에서

 

Node를 사용해서 브라우저에서의 웹 개발 기술을 서버로 가져가서, 자바스크립트 기반 플랫폼 상에서 빠르고 고도의 확장성을 가지는 네트워크 애플리케이션을 작성하는 방법을 배운다. 실습 위주의 가이드를 통해 Node의 핵심 기반을 빨리 숙달하고, 여러 가지 내장 모듈과 커뮤니티에서 만든 모듈들에 대한 경험을 얻으며, 클라이언트 프로그래밍과 서버 프로그래밍 간의 차이점과 유사점을 배우게 된다.

 

Node의 이벤트 주도 비동기 I/O 모델을 사용하여 접근빈도가 높지만 단순한 연산을 수행하는 데이터 집중적인 애플리케이션을 빠르게 개발해보자. 자바스크립트를 다루는 데 무리가 없다면, 이 책은 Node를 사용한 서버 개발의 이점을 얻을 수 있도록 도와주는 수많은 프로그래밍 및 배포 예제를 제공해준다.

 

l  비동기 개발에 대한 Node의 독특한 접근방법을 살펴본다.

l  Express 프레임워크와 Connect 미들웨어로 Node 애플리케이션 예제를 만들어본다.

l  Redis MongoDB 같은 NoSQL 솔루션을 사용해보고 Node의 관계형 데이터베이스 모듈들을 살펴본다.

l  PDF 파일을 다루고 HTML5 미디어를 서비스하며, Canvas로 그래픽을 생성해본다.

l  WebSocket을 사용하여 브라우저와 서버 간에 양방향 통신을 구성해본다.

l  애플리케이션을 디버깅하고 테스트하는 심도 있는 사례들을 배운다.

l  클라우드나 자신의 시스템에 Node 애플리케이션을 배포한다.

 

 

독자대상

 

초중급

 

 

저자소개

 

셸리 파워즈(Shelley Powers)는 자바스크립트 최초 릴리즈부터 최근의 그래픽 및 디자인 도구에 이르기까지 12년이 넘게 웹 기술을 다루면서 책을 써왔다. 최근에 O’Reilly에서 출판한 책들에서는 시맨틱 웹, Ajax, 자바스크립트, 웹 그래픽 등을 다루었다. 열정적인 아마추어 사진사이며, 최신의 실험 내용을 많은 웹 사이트에 적용하는 것을 즐기는 웹 개발 광이기도 하다.

 

 

역자소개

 

안재우

과거 닷넷엑스퍼트 수석컨설턴트로 10년이 넘도록 다양한 분야에서 컨설팅과 프로젝트를 수행한 경험을 가지고 있으며, 현재는 엔씨소프트에서 플랫폼 기술 기획을 담당하며 플랫폼의 영역을 넓히고 지속적인 품질 향상을 위해 노력하고 있다. 서버 기술과 아키텍처, ALM(ApplicationLifecycle Management)에 관심이 많다.

 

 

 

목차

 

 

Chapter 1. Node.js: 처음 실행하기

Node 개발환경 구성

Node: 뛰어들기

비동기 함수와 Node 이벤트 루프

Node의 이점

 

Chapter 2. REPL을 통한 대화형 Node

REPL: 처음 살펴보기 & 정의되지 않은 수식

REPL의 이점: 하부 JavaScript에 대한 보다 깊은 이해를 제공

 

Chapter 3. Node의 코어

전역 개체(global, process) Buffer

타이머: setTimeout, clearTimeout, setInterval, clearInterval

서버, 스트림, 소켓

자식 프로세스

도메인 해석과 URL 처리

Utilities 모듈과 개체 상속

이벤트와 EventEmitter

 

Chapter 4. Node 모듈 시스템

require를 사용한 모듈 로딩과 기본 경로

외부 모듈과 Node 패키지 관리자

모듈 찾기

사용자 정의 모듈 만들기

 

Chapter 5. 제어 흐름, 비동기 패턴, 예외 처리

Promise 사용, Promise 대신 Callback 사용

순차 기능, 중첩 콜백, 예외 처리

비동기 패턴 및 제어 흐름 모듈

 

Chapter 6. 트래픽 라우팅, 파일 서비스, 미들웨어

간단한 정적 파일 서버 만들기

라우터

프록시

 

Chapter 7. Express 프레임워크

Express: 처음 시작하기

app.js 파일 자세히 살펴보기

에러 처리

Express/Connect의 협력 관계 살펴보기

라우팅

MVC의 도입

cURL Express 애플리케이션 테스트하기

 

Chapter 8. Express, 템플릿 시스템, CSS

Embedded JavaScript(EJS) 템플릿 시스템

Express와 템플릿 시스템(EJS) 사용

Jade 템플릿 시스템

CSS 단순화를 위한 Stylus 결합

 

Chapter 9. Node Redis를 사용한 구조화된 데이터

Node Redis 시작하기

게임 순위표 만들기

메시지 큐 만들기

Express 애플리케이션에 Stats 미들웨어 추가

 

Chapter 10. Node MongoDB: 문서 중심 데이터

MongoDB Native Node.js Driver

Mongoose로 위젯 모델 구현

 

Chapter 11. Node 관계형 데이터베이스 바인딩

db-mysql로 시작하기

node-mysql을 사용한 네이티브 자바스크립트 MySQL 접근

Sequelize를 사용한 ORM 지원

 

Chapter 12. 그래픽 및 HTML5 비디오

PDF를 생성하고 다루기

PDFKit으로 PDF 생성

자식 프로세스에서 ImageMagick에 접근

HTTP HTML5 비디오 서비스하기

Canvas 컨텐츠 생성 및 스트리밍

 

Chapter 13. 웹 소켓과 Socket.IO

웹 소켓

Socket.IO 소개

Socket.IO 구성

채팅: 웹 소켓 “Hello, World”

Express와 함께 Socket.IO 사용

 

Chapter 14. Node 애플리케이션 테스트 및 디버깅

디버깅

단위 테스트

인수 테스트

성능 테스트: 벤치마크와 부하테스트

Nodemon으로 코드 갱신

 

Chapter 15. 게이트 단의 보안

데이터 암호화

Passport를 사용한 인증/허가

애플리케이션 보호와 공격 예방

샌드박스화된 코드

 

Chapter 16. Node 애플리케이션 확장 및 배포

Node 애플리케이션을 자신의 서버에 배포하기

클라우드 서비스로 배포

 

부록. Node, Git, GitHub

 

 

 

이 책의 구성

 

Node는 대부분의 웹 개발자들이 익숙한 언어인 자바스크립트로 작성되었다. 웹 소켓을 사용하거나 Express와 같은 프레임워크로 개발하는 것과 같이 새로운 기술을 사용하는 방법을 배우게 되지만, 이러한 개념들과 함께 새로운 언어를 배울 필요가 없다. 이러한 언어 친화성은 새로운 구성요소에 집중하는 것을 더욱 쉽게 만들어준다.

 

Node를 사용해본 적이 없다면 1장부터 시작해서 최소한 5장까지 읽기 바란다. 이 장들은 Node와 패키지 관리자(npm)를 설치하고 이를 사용하는 방법, 첫 번째 애플리케이션을 만들기, 모듈을 활용하는 방법을 다룬다. 5장에서는 Node와 관련된 스타일 문제 중 일부도 다루는데, 비동기 개발에 대한 Node의 고유한 접근방법을 어떻게 다루어야 하는지가 포함된다.

 

Node를 조금 살펴본 적이 있고 내장 Node 모듈 및 외부 모듈 일부와 REPL(read-eval-print-loop: 대화형 콘솔)을 사용해본 적이 있다면 1~4장은 건너 뛰고 5장부터 시작하는 것을 권장한다.

 

이 책은 전체에 걸쳐 Connect 미들웨어를 활용하는 Express 프레임워크를 사용하는 것이 포함되어 있다. Express를 사용해본 적이 없다면 라우팅, 프록시, 웹 서버, 미들웨어의 개념을 다루고 Express를 소개하는 6~8장을 살펴보는 것이 좋다. 특히 Model-View-Controller(MVC) 프레임 워크에서 Express를 사용하는 법이 궁금하다면 반드시 7장과 8장을 읽기 바란다.

 

기초를 다루는 장들 이후에는 어느 정도 건너뛰어도 된다. 예를 들어 키/값 쌍을 주로 다룬다면 9장에 있는 Redis에 대한 논의를 읽어보도록 하자. 문서 중심 데이터에 관심이 있다면 Node에서 MongoDB를 사용하는 방법을 소개하는 10장을 확인해보기 바란다. 관계형 데이터베이스로만 작업한다면 바로 11장으로 가면서 Redis MongoDB 관련 장은 건너뛰어도 된다. 하지만 데이터를 다루는 데 새로운 관점을 제공해줄 수도 있으므로 언젠가는 읽어보는 것이 좋다.

 

12장과 13장에서 Node를 특수한 용도로 사용하는 것을 본 이후에는 책의 마지막 부분으로 가게 된다. 다른 장들에서 예제를 어느 정도 다뤄봤다면 14장에서 Node 디버깅과 테스트에 대해 심화된 학습 내용을 배우는 데 시간을 투자해보자.

 

15장은 아마도 가장 어려운 내용 중 하나이지만 중요한 내용이기도 하다. 여기서는 보안과 허가 문제를 다룬다. 처음부터 15장을 읽는 것은 별로 권장하지 않지만 Node 애플리케이션을 일반적인 용도로 사용하기 전에 15장에 시간을 투자하는 것이 필수적이다.

 

16장은 마지막 장으로, 흥미나 경험에 관계없이 맨 마지막에 읽는 것이 좋다. 여기서는 프로덕션에서 사용하기 위해 애플리케이션을 어떻게 준비해야 하는지에 초점을 맞추고 있는데, Node 애플리케이션을 자신의 시스템에 배포하는 것뿐만 아니라 클라우드 서버 중 하나에서 Node 애플리케이션을 호스팅하는 방법도 포함된다. 또한 Node 애플리케이션이 Apache와 같은 다른 웹 서버와 함께 잘 동작하게 하는 방법을 포함한 Node 애플리케이션을 서버에 배포하는 방법과 애플리케이션이 크래시가 나더라도 살아나게 하고 시스템이 재부팅될 때 재시작하게 하는 방법도 다룬다.

 

신고
Trackback 0 | Comment 0

 

 

 

 

 

고성능 자바스크립트 그래픽스

 

: HTML5 캔버스 + jQuery

 

저자: 라파엘레 체코

역자: 김태곤

출판사: 비제이퍼블릭

출간일: 2012816()

정가: 25,000

페이지: 354p

판형: 175 x 230

ISBN: 978-89-94774-18-3 (93560)

원서정보: Supercharged JavaScript Graphics

 

 

 

책 소개

 

고성능 자바스크립트 그래픽스

 

: HTML5 캔버스 + jQuery

 

“나는 이 책을 읽으며 라파엘레 체코가 본인이 구사하는 기술에 대해 속속들이 잘 알고 있다는 것을 알 수 있었다. 그의 책을 통해 최근 인기 있는 웹 기반 게임들과 UI가 풍부한 애플리케이션들이 어떻게 만들어졌는지 잘 배울 수 있었다.

 

- 셸리 파워즈

《자바스크립트 쿡북》과 《Painting the Web》의 저자

 

HTML5와 웹 브라우저의 성능이 향상된 덕분에 자바스크립트로 고성능 웹 그래픽스도 작성할 수 있게 되었다. 이 책은 여러분에게 자바스크립트, jQuery, DHTML 그리고 HTML5 캔버스를 사용하여 데스크톱과 모바일 기기에서 사용할 수 있는 리치 웹 애플리케이션을 작성하는 방법을 보여줄 것이다.

 

여러분은 실제 현장에서 사용되는 예제를 통해 아케이드 게임, DHTML 효과, 비즈니스 대시보드 등의 애플리케이션에 접근하는 재미있고 유용한 방식을 배울 것이다. 이 책은 복잡한 주제를 쉽게 배울 수 있도록 작은 부분으로 나누어 조목조목 설명했으며, 각 주제가 다음 단계를 배울 수 있는 발판이 되도록 단계적으로 구성되었다.

 

- 자바스크립트 최적화에 대한 이해를 돕고 최적화가 성능에 미치는 영향을 분석한다.

- 전통적인 DHTML jQuery를 병용한 고성능 그래픽스를 제작한다.

- jQuery UI Ext JS 라이브러리를 활용한 고급 UI 기술을 학습한다.

- 충돌 감지, 객체 핸들링, 자바스크립트 스크롤링 기법 등을 활용한 게임을 제작한다.

- 그리기, 색상 채우기, 비트맵, 애니메이션 등 HTML5 캔버스의 기초를 마스터한다.

- 구글 정보 시각화 도구를 사용한 인터랙티브 대시보드를 작성한다.

 

독자대상

중급

 

 

 

저자소개

 

라파엘레 체코 (Raffaele Cecco)

 

유럽 비디오 게임 업계의 베테랑 소프트웨어 개발자다. 런던에 있는 소프트웨어 스튜디오인킹 오브 더 정글(King of the Jungle)’ 사에서 기술 이사를 맡고 있다. 그는 이 회사에서해즈브로(Hasbro)’ 사와버진(Virgin)’ 사 같은 고객을 위한 소프트웨어를 작성해왔다. 현재 라파엘레는 웹 개발자로 지내며 그의 웹 사이트인 www.professorcloud.com에 실험해보는 것을 즐기고 있다.

 

 

 

역자소개

 

김태곤

 

웹 개발자로 지내다가 자바스크립트의 매력에 빠진 후 2006 NHN에 자바스크립트 개발자로 입사하여 네이버 블로그, 스마트 에디터, 진도 자바스크립트 프레임웍, 네이버 지도 등의 프로젝트에 참여하였고, 오픈소스 프로젝트인 XpressEngine에서 선임 개발자로 Ajax UI를 전담하기도 했다. 현재는 미국의 유망 스타트업 기업인 Thing Daemon에서 Fancy라는 서비스를 만들고 있다. 최근에는 웹 브라우저의 한계를 벗어난 HTML5, 자바스크립트 기술에 주목하고 있다.

 

 

 

목차

 

Chapter 1 코드 재사용 및 최적화

속도 개선

최적화 대상과 시기

직접 만드는 코드 프로파일링

자바스크립트 최적화

룩업 테이블

비트 연산자, 정수, 이진수

jQuery DOM 반복 최적화

CSS 스타일 변경 최적화

DOM 삽입 최적화

기타 자료

 

Chapter 2 DHTML 기초

DHTML 스프라이트 만들기

이미지 애니메이션

캡슐화와 그리기 추상화(또는 은닉)

DOM 삽입/삭제 최소화

스프라이트 코드

간단한 스프라이트 프로그램

더 동적인 스프라이트 애니메이션

jQuery 플러그인으로 바꾸기

타이머, 속도, 프레임 레이트

setInterval setTimeout 사용

시간 정밀도

일정한 속도 유지

인터넷 익스플로러 6 배경 이미지 캐싱

 

Chapter 3 스크롤링

CSS만 사용한 스크롤링 효과

자바스크립트를 사용한 스크롤링

배경 이미지 스크롤링

타일 기반 이미지 스크롤링

 

Chapter 4 고급 UI

HTML5

자바스크립트 UI 라이브러리 사용

jQuery UI를 사용한 웹 인터페이스 개선

Ext JS를 사용한 견고한 UI

UI 요소 직접 만들기

3D 회전목마 만들기

 

Chapter 5 자바스크립트 게임 입문

게임 객체

게임 코드

게임 전역 변수

키 읽기

객체 움직이기

간단한 애니메이터

충돌 감지

외계인

플레이어

방패

의문의 비행접시

게임

모두 하나로 합치기

 

Chapter 6 HTML5 캔버스

캔버스 지원

비트맵, 벡터 또는 둘 다?

캔버스의 제약 사항

캔버스 vs SVG

캔버스 vs 어도비 플래시

캔버스 저작도구

캔버스 기초

캔버스 요소

드로잉 컨텍스트

사각형 그리기

직선과 곡선을 사용해 패스 그리기

비트맵 이미지 그리기

색상, 외곽선, 채우기

캔버스 애니메이션

캔버스와 재귀 드로잉

캔버스 나무 페이지

DHTML 스프라이트를 캔버스 스프라이트로 대체하기

새로 작성한 CanvasSprite 객체

코드에서 바뀐 부분

캔버스와 웹 소켓을 사용한 그래픽 채팅 프로그램

웹 소켓의 장점

웹 소켓 지원과 보안

채팅 프로그램

 

Chapter 7 게임과 시뮬레이션을 위한 벡터

벡터 연산

덧셈과 뺄셈

크기 조절

정규화

회전

스칼라곱

자바스크립트 벡터 객체 만들기

벡터를 사용한 대포 시뮬레이션

시뮬레이션 전역 변수

대포알

대포

배경

메인 루프

페이지 구조

로켓 시뮬레이션

게임 객체

장애물 객체

로켓 객체

배경

충돌 감지와 반응

페이지 구조

개선 및 수정 사항

 

Chapter 8 구글 시각화 도구

제약 사항

차트 용어

이미지 차트

데이터 형식과 차트 해상도

동적인 데이터 사용

요약

인터랙티브 차트

인터랙티브 차트 이벤트

 

Chapter 9 jQuery Mobile을 이용한 모바일 프로그램

jQuery Mobile

모바일 웹 프로그램 TilePic

TilePic 게임 설명

TilePic 게임 코드

폰갭

 

Chapter 10 폰갭을 사용한 안드로이드 앱 제작

폰갭 설치

자바 JDK 설치

안드로이드 SDK 설치

이클립스 설치

안드로이드 개발 도구 설치

폰갭 설치

이클립스에서 폰갭 프로젝트 생성

App.java 파일 수정

AndroidManifest.xml 파일 수정

간단한 웹 프로그램 작성 및 테스트

TilePic 앱 테스트

 

 

 

출판사 리뷰

 

이 책은 자바스크립트에 대해 어느 정도 이해하고 있으며 단순한 호버(hover) 효과나 jQuery 같은 라이브러리에서 제공하는 애니메이션 기능 이상의 그래픽 프로그래밍을 경험하고 싶은 사람들에게 적합하다. 이 책을 통해 다룰 그래픽 관련 주제는 다음과 같다:

 

-       코드 재사용과 최적화. 상속 기법과 성능 향상 팁 포함

-       일반적인 DOM의 깜짝놀랄만한 그래픽 활용 (DHTML)

-       더 나은 그래픽을 위한 캔버스 요소 사용

-       비디오 게임 제작

-       수학을 사용한 창의적인 그래픽과 애니메이션

-       구글 시각화 API(Google Visualizations API)와 구글 차트 도구(Google Chart Tools)를 사용한 데이터 표현

-       효율적인 jQuery 사용과 그래픽 지향 jQuery 플러그인 개발

-       jQuery Mobile(모바일)을 사용한 모바일 기기용 그래픽 웹 응용프로그램 작성

-       PhoneGap(폰갭)을 사용해 웹 응용프로그램을 네이티브 안드로이드 응용프로그램으로 만들기

 

 

독자 대상

 

이 책의 독자는 웹 사이트와 웹 응용프로그램 제작에 대해 실무적인 지식을 가지고 있어야 한다. 특히 자바스크립트를 잘 사용할 수 있다고 가정한다.

 

jQuery를 사용하면 개발을 더 빨리 할 수 있어서 필자는 jQuery를 즐겨 사용한다. 이 책에 수록된 대부분의 예제 코드는 jQuery를 기본으로 포함한다. 일반적으로 외부 라이브러리 등을 사용할 때는 구글과 같은 믿을만한 콘텐츠 전송 네트워크(Content Delivery Network, CDN)에 있는 파일을 참조했으므로 별도의 웹 서버에 파일을 복사하지 않아도 된다.

 

수학은 최소한만 사용하려고 했으나 일부 예제에서는 기본적인 벡터와 삼각법을 사용했다.

 

 

책의 구성

 

이 책은 여러 분야에 대해 빠르게 살펴볼 수 있도록 구성되어 첫 번째 그래픽 프로그래밍 예제가 1장에 나타난다.

 

그 뒤의 장에서는 다양한 그래픽 관련 주제들을 다루고, 특히 웹 응용프로그램의 시각적인 부분과 인터랙티브함을 향상시킬 수 있는 주제를 주로 다룰 것이다.

 

인터랙티브 그래픽을 다루는 책들은 모두 비디오 게임에 대해 다루는데, 이 책 역시 완전한 비디오 게임을 하나 만들면서 스프라이트, 스크롤링 등과 같이 게임 프로젝트에 유용한 기능을 살펴본다.

 

각 장에서 다루는 주제는 다음과 같이 요약할 수 있다:

 

1. 코드 재사용과 최적화

성능이 중요한 그래픽 기반 응용프로그램에 유용한 코드 최적화(jQuery 최적화 포함)와 자바스크립트 객체 지향 프로그래밍 기법에 대해 다룬다. 또한 자바스크립트 바이너리 연산자와 이를 사용한 최적화 방법에 대해서도 다룰 것이다.

 

2. DHTML 기초

일반적인 DOM 관리(DHTML)를 사용해 빠르게 움직이는 그래픽을 구현하는 방법을 보여준다. (게임과 여러 효과에 유용한) 스프라이트 시스템을 개발하고 이 시스템을 jQuery 플러그인으로 만들어본다.

 

3. 스크롤링

시차(視差) 효과 등 기본적인 CSS 스크롤링 기법을 다룬다. 그 후 자바스크립트로 다루는 스크롤링 기법부터 타일 기반의 빠른 시차 스크롤링 시스템을 살펴본다. 강력한 타일맵 편집기를 소개하고, 타일 기반 맵 작성법을 보여준다.

 

4. 고급 UI

jQuery UI Ext JS 같은 사용자 인터페이스 라이브러리를 살펴본다. 두 라이브러리의 차이점 및 어떤 종류의 응용프로그램에 적합한지 알아보는 한편, 기존의 UI 라이브러리를 사용해 3D 이미지 회전 컴포넌트를 작성한다.

 

5. 자바스크립트 게임 입문

플래시와 같은 외부 플러그인에 의존하지 않는 게임 제작 방법을 보여준다. 충돌 감지와 객체 조작 등의 기법에 대해서도 다룰 것이다. 여기서 배운 실무 기법들을 활용해 레트로 스타일(retro-style) 아케이드 게임을 만든다.

 

6. HTML5 캔버스

캔버스(Canvas) 요소에 대해 다양한 예제와 더불어 심도있게 다룬다. 예제로는 캔버스와 웹소켓(WebSocket)을 사용한 그래픽 채팅 프로그램 개발 방법 등이 있다. 기본적인 그리기, , 채우기, 그래디언트, 재귀적인 그리기, 비트맵, 애니메이션 등 다양한 주제에 통해 캔버스를 배워볼 것이다.

 

7. 게임과 시뮬레이션을 위한 벡터

그래픽 어플리케이션과 게임에서 사용되는 2D 벡터에 대해 다룬다. 약간의 수학으로도 많은 일이 가능하다는 것을 알게 될 것이다.  실제와 같은 움직임을 구현한 대포, 로켓 시뮬레이션을 예제로 만날 수 있다.

 

8. 구글 시각화 도구

이 장에서는 구글 차트 도구에 대해 알아본다. 구글 차트 도구는 거의 모든 종류의 데이터에 역동적인 효과를 추가할 수 있는 데이터 시각화 도구이다. 막대 차트부터 구글--미터(Google-O-Meter) 차트까지, 이 장에서는 정적이거나 인터랙티브한 차트를 포함해 여러 그래픽 시각화 도구를 다룰 것이다. 또한 차트 도구를 사용해서 올바른 방법으로 데이터를 정형화하는 방법도 다룬다.

 

9. jQuery Mobile을 사용한 모바일 개발

jQuery Mobile jQuery를 기반으로 작성된 프레임웍으로서, 통일된 사용자 인터페이스를 모바일 웹 응용프로그램에 제공한다. 평범한 HTML 페이지를 인터랙티브하고 활력넘치는 모바일 경험으로 바꾸어 놓기도 한다. 이 장에서는 jQuery UI와 모바일 기기에 최적화된 그래픽 슬라이딩 퍼즐 게임을 개발하는 과정에 대해 다룰 것이다.

 

10. PhoneGap을 사용한 안드로이드 앱 제작

웹 개발 기술만 가지고 네이티브 모바일 응용프로그램을 만들고 싶다면? PhoneGap(폰갭)이 도움이 될 것이다. 이 장은 네이티브 안드로이드 응용프로그램을 만들기 위해 PhoneGap을 설치하고 설정하는 방법에 대해 설명하고, 앞서 9장에서 작성한 슬라이딩 퍼즐 게임을 모바일 기기에 배포할 수 있는 네이티브 앱으로 바꿀 것이다.

 

신고
Trackback 0 | Comment 0

퍼블릭's Blog is powered by Daum & tistory