작년 2월에 Node.js v0.8 버전으로 업데이트 했었는데 현재 최신 버전은 v0.10.x 이다. Node.js가 최근에는 내부 구조에 신경을 쓰고 있고 외부 API는 거의 개선을 안 하고 있기 때문에 문제의 소지가 별로 없어서 그냥 놔두고 있다가(앞으로도 Node.js는 API의 큰 변경사항은 없을 예정) 최근에 예제가 안 돌아간다는 문의가 종종 들어와서 시간을 내서 예제를 업데이트했다.
업데이트된 예제는 Github 저장소에 올려두었다. 주요 변경사항은 커밋 로그에 정리해 두었다. 이 글에 다시 정리하자면...
5장 예제가 트위터 API 정책 변경으로 많이 수정됨.
- 트위터 API가 1.1 버전으로 갱신되어서 기존의 1.0이 폐기되고 모든 API는 HTTPS로 바뀌고 URL도 약간 변경된데다가 API를 쓰려면 인증도 필요하게 변경되었다.
- 그래서 예제 자체는 최대한 변경하지 않는 선에서 인증을 위한 별도의 파일을 만들어서 엑세스토큰을 얻어와서 API를 요청하도록 처리함.
- 1.1 버전에서는 응답데이터의 형식이 약간 달라져서 사용하는 필드명이 약간 달라졌다.
Jade의 1.0 릴리즈 후 기존에 API를 폐기한.
- 이 부분 때문에 예제가 안 돌아간다는 문의가 발생하게 된 건데 그동안 Jade 버전이 올라가면서 새로운 기능이 많이 추가되고 사용방식도 조금씩 변경되었는데 그동안을 하위 호환성 때문에 이런 부분이 유지되다가 1.0을 릴리즈 하면서 앞으로 사용하지 않을 부분을 모두 제거해버려서 오류가 발생함.
- Doctype을
!!!
대신doctype html
와 같이 정의해야 하고script
태그 뒤에는.
을 찍어주어야 함.
expresso나 vows 같은 테스트 프레임워크는 이제 모듈 자체가 업데이트도 안 되고 이미 분위기가 mocha나 다른 프레임워크로 변경되었기 때문에 건드리지 않고 그냥 놔두었다.(책의 내용 자체를 바꾸어야 하는 .. ㅠㅠ) 이런 부분이 참 고민인데 Node.js 버전업에 예제가 많은 영향을 안 받는 걸 보면서 다행이라는 생각은 들지만 반면에 빠르게 달라지고 있는 Node.js 모듈에서는 시간이 지남에 따라 쫓아가기 어려운 문제가 생기는 건 어쩔 수 없다고 생각하면서도 아쉬운 부분이다. ㅠㅠ
node.js 공부를 해보려고 하는데요.
아웃사이더님 책을 okjsp에서 추천해 줬는데요.
출판한지 2년이 됐네요. 혹시 버전이라든지 이런거 때문에 어려움을 겪거나 하는 문제는 없을까요?^^;; 그리고 anguler랑 같이 적용해서 사용해 보려고 합니다. 조언좀 부탁해요
감사합니다. 제 책은 노드 0.6.x이고 현재 노드는 0.10.x 기준이지만 API 자체가 많이 바뀐건 아니라서 책의 예제를 따라하는 데는 문제가 없습니다. 제 블로그 통해서도 얼마전에 0.10.x 기준으로 예제 전체를 테스트하고 갱신해서 올렸기 때문에 따라해 보시는데 큰 문제는 없을 겁니다.
보통 문제는 노드보다는 관련 모듈들의 버전업에 따라서 깨지는 부분이 생기는데 앞에 말씀드렸듯이 최근 업데이트한 예제에서 최신 모듈 버전으로 다시 테스트를 해서 올렸습니다. 다만 테스트 프레임워크에 대한 설명해서는 현재 expresso나 vows 는 잘 안쓰는 분위기고 mocha가 그 위치를 자리잡았으니 관련부분을 찾아보시면 됩니다.