모던 웹을 위한 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
 
 
 
블랙 리스트 1 블랙 캣(Black Cat) 10
새러 패러츠키 지음, 나선숙 옮김 / 영림카디널 / 2005년 9월
평점 :
품절


여자 필립 말로를 보는 듯 하다.

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