메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

jQuery Deferreds : 디퍼드 제대로 이해하기

리얼타임 eBook

집필서

판매중

  • 저자 : 니콜라스 톨러베이 , 테리 존슨(Terry Jones)
  • 번역 : 조건희
  • 출간 : 2014-09-05
  • 페이지 : 181 쪽
  • ISBN : 9788968487217
  • 초급 초중급 중급 중고급 고급
3점 (1명)
좋아요 : 37

jQuery의 Deferred(디퍼드)를 제대로 배워보자!


jQuery는 현재 가장 인기 있는 자바스크립트 라이브러리 중 하나다. 웹에서 클라이언트 사이드 스크립트 언어를 단순화할 수 있어, 많은 개발자가 사용하고 있다.


웹은 빠르게 변화하고 있다. 다양한 서비스가 웹으로 통합되면서, 웹 사용이 폭증하고 있다고 해도 과언이 아니다. 다양한 서비스가 웹으로 제공되다 보니, 웹 프로그램이 점점 복잡해지고 있다. 그 중 하나가 웹의 비동기 함수 호출이다. 웹은 기본적으로 실시간성을 보장하지 않는 비동기적 환경이다. 하지만 최근에는 시시각각 바뀌는 정보를 웹 페이지 로딩이 끝난 웹 브라우저에 즉시 전달해주는 동기식 서비스가 증가하고 있는데, 이러한 시스템을 잘못 만들면 성능이 현저히 저하되어 많은 개발자가 고심하고 있다. 


jQuery의 디퍼드(Deferreds), 프로미스(Promise), 콜백(Callback)을 사용하면 클라이언트와 서버 애플리케이션에서의 비동기 호출을 적절하게 처리하여 동기식 서비스를 구현할 수 있다. 하지만 개념과 사용 방법이 어려워 개발자들이 이들의 장점을 제대로 이용하지 못하고 있다. 


이 책은 디퍼드와 프로미스의 개념과 사용 방법, 콜백을 피하는 방법 등을 알려준다. 많은 예제로 디퍼드와 프로미스를 언제, 어떻게 사용해야 하는지 소스 코드로 직접 보여 주어 이벤트 기반 프로그래밍의 방법을 익힐 수 있다.


대상 독자

  • jQuery 중급 개발자
  • 초급에서 중급으로 레벨업하고 싶은 jQuery 개발자

이 책의 주요 특징

  • 디퍼드를 생성하고 프로미스를 반환하는 로직을 이해할 수 있다.
  • 레시피에 함께 소개한 예제를 통해서, 실제 프로그래밍을 어떻게 해야 하는지 알려준다.
  • 실제 사례를 통해 유용한 디퍼드 활용 방법을 알려준다.

콜백 지옥에서 벗어나기 위한 도구, 디퍼드와 프로미스(promise)!


자바스크립트 개발을 시작하면 접하게 되는 주요 개념 중 하나가 바로 비동기 처리다. 그리고 자바스크립트 개발자에게 디퍼드의 개념은 그리 낯선 대상이 아니다. 이미 2011년 초에 jQuery 1.5가 공개되면서 디퍼드가 함께 소개되었고, 굳이 디퍼드가 아니더라도 자바스크립트 개발자에게는 비동기 처리가 일상이기 때문이다. 즉, 디퍼드는 단지 비동기 처리 방식이 추상화되고 깔끔해진 API에 지나지 않는다.


하지만 익숙해져 있기 때문에 한 번쯤 낯설게 바라볼 필요가 있다. 적어도 다음 두 가지 경우에는 반드시 그래야 한다.


첫 번째, Ajax 요청을 동기적으로 처리할 때다. 외부 시스템과의 통신을 동기적으로 처리하면 요청이 끝날 때까지 다른 어떤 코드도 수행되지 않는다. 속도를 위해 Ajax를 사용했지만, 정작 속도는 낼 수 없는 상황이 되어 버린다. 그럼에도 이런 비용을 감수하려고 하는 것은 비동기 프로그래밍이 너무 복잡해질 때가 있기 때문이다. 하지만 디퍼드를 제대로 알았더라면 다르게 생각해볼 수도 있었을 것이다.


두 번째, 디퍼드를 알고 있지만 단지 jQuery의 $.ajax, $.animate API와 같이 클라이언트의 입장에서만 사용해본 경우다. 디퍼드를 제공하고 수행하는 입장에서 코드를 작성해본 적이 없다면 디퍼드는 단지 비동기 처리를 깔끔하게 사용하도록 도와주는 jQuery 메소드일 뿐이다. 하지만 디퍼드에는 더 많은 것이 있다. 디퍼드를 좀 더 파헤쳐 본다면 이전에 할 수 없었던 방식으로 코드를 작성할 수 있을 것이다.


디퍼드를 제대로 알기 전에는 이 개념이 과연 책으로 나올만한 것인지 의심할 수 있다. 그러나 이것은 책을 읽기 전의 이야기다. 책을 읽으면서 느낀 디퍼드의 깊이와 재미는 그동안 알고 있던 것과 사뭇 다를 것이다. 이를 여러분도 느껴 보았으면 좋겠다.

니콜라스 톨러베이 저자

니콜라스 톨러베이

니콜라스 톨러베이는 대학에서 철학을 전공한 뮤지션, 교사, 작가, 프로그래머다. 블로그(http://ntoll.org/)를 운영하고 있다.

테리 존슨 저자

테리 존슨

테리 존슨은 Fluidinfo의 창업자이자 CTO다. 35년 동안 프로그래밍을 해 오고 있으며 최근 7년 간 디퍼드를 열정적으로 다루고 있다. 저자에 대해서는 홈페이지(http://jon.es/terry.html)와 블로그(http://blogs.fluidinfo.com/terry)를 참고하기 바란다.

조건희 역자

조건희

대한민국의 평범한 개발자로, 다양한 문제를 해결하는 것에 즐거움을 느끼며 현업에 종사하고 있다. RoR로 서비스를 만들기 시작하여, 현재는 Spring을 통한 솔루션 개발에 한창이다. 한 줄 한 줄 작성한 코드가 사용자에게 가치를 준다는 것에서 하고 있는 일에 매력을 느끼며, 개발자의 가치와 생산성을 높이는 일에도 관심이 많다.

1 소개 
    1.1 생각할 거리 
    1.2 디퍼드와 프로미스의 정의 
    1.3 낯익은 프로미스 


2 jQuery 디퍼드 API 
    2.1 프로미스 사용하기 
    2.2 디퍼드 작성하기 
    2.3 한 눈에 정리하기 
    2.4 디퍼드 다이나믹스 
    2.5 더는 지원되지 않는 프로미스 메소드 
    2.6 jQuery 디퍼드 API의 변경 사항 

3 디퍼드 레시피 
    3.1 setTimeout 함수 대체하기 
    3.2 크롬 익스텐션에서의 메시징 
    3.3 크롬의 로컬 스토리지에 접근하기 
    3.4 프로미스를 반환하는 함수들을 하나씩 실행시키기 
    3.5 emptyPromise 메소드와 프로미스 풀 
    3.6 구글 지도 표현하기 
    3.7 웹 워커와 통신하기 
    3.8 웹 소켓 사용하기 
    3.9 실패하는 디퍼드 호출을 자동으로 재시도하기 
    3.10 메모이제이션 
    3.11 진행 중인 함수 호출의 단기 메모이제이션 
    3.12 프로미스 이벤트의 스트리밍 
    3.13 프로미스의 집합에서 첫 번째 결과 얻기 
    3.14 디퍼드 큐 
    3.15 when2: 개선된 jQuery.when 
    3.16 여러 프로미스를 타임아웃시키기 
    3.17 스스로 운명 결정하기 
    3.18 프로미스 비활성화시키기 


4 디퍼드 수련하기 
    4.1 정말로 jQuery 디퍼드를 이해하고 있는가? 
    4.2 프로미스/A+ 
    4.3 프로미스는 함수 호출을 위한 일급 객체다. 
    4.4 비동기적 데이터 구조체 
    4.5 디퍼드의 이점 
    4.6 디퍼드의 어려움 
    4.7 참고 자료 


부록 A 과제 힌트 
    setTimeout 함수 대체하기
    크롬 익스텐션에서의 메시징 
    크롬의 로컬 스토리지에 접근하기 
    프로미스를 반환하는 함수들을 하나씩 실행시키기 
    emptyPromise 메소드와 프로미스 풀 
    구글 지도 표현하기 
    웹 워커와 통신하기 
    웹 소켓 사용하기 
    실패하는 디퍼드 호출을 자동으로 재시도하기 
    메모이제이션 
    진행 중인 함수 호출들의 단기 메모이제이션 
    프로미스 이벤트의 스트리밍 
    프로미스의 집합으로부터 첫 번째 결과 얻기 
    디퍼드 큐 
    when2: 개선된 jQuery.when 
    여러 프로미스를 타임아웃시키기 
    스스로 운명 결정하기 
    프로미스 비활성화시키기 


부록 B 프로미스/A+ 명세 
    용어 
    전제 요건 


부록 C ArrayBuffer를 Base64로 변환하기 

아쉬움이 많은 책이다.

실전위주의 책 내용은 그런데로 괜찮으나, 실행 불가능한 코드를 기술한 것( 오탈자등록 에 자세히 기술했다 )은 코드 검증도 없이 책을 만든것 같고,

한번에 쉽게 읽어지지가 않은것은 책이 실전위주다 보니 개념정리가 깔끔하지가 않다.

그러나, 이책을 높이 평가하는 이유는 자바스크립트에서 여러가지 어려운 부분( 서버연결, 디비연결, 시간이 필요한 작업등..)을 좀 더 편안히 작업할 수 있는 개념을 알린것이라 하겠다.

다만, nodejs에 대한 이해부족으로 인한 코드 오류, 실전에 앞선 개념 정립부족등은 아쉬움이 남는다..

그리고, 출판사에서 번역자를 고르는데 힘들겠지만, 이책을 번역할려면, 최소한 jquery 와 nodejs는 어느정도 이해하는 사람으로 했으면 한다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 0원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리얼타임 eBook 안내

PDF 형식으로 제공되며, 다운로드한 eBook은 PDF 포맷을 지원하는 디바이스 또는 프로그램에서 제한없이 열람할 수 있습니다. 또한 eBook 내의 텍스트 검색 및 인쇄도 가능합니다.

리뷰쓰기

닫기
* 도서명 :
jQuery Deferreds : 디퍼드 제대로 이해하기
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
jQuery Deferreds : 디퍼드 제대로 이해하기
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
jQuery Deferreds : 디퍼드 제대로 이해하기
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 책0