단일 페이지 웹 애플리케이션 - 프론트엔드부터 백엔드까지 자바스크립트로 완성하는 위키북스 오픈소스 & 웹 시리즈 61
마이클 미코스키 & 조시 C. 파월 지음, 유윤선 옮김 / 위키북스 / 2014년 7월
평점 :
장바구니담기


SPA 입문자를 위한 최고의 책이 아닐까 싶다.


 책 전체가 상세하고 친절한 설명으로 이루어져 있다. 

단순히 소스에 대한 설명만 상세한 것이 아니라 SPA 개발의 취지와 전반적인 원리 그리고 아키텍처까지 전반에 걸쳐서 풍부한 설명을 해준다. 나무나 숲만 설명하는 책이 아니라 나무와 숲 전부를 말해주는 책이다.


 프로그램 구조가 단순하고 명확하다.

jQuery, Node.js, MongoDB 이 세 가지 프로그램만 사용하고 기타의 라이브러리, 프레임워크, 툴등 을 사용하지 않음으로 배워야 할 내용의 핵심에 집중하고 있다. Node.js npm들은 설치해야 하지만 책의 내용을 따라하면 아무 문제가 발생하지 않는다.


 책 내용에 집중할 수 있다.

package.json 파일에서 의존성을 설정하는 방식으로 책의 내용을 진행하기 때문에 Node.js 버전에 신경 안 쓰고 책 내용에 집중할 수 있다. 기타 다른 의존 프로그램에 대한 정보나 버전 변화에 대한 내용을 인터넷에서 검색하고 적용하는 번거로움이 없다. 다만, 몽고 db는 2.6.X 버전을 사용해야 한다.


 숙련된 자바스크립트 코딩 기법을 익힐 수 있다.

SPA 가 아니더라도 자바스크립트 자체의 숙련된 코딩 기법을 익힐 수 있다. 단편적인 자바스크립트 코딩 기법 뿐 아니라 사이트 전체에 걸친 고급의 자바스크립트 구성과 코딩 기법을 배울 수 있다.


자바스크립트 전문 개발자들에게는 어떻게 비쳐질 지 몰라도 

나처럼 자바스크립트를 보조 언어 정도로만 사용해서 기업 업무 사이트만 개발해 온 Asp.net 개발자 - UI 쪽은 별로 신경을 쓰지 않았고 자바스크립트는 클라이언트 유효성 검증, 간단한 DOM 제어 정도를 위해서만 사용해 왔다 - 에게는 정말 시야를 넓혀 주는 좋은 책이란 생각이 든다.


다만, 맘에 걸리는 부분은 AngularJS 대신 jQuery를 사용했다는 점이다. 

그래서 그런지 간단한 채팅 사이트 임에도 불구하고 소스 내용이 상당히 많다. 

십 수 년의 경험을 가진 asp.net 개발자 입장에서는 

SPA라는 것이 상당한 노가다 작업으로 보이지만 

-방대한 javascript 소스는 좀 질릴 정도다 - 

사이트의 특성에 따라서는 피할 수 없는 선택이 아닐까 싶다.

실제 SPA 사이트 구성을 jQuery로 하는 것은 상당한 작업이 될 지도 모르지만

이 책을 통해 배우고 공부하고자 하는 사람에게는 장점일 수도 있을 것 같다.

 

여하튼 SPA를 처음 공부하고자 하는 사람에게는 이 책을 강력히 추천한다. 

상세하고 친절하고 깊이있는 설명은 많은 것을 가르쳐 주고, 

잡다한 의존성 프로그램으로 요점을 흐려버리는 번잡한 구조를 사용하지도 않고 

덕분에 별도의 인터넷 검색과 학습이 필요없이 책에만 집중할 수 있고

SPA의 기본 개념과 원리를 익히고, 

자바스크립트 실력을 향상 시킬 수 있다.



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
모던 웹을 위한 Node.js 프로그래밍 - 개정판, 페이스북, 월마트, 링크드인이 선택한 자바스크립트 + 노드제이에스 서버 프로그래밍
윤인성 지음 / 한빛미디어 / 2013년 9월
평점 :
구판절판


Node.js 입문자들에게 좋은 책일 듯 싶다.

기본적인 내용들을 쉬운 예제로 설명한다.


이른바 MEAN 스택 관련된 책을을 보면

이해하기 어려운 책들이 많다.

입문자를 위한 기본적인 내용에 대한 설명은 간략하고

기타의 툴(?)이나 라이브러리, 프레임워크에 대한 내용들이 많아서

가장 기본적이고 핵심적인 내용을 빠르게 습득하고자 하는 

입문자에게 부적절한 경우가 많은 것 같다.


기타의 여러 가지 의존 프로그램들과 부가적인 내용들을 

책과 별도로 인터넷으로 공부해야만 책의 내용을 소화할 수 있는 경우가 많은 것 같다.

일단, 책을 통해서 기본과 핵심만 빠르고 쉽게 익히고자 하는 

(나 같은) '게으른' 입문자로 하여금

책을 집어 던지게 만드는, 

입문자에게는 부적절한 그런 책들이 많는 것 같다.

이 책은 그런면에서 입문자에게 훌륭하다.


그러나 2015년 9월 현재에는 node.js 입문자들에게 치명적인 약점을 가지고 있다.

8장부터 나오는 express의 버전업으로 인해서, 

이 책의 8장 이후의 예제들은 거의 정상 동작하지 않는 단점을 가지고 있다.


내 개인적인 생각으로는

책의 저자가 별도의 웹 페이지 또는 출판사 사이트를 통해서

8장의 변화된 내용에 대한 보충 설명을 배포 했었어야 한다고 생각한다.

저자, 출판사 모두 책임의식이 부족하다는 생각이 든다.


변경폭이 커다란 버전업을 반영하는 A/S는 부실하다고 생각하지만

그럼에도 불구하고 입문자에게는 추천할 만한 내용이라고 생각한다.


지금이라도 이 책으로 Node.js에 입문하고자 하는 사람이 있을 지 몰라

오타 및 내가 인터넷을 통해 찾아본 변경 사항들을 8장 위주로 간략하게 적는다.

8장 이후의 예제들은 8장의 변경 사항을 원용하면

정상 동작하는 걸 확인할 수 있다.

(2015년 9월 기준)


p144.

 doctype 5 => doctype


p.172 logger (morgan 으로 대체).

$npm install morgan

var morgan = require('morgan'),

app.use(morgan('combined'));


p.178 router

app.use(app.router); 제거


p.182 cookieParser

$ npm install cookie-parser

cookieParser = require('cookie-parser')

app.use(cookieParser());


p.184 bodyParser

$npm install body-parser

var bodyParser = require('body-parser')

app.use(bodyParser.urlencoded({ extended: false }))


p.188 파일 업로드 (formidable로 대체)

npm install formidable@latest (node_modules 폴더로 이동해서 실행.)

formidable = require('formidable');


  .post(function (request, response) {

        var form = new formidable.IncomingForm();

        form.encoding = 'utf-8';

        form.uploadDir = 'multipart'; // 임시 파일이 생성될 디렉토리

        form.keepExtensions = true; // 파일 확장자를 남길것인가.

        form.maxFieldsSize = 2 * 1024 * 1024;


  // 파일 업로드

        form.parse(request, function(err, fields, files) {

            response.redirect('/');

        });


// 업로드 후처리

form.on('end', function(fields, files){

            if(this.openedFiles){

                if(this.openedFiles[0].type.indexOf('image') != -1){

                    // 파일 이름 변경

                    var outputPath = __dirname + '/multipart/' + Date.now() + '_' + this.openedFiles[0].name;        

                    fs.rename(this.openedFiles[0].path, outputPath, function(error) {

                        response.redirect('/');

                    })

                }else {

                    // 파일 제거

                    fs.unlink(this.openedFiles[0].path, function(error){

                        response.send(400);

                    })

                }

            }else {

                response.send(400);

            }

        });

    });


p. 194 session

$ npm install express-session

session = require('express-session');

app.use(session({

    secret: 'secret key',

    key:'rint',

    cookie:{

        maxAge:60 * 1000

    }

}));


p.199 

app.del => app.route('/user/:id').delete(


p. 236

[request.param('id')] => [request.params.id]


p.238 bodyParser  추가 해야 함,

bodyParser = require('body-parser')

app.use(bodyParser.urlencoded({ extended: false }));


p.282

io.sockets.sockets[id].emit('smart', data); => io.sockets.connected[id].emit('smart', data);


p.284 get/set 메소드 사용 안 함.

set => socket.name = data;

get => socket.emit('responsename', socket.name);

p.290

socket.set('room', data) => socket.room = data;

p.291

io.sockets.in(socket.room).emit('message', data);


댓글(1) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
철구소 2015-09-29 18:13   좋아요 0 | 댓글달기 | 수정 | 삭제 | URL
오타가 있어서 댓글 남깁니다~
p.188 `npm install formiadable` - > `npm install formidable`
유용한 포스트 정말 감사합니다~ 오늘도 많이 배우고 갑니다 ^^
 
English for Developers - IT 트렌드로 배우는 개발자 영어 독해
박재호.이해영 지음, Kevin Steely 감수 / 한빛미디어 / 2015년 9월
평점 :
절판


아직 출간도 안 된 책에,
읽어보지도 않은 사람들의
별 5개짜리 리뷰가
이틀 사이에
수십개씩 달리는 이유가 뭐임?

댓글(0) 먼댓글(0) 좋아요(5)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
나인 드래곤 RHK 형사 해리 보슈 시리즈 14
마이클 코넬리 지음, 한정아 옮김 / 알에이치코리아(RHK) / 2015년 7월
평점 :
장바구니담기


해리 보슈 시리즈는
꽤 괜찮은 작품이다.
진지한 캐릭터의 치열하고 무게있는 스토리.
시리즈의 그 많은 작품들이
계속 일정 수준을 유지하는 건
정말 어려운 일이다.
근데 이제는
무난한 캐릭터의
무난한 이야기가 되어 가는 듯 하다.

국내 번역된
마이클 코넬리 (장펀)소설은 다 읽었다.
그 중 해리보슈 시리즈는 거의 별 4개 이상.
근데
혼돈의 도시, 나인 드래곤 연속으로 별 3개.
점점 필력이 딸려서
전작들의 진지한 무게는 날아가고
캐릭터의 관성으로
이야기를 억지로 끌고 가는 듯하다.
혼돈의 도시부터
소설이라기 보다는
사건 일지같은 느낌이 들 때도 있다.

차라리
별 5개 미키 할러의
경쾌하고 유연한 변칙을
보고 싶다.

해리 보슈 시리즈에
별 3개를 붙이는 리뷰를 쓰고 싶지는 않았지만
별 5개 리뷰가 너무 많아서...

댓글(0) 먼댓글(0) 좋아요(3)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
책 사냥꾼의 흔적 클리프 제인웨이 시리즈 2
존 더닝 지음, 이원열 옮김 / 곰 / 2013년 5월
평점 :
절판


전작에 비해
추리소설로서의 재미가 훨씬 강해졌으면서도
소소한 이야기의 재미도 여전하다.

시리즈 3, 4, 5 편의 출간을 고대한다.

댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo