Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

"Node.js 프로그래밍" 책의 예제를 최신버전으로 업데이트했습니다

어느새 Node.js 프로그래밍을 출간한지 1년이 다 되어가는데 공개적 혹은 개인적으로 예제코드에 대한 문의가 종종 왔었습니다. 그 사이에 Node.js가 0.8.x로 올라갔고 곧 0.10.x가 나올 예정입니다.(책은 0.6.x 기준입니다.) Node.js  자체는 큰 호환성 문제는 없지만 사용하는 모듈들의 업그래이드로 호환성이 깨진 경우가 종종 있었는데 이렇게 사용할 때 오류에 대해서 문의가 있어서 express가 2.5에서 3.0으로 올라가면서 달라진 점에 대한 포스팅을 올리기도 했습니다.

예제 소스의 문제를 어떻게 해결할까를 좀 고민했었습니다. 기존 소스를 그대로 변경하면 책을 보고 그대로 따라하는 분들이 오히려 혼란스러울 수 있기 때문이죠. 소스는 대부분 package.json에 의존성을 명시해 놓았기 때문에 그대로 사용할 경우는 호환성 문제가 발생하지 않아야 하지만 최신 모듈들을 설치해서 쓰시는 분들이 꽤 있고 지금 프로젝트를 하게 되면 당연히 최신 프로젝트를 사용하려고 할 것이기 때문에 필요한 부분이라고 생각했습니다.

고민 끝에 github 저장소features/node-0.8 브랜치를 생성해서 소스를 업데이트했습니다. 기존 소스는 그대로 유지하고 최신버전에 관심있으신 분들의 문제를 둘다 해결할 수 있는 방법이라고 생각했습니다. Git에 익숙하지 않은 사람들이 많을 것 같아서 걱정하긴 했지만 Github에서 브랜치에 대한 다운로드도 제공하고 있기 때문에 괜찮을 거라고 생각했습니다.

노드 자체는 큰 변경사항은 없없기 때문에 path.exist를 fs.exist로 변경한게 전부이고 대부분의 모듈은 의존성을 변경해도 큰 문제가 없었지만 express가 3.x로 올라가면서 변경된 내용들이 대부분이었습니다. express와 관련해서 express 서버를 실행하는 방식을 변경했고 Socket.IO와 연동하는 방식이 달라졌습니다.(express 객체가 더이상 HTTP 서버가 아니게 되었기 때문에...) 자세한 변경사항은 커밋로그에서 확인할 수 있습니다.
2013/02/11 23:50 2013/02/11 23:50