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

한빛출판네트워크

자바스크립트 웹 애플리케이션 : 제이쿼리, Node.js, 웹소켓, 스파인, 백본, 자바스크립트MVC

  • 저자 : 알렉스 맥카우
  • 번역 : 우정은
  • 출간 : 2012-06-18
  • 페이지 : 364 쪽
  • ISBN : 9788979149258
  • 물류코드 :1925
초급 초중급 중급 중고급 고급
4점 (3명)
좋아요 : 33
모던 자바스크립트 애플리케이션 개발에 필요한 모든 이야기

네스케이프의 내부 스크립트로 시작된 출발이지만, 이제 자바스크립트는 모던 웹 구축에 있어서 없어서는 안 될 존재가 되었다. 이 책은 이러한 자바스크립트의 최신 기술로 모던 리치 웹 애플리케이션을 만드는 방법을 제시한다. 제이쿼리, 웹소켓, Node.js, 백본, CommonJS, 자바스크립트MVC, Ajax, 스파인 등 프로젝트에 필요한 거의 모든 자바스크립트 기술을 만나보자!

대상 독자
이 책은 자바스크립트 초보자를 대상으로 하는 책이 아니므로 자바스크립트 언어의 기초 지식이 없다면 『더글라스 크락포드의 자바스크립트 핵심 가이드』(2008, 한빛미디어) 등의 입문서를 참고하기 바란다. jQuery 같은 라이브러리를 이용한 자바스크립트 경험이 있는 개발자가 좀 더 고급 기능을 지원하는 자바스크립트 애플리케이션을 개발할 수 있도록 돕는 것이 이 책의 목표다. 숙련된 자바스크립트 개발자에게 유용한 참고서가 될 것이다.

데스크톱에서나 가능했던 일이 웹에서도 일어난다!
데스크톱의 기능을 웹으로 가져가서 리치 자바스크립트 애플리케이션을 만드는 일이 가능할까? 이 책은 모던 애플리케이션을 만드는 데 필요한 애플리케이션 구조, 템플릿팅, 프레임워크, 서버와 통신 등에 대한 거의 모든 정보를 담아 위 질문에 대한 해답을 제시한다. 차근차근 따라 하면 누구라도 멋지게 해낼 수 있다!

더 멋진 웹 애플리케이션을 위해 최신 도구를 총동원하라!
이 책은 제이쿼리, 웹소켓, Node.js, 백본, CommonJS, 자바스크립트MVC, Ajax뿐 아니라 저자가 직접 개발한 스파인 프레임워크를 독자에게 선사한다. 덕분에 반응성이 향상되고 사용자 경험성이 적용된 자바스크립트 애플리케이션을 만드는 방법을 수월하게 익힐 수 있다.
  • MVC 패턴으로 애플리케이션 내부의 의존성 관리하기
  • 템플릿팅과 데이터 바인딩하기
  • Ajax와 크로스 도메인 요청으로 원격 데이터 로딩하기
  • 웹소켓과 Node.js로 실시간 애플리케이션 만들기
  • 파일 드롭 이벤트로 데이터를 업로드하고 진행상황을 표시하기
  • jQuery, 스파인, 백본 등의 주요 프레임워크와 라이브러리 사용하기
  • 테스트 프로그램을 구현하고 콘솔로 애플리케이션 디버그하기
  • 캐싱과 최소화로 효율적으로 배포하기
<1장> 자바스크립트 역사를 살펴보면서 과거의 사건이 현재 자바스크립트 구현과 커뮤니티에 어떤 영향을 미쳤는지 설명한다. MVC 아키텍처 패턴을 소개하고, 자바스크립트 생성자 함수, 프로토타입 상속, 자신만의 클래스 라이브러리 만드는 방법 등을 살펴본다.

<2장> 히스토리 API와 동작 등을 포함한 기초적인 브라우저 이벤트를 설명한다. jQuery로 이벤트를 바인드하는 방법, 이벤트를 위임하는 방법, 커스텀 이벤트를 만드는 방법 등을 살펴본다. 발행구독 패턴으로 DOM 이외의 이벤트를 사용하는 방법도 살펴본다.

<3장> 애플리케이션에서 MVC 모델을 사용하는 방법, 원격 데이터를 로딩하고 조작하는 방법을 설명한다. MVC와 명칭공간이 왜 중요한지를 살펴본 다음 직접 ORM 라이브러리를 만들어 모델 데이터를 관리하는 방법을 확인한다. 다음으로 JSONP, 크로스 도메인 Ajax를 이용해 원격 데이터를 로드하는 방법을 살펴본다. 마지막으로 HTML5 로컬 저장소를 이용해 모델 데이터를 영구 저장하고 RESTful 서버에 요청하는 방법을 배운다.

<4장> 컨트롤러 패턴으로 상태를 클라이언트에 저장하는 방법을 보여준다. 모듈로 로직을 캡슐화해서 전역 명칭공간이 오염되는 것을 방지할 수 있는지 살펴본다. 이벤트를 리스닝하고 DOM을 조작하는 작업을 수행할 때 어떻게 컨트롤러와 뷰가 서로 투명하게 상호작용할 수 있는지 살펴본다. 마지막으로 URL 해시 조각을 사용한 라우팅과 새로운 HTML5 히스토리 API를 사용한 라우팅을 살펴본다. 각 기법의 장단점도 확인할 수 있다.

<5장> 뷰와 자바스크립트 템플릿팅을 설명한다. 동적으로 뷰를 렌더링하는 방법, 다양한 템플릿팅 라이브러리, 템플릿을 저장할 장소(페이지에 직접 삽입, 스크립트 태그에 저장, 원격 로딩) 등을 살펴본다. 그리고 모델 데이터와 뷰 데이터가 동적으로 동기화될 수 있도록 모델 컨트롤러와 뷰를 연결하는 데이터 바인딩 방법도 배운다.

<6장> CommonJS 모듈을 이용해 자바스크립트 의존성을 관리하는 방법을 자세히 살펴본다. CommonJS가 등장한 이유와, 역사 및 브라우저에서 야블, RequireJS 같은 라이브러리로 CommonJS 모듈을 만드는 방법을 배운다. 그리고 서버에서 자동으로 모듈을 감싸서 성능을 높이고 시간을 절약하는 방법을 살펴본다. 마지막으로 스프로켓이나 LABjs 같은 CommonJS의 다양한 대안을 확인한다.

<7장> HTML5 파일 API가 제공하는 장점을 살펴본다. 브라우저 지원 상황, 다중 업로드, 브라우저로 드래그한 파일과 클립보드 이벤트로 넘어온 파일받기 등을 살펴보고, 블랍과 슬라이스로 파일을 읽고 결과를 브라우저에 표시하는 방법을 살펴본다. 새로운 XMLHttpRequest 레벨 2 규격 명세를 이용해 백그라운드로 파일을 업로딩하고 사용자에게 실시간 프로그래스바를 보여주고 jQuery의 Ajax API를 업로드 및 통합하는 방법도 알아본다.

<8장> 실시간 애플리케이션과 웹소켓 같은 기술을 즐길 수 있다. 과거에는 어떻게 실시간을 구현했는지 살펴보고 현재 브라우저의 지원 현황을 확인한다. 웹소켓과 웹소켓의 고수준 구현, 브라우저 지원, 자바스크립트 API 등을 자세히 살펴본다. 그리고 웹소켓을 이용해 서버와 클라이언트를 연결하는 간단한 RPC 서버를 예로 보여준다. Socket.IO를 살펴본 다음에는 애플리케이션 아키텍처와 사용자 경험에 실시간이 얼마나 중요한 역할을 하는지 배운다.

<9장> 자바스크립트 웹 애플리케이션 개발의 중요한 부분인 테스팅과 디버깅을 살펴본다. 먼저 크로스 브라우저 테스팅과 관련한 문제(어떤 브라우저로 테스트해야 하는지), 단위 테스트, QUnit, 자스민 같은 테스팅 라이브러리를 살펴본다. 다음으로 자동화된 테스팅 그리고 셀렌 같은 지속적인 통합 서버를 살펴본다. 파이어폭스와 웹킷의 웹 인스펙터, 콘솔, 자바스크립트 디버거 등을 사용하는 방법을 살펴본다.<10장> 자바스크립트의 또 다른 중요한 과정인(그러나 이 과정을 무시하는 사람이 많다) 배포를 살펴본다. 성능을 고려하여 캐싱, 최소화, gzip 압축 등을 사용하는 방법과 애플리케이션 초기 로드 시간을 줄일 수 있는 다양한 기법을 살펴본다. 마지막으로 CDN으로 정적 컨텐츠를 제공하는 방법도 살펴보고 브라우저의 내장 감사 기능을 이용하는 방법도 살펴본다. 브라우저 내장 감사 기능은 사이트 성능 개선에 크게 도움을 줄 것이다.<11장> 11, 12, 13장에서는 애플리케이션 개발에 사용할 수 있는 유명한 자바스크립트 라이브러리를 소개한다. 스파인은 MVC 호환 경량 라이브러리로 이 책에서 살펴본 많은 개념을 활용한다. 11장에서 클래스, 이벤트, 모델, 컨트롤러 같은 스파인 라이브러리의 핵심 기능을 살펴보고, 배운 기법을 활용해 연락처 관리 애플리케이션 예제를 만들어본다.

<12장> 자바스크립트 애플리케이션 분야에서 매우 유명한 백본 라이브러리를 소개한다. 모델, 콜렉션, 컨트롤러, 뷰 같은 백본의 핵심 개념과 클래스를 살펴본다. 그리고 RESTful JSON 쿼리를 이용해 모델 데이터와 서버를 동기화하는 방법 그리고 서버에서 백본으로 적절하게 응답하는 방법을 살펴본다. 마지막으로 백본 라이브러리를 활용해 할 일 목록 애플리케이션 예제를 만들어본다.

<13장> 인기 있는 프레임워크인 jQuery를 기반으로 하는 자바스크립트MVC 라이브러리를 살펴본다. 클래스, 모델, 컨트롤러, 클라이언트 템플릿을 활용한 뷰 렌더링 등과 같은 자바스크립트MVC 라이브러리의 모든 기초를 배운다. 13장에서는 실용적인 CRUD 리스트 예제를 이용해 자바스크립트MVC를 이용하면 얼마나 쉽게 추상적이고, 재활용할 수 있으며, 메모리 걱정 없는 위젯을 만들 수 있는지 보여준다.

<부록 A> 짧은 시간에 jQuery를 파악할 수 있도록 간단하게 설명한다. 이 책의 대부분 예제는 jQuery를 사용하므로 jQuery에 익숙해지는 것이 좋다. DOM 탐색, DOM 조작, 이벤트 바인딩, 이벤트 발생, 이벤트 위임 등과 같은 jQuery 핵심 API를 살펴본다. 다음으로 jQuery의 Ajax API로 GET/POST JSON 요청을 만드는 방법을 살펴본다. jQuery를 확장하고 캡슐화하는 방법 등을 익혀 모범 웹 시민이 되는 방법을 보여준다. 마지막으로 실용적인 Growl jQuery 플러그인 예제를 만들어본다.

<부록 B> CSS의 문법, 변수, 믹스인, 동작, 중첩 규칙 등을 상속받는 CSS의 상위 집합 Less를 살펴본다. Less를 이용해 CSS 코딩양(특히 CSS3 개발사 전용 규칙과 관련한)을 크게 줄일 수 있다. Less의 주요 문법 개선사항, 명령행 도구나 자바스크립트를 이용해 Less 파일을 CSS로 컴파일하는 방법 등을 살펴본다.

<부록 C> 마지막 부록에서는 CSS3를 활용하는 방법을 설명한다. CSS3의 탄생 배경을 제공하고 브라우저 개발사 접두어를 설명하고 규격 명세에 추가된 주요 사항을 살펴본다. CSS3의 여러 기능 중에 둥근 모서리, rgba 색, 그림자 효과, 그레이디언트, 트랜지션, 트랜스폼 등을 살펴본다. 마지막으로 모더나이저를 이용해 자연스럽게 디그라데이션하는 방법과 새로운 박스 사이징 규격 명세를 사용하는 실용 예제도 살펴본다.

추천평(추천사)

"이 책은 가장 최신 도구로 모던 애플리케이션을 만드는 개발자에게 귀중한 필독서입니다. 저는 이 책을 얼마나 많은 개발자에게 추천했는지 기억이 나지 않을 정도입니다!"
- 애디 오스마니, AOL의 자바스크립트 개발자

"이 책의 특징을 한 줄로 표현하자면 "가치 있는 내용을 쉽게 풀어서 효과적으로 전달한다"일 것이다. 덕분에 본인도 번역의 즐거움을 누릴 수 있었고 자바스크립트에 대한 최신 정보도 마구마구 흡수할 수 있었다. 부디 저자의 섬세한 손길이 독자에게 전달되어 멋진 제품으로 승화되길 희망해본다. 더불어 이 책이 『더글라스 크락포드의 자바스크립트 핵심 가이드』(2008, 한빛미디어)처럼 자바스크립트 분야의 명저로 남을 거라는 섣부른 예언도 해본다!"
저자

알렉스 맥카우

10년 동안 마이크로소프트와 구글에서 대규모 소프트웨어를 개발했다. 지금은 구글에서 검색 인프라스트럭처의 엔지니어로 근무하고 있다. 여가 시간에는 게임 관련 컨벤션에 참석하고, 공상과학 소설을 읽고, 부인의 패션 관련 스타트업 회사에서 COO 일을 한다. 트레버는 UC 버클리에서 전기공학과 컴퓨터 사이언스 학사학위를 받았다.
역자

우정은

2003년 컴퓨터 공학과를 졸업하고 벨록스소프트에 입사하면서 임베디드 소프트웨어 분야에 발을 디디게 되었다. 그 후 LG전자 단말연구소를 거쳐, 현재는 썬 마이크로시스템즈(Sun Microsystems)에서 Java Licensee Engineer로 근무하고 있다. 주로 자바 가상머신(virtual machine), 임베디드 디바이스에 탑재되는 자바 플랫폼과 관련된 일을 하였다. 아이폰의 매력에 빠져들면서 번역 및 개발을 취미로 삼게 된다.

1장. MVC와클래스    1. 옛날 이야기    2. 구조 추가하기    3. MVC란 무엇인가?    4. 모듈화와 클래스 생성    5. 클래스에 함수 추가하기    6. 클래스 라이브러리에 메소드 추가하기    7. 클래스 상속과 프로토타입 사용    8. 클래스 라이브러리에 상속 기능 추가하기    9. 함수 호출    10. 클래스 라이브러리에서 범위 조절하기    11. 비공개함수 추가하기    12. 클래스 라이브러리2장. 이벤트와 이벤트 관찰    1. 이벤트 수신    2. 이벤트 순서    3. 이벤트 취소    4. Event 오브젝트    5. 이벤트 라이브러리    6. 컨텍스트 변경    7. 이벤트 위임    8. 커스텀 이벤트    9. 커스텀 이벤트와 jQuery 플러그인    10. DOM 이외의 이벤트3장. 모델과 데이터    1. MVC와 명칭공간    2. ORM 만들기    3. ID 지원 기능 추가    4. 레퍼런스 문제 해결    5. 데이터를 로딩할 때 일어날 수 있는 일    6. ORM 활용    7. 로컬에 데이터 저장하기    8. ORM에 지역 저장소 추가하기    9. 새레코드를 서버에 전송하기4장. 컨트롤러와 상태    1. 모듈 패턴    2. 컨텍스트 추가하기    3. 상태 머신    4. 라우팅5장. 뷰와 템플릿    1. 동적 뷰 렌더링    2. 템플릿    3. 바인딩6장. 의존성관리    1. CommonJS    2. 모듈 로더    3. 모듈 래핑    4. 대안 모듈    5. FUBCs7장. 파일 작업    1. 브라우저 지원    2. 파일 정보 얻기    3. 파일 입력    4. 드래그앤드드롭    5. 복사와 붙여넣기    6. 파일 읽기    7. 커스텀 탐색 버튼    8. 파일 업로딩    9. jQuery 드래그앤드드롭 업로더8장. 실시간 웹    1. 실시간의 역사    2. 웹소켓    3. 실시간 아키텍처    4. 인지 속도9장. 테스팅과 디버깅    1. 단위 테스팅    2. 드라이버    3. 헤드리스 테스팅    4. 분산 테스팅    5. 지원 제공    6. 인스펙터    7. 콘솔    8. 디버거 사용    9. 네트워크 요청 분석    10. 프로파일과 타이밍10장. 배포    1. 성능    2. 캐싱    3. 간소화    4. Gzip 압축    5. CDN 사용하기    6. 감사 프로그램    7. 자원11장. 스파인 라이브러리    11. 설치    12. 클래스    13. 이벤트    14. 모델    15. 컨트롤러    16. 연락처 관리자 만들기12장. 백본 라이브러리    11. 모델    12. 콜렉션    13. 뷰    14. 컨트롤러    15. 서버 동기화    16. 할 일 목록 애플리케이션 만들기13장. 자바스크립트MVC 라이브러리    11. 설치    12. 클래스    13. 모델    14. 클라이언트의 뷰템플릿 사용하기    15. $.Controller:jQuery 플러그인 팩토리    16. 모든 기능을 합쳐서 추상 CRUD 리스트 만들기부록 A. jQuery 자습서    1. DOM 탐색    2. DOM 조작    3. 이벤트    4. Ajax    5. 모범 시민이 되는 방법    6. 확장    7. GrowljQuery 플러그인 만들기부록 B. CSS 확장    1. 변수    2. 믹스인    3. 중첩 규칙    4. 다른 스타일시트 포함하기    5. 색    6. Less를 어떻게 이용해야 하는가?부록 C. CSS3 활용하기    1. 접두어    2. 색    3. 둥근 모서리    4. 그림자 추가    5. 텍스트 그림자    6. 그래이디언트    7. 다중 배경    8. 셀렉터    1. NthChild    2. 직계 후손    3. 셀렉터 반전    9. 트랜지션    10. 경계 이미지    11. 박스 사이징    12. 트랜스포메이션    13. 유연한 박스 모델    14. 폰트    15. 자연스러운 디그라대이션    11. 모더나이저    12. 구글 크롬 프레임    16. 레이아웃 만들기

  • 자바스크립트는 넷스케이프로부터 개발된 웹 브라우저 기반의 프로그래밍 언어이다. 엇? 잠깐만.. 웹 브라우저 기반의 프로그래밍 언어? 이렇게 잠시 갸우뚱 할지 모른다.

    그도 그럴것이 자바스크립트는 그 태생이 초기 브라우저 전쟁 당시 있었던 넷스케이프사로부터 개발된 것이기 때문이다. 사실 자바스크립트의 옛 이름은 라이브스크립트였다. 하지만 넷스케이프사 임직원들은 이 이름을 내켜하지 않았고 1995년 당시 제임스 고슬링이 만들었던 자바 언어와의 통신 기능을 추가해서 자바스크립트로 이름이 변경되었다.

    역사까지 세세하게 따져본다면 자바스크립트는 자바 언어를 스크립트 형태로 만든 녀석은 분명 아니라는 건데, 이름이.. 뭔가 자바의 영향을 심하게 받은 듯한 느낌을 받게 한다. 실제로는 아니지만 말이다.

    자바스크립트는 브라우저에서 동작하는 만큼 브라우저마다 자바스크립트를 동작시키는 엔진이 다 다르다.

    Microsoft Internet Explorer : JScript
    Google Chorme: V8
    Mozilla Firefox: Rhino, TraceMonkey, JagerMonkey
    Apple Safari: JavascriptCore(renamed Nitro)

    우리가 알고 있는 자바스크립트는 하나인데 자바스크립트 엔진이 다 다르니 자연스럽게 브라우저 사이에 자바스크립트의 동작 속도가 구현 기능이 다 달라지게 되었다.

    이런 이유로 자바스크립트의 표준을 제정하자는 의견이 있어서 ECMAScript가 제정되기 했지만 아직까지는 자바스크립트 엔진에 따라 구현이 다른 경우가 종종 있다.

    "자바스크립트 웹 애플리케이션"은 단순히 폼 검사 용도가 아니라 실제로 완전하게 동작하는 자바스크립트 기반의 웹 애플리케이션을 만드는데 필요한 기초 기술과 응용 기술을 소개한다.


    자바스크립트로 완전한 웹 애플리케이션 개발은 가능한가?


    실제 웹 애플리케이션은 자바스크립트 뿐만 아니라 HTML과 서버 기술(PHP, .NET, Java, Python 등)이 함께 맞물려야 한다.

    이와 같음에도 불구하고 HTML과 서버 기술로만 웹 애플리케이션을 구현하기엔 사용자의 요구가 조금 더 고급을 지향하며 반응성이 뛰어난 웹 애플리케이션 수요가 높아지고 있다. 게다가 응용 애플리케이션에서 항상 고민되는 것은 데이터와 뷰의 분리가 강조되고 있다는 사실이다.

    데이터와 뷰의 분리는 MVC(Model-View-Controller)로 불리우는 애플리케이션 모델이 선호되는데 데이터는 뷰에 간섭하지 말아야 한다는 것이 이 모델의 핵심적인 내용이다.

    "자바스크립트 웹 애플리케이션"은 바로 이 MVC 모델을 기본으로 풀어나간다.


    MVC와 이벤트


    1장에선 MVC에 대해 이야기하며 자바스크립트에서 MVC를 어떻게 구현할 수 있는지 그 예를 들어 설명해보인다.

    자바스크립트에서 MVC는 Model은 데이터, View는 HTML, Controller는 데이터를 읽어서 뷰에 출력해주는 역할을 하는 것으로 구분해볼 수 있다.

    뷰에 출력해줄 데이터는 그 종류가 무척 다양하며 그 데이터를 일관된 하나의 방법으로 다룰 필요가 있는데 이를 Model이라는 이름의 구조를 생성하여 데이터를 하나의 일관된 구조의 객체에 담아 데이터를 읽거나 쓰고 서버에 데이터를 저장할 수 있는 구조를 가지게 한다.

    이처럼 데이터를 모델을 통해 자유롭게 조작할 수 있게 되었다면 뷰를 생성해야 한다. 뷰는 HTML로 구성하는 것이 일반적이지만 자바스크립트로 동적인 뷰를 구성하는 방법도 있다.

    뷰에서 하는 역할은 컨트롤러에서 데이터를 보내주면 이를 표시해주는 역할을 한다. 뿐만 아니라 모델에 변경사항이 생기면 뷰는 이 변경사항을 반영하기도 한다. 그 역도 가능하다.

    컨트롤러는 뷰와 모델을 연결하며 상태 등의 관리를 하는 역할을 맡는다.

    그렇다면 이벤트는 무엇일까? 윈도우 프로그래밍을 해본 사람이라면 클릭, 이벤트라는 말에 익숙할텐데 이벤트는 어떤 것의 행동을 표현하는 말이다.

    가령 승마를 한다고 했을때 말에 올라타 말을 때리면 말이 움직인다. 이것을 이벤트라는 용어로 풀어내면 다음과 같아진다.

    행동 : 말을 때린다(때찌 이벤트 발생)
    때지 이벤트 : 말이 달린다(둥둥둥둥)

    설명이 유치한가? 설령 그렇더라도 애플리케이션에서 이벤트는 무척 중요한 부분을 차지한다. 이벤트는 한국어로 "사건"으로 번역된다(프로그래밍을 처음 배울때 이 용어 때문에 경찰의 사건을 말하는 줄 알았다).

    MVC 모델을 적용한 애플리케이션에서 모델의 데이터를 변경하거나 뷰의 데이터를 변경할 경우 이를 서로에게 알려야 하므로 이벤트는 MVC에 있어 필수 요소라고 볼 수 있다.


    자바스크립트의 모듈화와 파일 관련 작업하기


    자바스크립트는 웹 브라우저 내에서 동작하도록 설계되다보니 모듈화에 어려운 점이 있었는데, 이점을 개선하기 위하여 사용되는 여러 라이브러리를 소개한다. 게중엔 실제로 프로젝트에 적용하여 사용중인 라이브러리가 있는데 이러한 라이브러리를 "자바스크립트 의존성 라이브러리"라고 한다.

    의존성 라이브러리가 개발되지 않았더라면 아직도 하나의 웹 페이지에서만 동작하는 자바스크립트를 만들 수 밖에 없었을 것이다.

    그리고 웹 애플리케이션은 브라우저 내에서의 드래그앤드롭과 파일 업로드 작업이 무척 제한적으로 구현하거나 구현이 어려웠으나 HTML 5에선 드래그앤드롭 이벤트와 파일 업로드를 바로 할 수 있도록 여러 자바스크립트 API를 제공한다.

    이러한 자바스크립트 API의 제공은 실시간 웹을 만드는데 큰 공헌을 한 것이 사실이다.

    물론 파일 업로드에 있어선 자바스크립트의 특성상 파일의 읽기 작업만 제공하고 있으나 앞으로 제한적인 접근을 통해 쓰기도 가능하지 않을까 하는 개인적인 바람도 있다.


    웹 애플리케이션의 영원한 화두인 실시간 웹


    웹이 전통적인 응용 애플리케이션의 텃밭을 하나씩 시도함에 따라서 사용자들은 응용 애플리케이션에서 제공하는 실시간 서비스를 웹 애플리케이션에도 바라기 시작했다.

    그러나 Ajax 이전에선 실시간 웹은 브라우저 플러그인을 통해서만 제한적인 구현만 가능해졌을 뿐더러 여전히 웹 자체적으론 구현이 불가능했었다.

    그러던 것이 Ajax 의 출현으로 화면의 새로고침없이 데이터를 주고받는 것이 가능해졌다. 완전한 의미에서의 실시간 웹은 아니었지만 대부분 Ajax를 거부감 없이 받아들이게 되었다.

    이후 클라이언트와 서버간 연결 유지를 위해선 Ajax 요청을 서버로 계속 던져야 하는 부담이 있었다. 이는 다수의 요청을 주고받을때 요청량이 많다는 문제가 있고 서버에서 데이터를 클라이언트(브라우저)에게 보내어 클라이언트가 바로 데이터를 갱신할 수 없다는 문제가 발견되었다.

    이후, 이 문제를 해결하기 위해 Long Ajax로 불리우는 Comet 기술이 먼저 나오고 HTML 5에서 이를 규격으로 만든 웹소켓 기술이 제정되기도 했다.

    8장에선 바로 이러한 웹소켓 기술과 Comet 기술 등과 같이 실시간 웹을 구성할 수 있는 방법을 알아본다.


    테스팅, 디버깅, 배포는 개발자의 오랜 벗


    어떤 언어로 애플리케이션을 제작하든 중요하게 부각되는 것은 테스트, 디버깅, 배포이다. 테스트는 애플리케이션이 제대로 동작하는지 원하는 대로 행동하는지 알아볼 수 있다.

    디버깅은 애플리케이션 개발에 있어 가장 중요한 요소로 특히 자바스크립트로 개발함에 있어선 이는 피할 수 없는 숙명적 요소가 아닐까? 디버깅도 IE 5, 6, 7까진 Firefox의 Firebug를 통한 스크립트 디버깅처럼 쉽지 않았다. 물론 IE에서도 필요하다면 Script Debugger를 쓸 수 있었지만 일반 웹 애플리케이션 개발자가 쓰기엔 다소 어려웠던 것이 사실이니 말이다.

    개발이 완료되면 애플리케이션을 배포해야 한다. 특히 자바스크립트 기반의 웹 애플리케이션은 브라우저에 기반하여 동작하므로 캐싱을 통해 성능을 강화하고 Gzip을 통해 크기를 줄이고 감사 프로그램을 사용하여 제대로 동작하는지 검사해볼 필요가 있다.


    자바스크립트 웹 애플리케이션을 도와주는 프레임워크와 함께 하기


    맨손으로 자바스크립트 웹 애플리케이션을 개발할때 우리는 조금 더 쉽게 개발을 도와주는 여러 프레임워크와 만나서 친구 관계를 맺을 필요가 있다.

    저자가 직접 개발한 스파인 라이브러리와 백본, 자바스크립트MVC 라이브러리를 통해 자바스크립트 웹 애플리케이션을 조금 더 쉽게 구현할 수 있도록 안내하며 독자는 여러 프레임워크와의 만남을 통해 자바스크립트 웹 애플리케이션을 만드는데 도움을 얻을 것이다.


    jQuery 그리고 CSS에 익숙해지기


    jQuery는 현존하는 자바스크립트 라이브러리 중에 가장 널리 쓰이는 라이브러리가 되었다. 본질적으로 jQuery는 DOM을 조작하는 라이브러리며 다른 여러 자바스크립트 프레임워크와 함께 사용할 수 있어 자바스크립트 기반의 웹 애플리케이션 개발시에 조금 더 빨리 프로그램을 개발할 수 있을 것이다.

    그리고 CSS는 웹 페이지를 조금 더 아름답고 예쁘게 구성할 수 있는 언어이다. 부록을 통해서 저자는 CSS의 확장과 CSS 3 사용을 통해서 웹 애플리케이션을 보기 좋게 만드는데 필요한 기술을 소개한다.


    앞으로 웹은... 어떻게 변할까?


    "자바스크립트 웹 애플리케이션"은 자바스크립트로 웹 애플리케이션을 만드는 새로운 방법을 제시한다. 하지만 HTML 5가 뒷받침되지 않는다면 Ajax가 그래왔던 것처럼 정체기에 접어들지도 모른다.

    웹의 미래는 아직 무궁무진하다. 독자가 꿈꾸는 만큼 구현하는 만큼 이루어지는 새로운 세상이니 한번 쯤 도전해 보는 것이 좋다고 생각한다.

    웹은 어떻게 변할까?라는 화두보다 웹은 독자 자신의 성장과 함께 변하지 않을까? 라는 새로운 화두를 던져본다.

  • 웹 구현기술인 자바스크립트는 그동안 상대적으로 저평가 되었다고 생각합니다.
    많은 분들이 특별히 공부하지 않고도 Copy & Paste 만으로도 원하는 기능을 충분히 구현할 수 있는 걸로 이야기 하기도 합니다.
    하지만, WEB2.0 이라는 말이 이슈가 되면서, AJAX 를 유행하기 시작하면서 수많은 Javascript Framework 나오기도 하고 Javascript MVC와 같은 방법도 이슈가 되기 시작했으며, 더이상 아무나 할 수 있는 쉬운 프로그래밍 언어는 아니라는걸 공감하게 됩니다.

    이 도서는, 생각만큼 쉽지 않은 자바스크립트에 대해 폭 넓게 설명하고 있고, 주목해야 할 부분들을 시대의 흐름에 맞게 선정하여 담았다는 것에 요즘 개발자에게 큰 도움이 될만한 책입니다.

    하지만, 이 도서는 자바스크립트의 Context 개념이나 this 의 용도를 모르고서는 초반부터 막히게 될 수 있습니다.
    기본적으로 어느정도 Javascrip에 익숙해진 분들이 보시면 더 큰 도움이 될 것 같습니다.

    도서 초반에는 Javascript 로 MVC 패턴으로 의존성을 관리하는 방법에 대한 기본적인 내용이며, 이후 단위테스트 하고, 배포를 위해 커스터마이징 하는 방법까지 자바스크립트 개발 단계의 전 과정에 도움이 될만한 유용한 팁을 알려 주고 있습니다.

    그외에도, Node.js 와 Socket.io 패키지를 이용한 Javascript Server Side 어플리케이션을 구현하는 방법이나, 스파인/백본 등의 주요 프레임워크와 라이브러리에 대한 내용도 있어 Javascript 의 활용을 어떻게 하면 더 잘할 수 있을지 도와 주고 있습니다.

    이 모든 내용이 300 페이지 조금 넘는 한권의 책에 담다보니, 기초적인 내용보다는 활용 방법 위주로 되어 있습니다. 덕분에 빠른 시일에 바로 실무에 적용하기에 좋은 것 같습니다.

    프로젝트 현장에서 S/W 아키텍처 설계시, Server 영역에 대한 구성은 상당히 집중해서 분석/설계하는 반면, UI 를 구성하는 Javascript 경우 상대적으로 비중을 적게 두는 경우를 종종 보게 됩니다.
    이 책은 UI 에서 구요한 구현기술인 Javascript 를 어떻게 설계해야 하는지, 그리고 어떻게 이행되어야 하는지에 대한 방향을 잡아 줄 수 있다는데에 크게 점수를 주고 싶습니다.

  • 이 책은 문법을 가르치는 그러한 책이 아니다. 자바스크립트를 이용한 웹어플리케이션을 만드는 데 있어
    가장 효율적으로 코딩 하는 방법과 예제를 보여주는 책이다. 그러므로 이 책은 웹 개발 입문자에게는 조금
    어려운 책이 될 것이라고 생각 한다. 자바스크립트 웹 어플리케이션을 만들면서 하지 말아야 하는 코딩 스타일과 그러한 것을 개선 한 코드를 비교 하여 보여 준다. 책을 읽으며, 내가 그동안 얼마만큼 잘못된 코딩 스타일로 단순히 문제만 해결 하기 위한 코딩을 하였는지 절실히 느끼게 되었다. 적어도 유지보수 측면이나 다른 사람이 내가 만든 코드를 봐야 하는 경우가 있다는 생각을 해보니 스스로 고쳐야 겠다는 생각을 많이 하게 되었다.
    중급 에서 고급으로 넘어가는 웹 어플리케이션 개발자라면 시간을 내서 꼭 봤으면 하는 책이다. 본인에게도 도움이 되는 책이고, 나아가서는 유지보수 측면과 더 나은 코딩 스타일로 구조적인 웹 어플리케이션 제작에도 도움이 될 것이라 생각 한다.

부록/예제소스
자료명 등록일 다운로드
DOWNLOAD 예제소스 2016-09-02 다운로드
결재하기
• 문화비 소득공제 가능
• 배송료 : 0원배송료란?

배송료 안내

  • 책, 아이템 등 상품을 3만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

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

닫기

리뷰쓰기

닫기
* 도서명 :
자바스크립트 웹 애플리케이션 : 제이쿼리, Node.js, 웹소켓, 스파인, 백본, 자바스크립트MVC
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
자바스크립트 웹 애플리케이션 : 제이쿼리, Node.js, 웹소켓, 스파인, 백본, 자바스크립트MVC
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
자바스크립트 웹 애플리케이션 : 제이쿼리, Node.js, 웹소켓, 스파인, 백본, 자바스크립트MVC
구입처*
구입일*
부가기호*
부가기호 안내

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

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

자료실