Node.js는 어떻게 시작하나요?

Node.JS를 시작하기 위한 좋은 리소스가 있나요? 좋은 튜토리얼, 블로그, 책이 있나요?

물론 공식 웹사이트(http://nodejs.org/)를 방문했지만, 그 문서가 좋은 출발점이 될 것 같지는 않았습니다.

질문에 대한 의견 (1)

튜토리얼

해설 (27)

**먼저, Node.js의 핵심 개념을 익히세요.

  • Node.js가 권장하는 비동기 코딩 스타일을 이해하고 싶을 것입니다.
  • 비동기!=동시. Node.js의 이벤트 루프 이해!
  • Node.js는 코드 로딩에 CommonJS 스타일의 require()를 사용하므로 익숙한 것과는 약간 다를 수 있습니다.
  • Node.js의 표준 라이브러리에 익숙해지세요](http://nodejs.org/api/index.html). **그런 다음 커뮤니티에서 제공하는 기능을 살펴보세요. Node.js 패키지 관리를 위한 최고의 표준은 NPM입니다.
  • 프로젝트의 종속성을 관리하기 위한 명령줄 도구입니다](http://docs.nodejitsu.com/articles/getting-started/npm/what-is-npm).
  • node_modules 폴더와 package.json](http://nodejs.org/api/modules.html)을 통해 Node.js와 NPM이 프로젝트와 상호 작용하는 방식을 이해해야 합니다.
  • NPM은 거의 모든 Node.js 패키지의 레지스트리이기도 합니다. 마지막으로, 다양한 작업을 위해 더 많이 사용되는 패키지가 무엇인지 알고 싶을 것입니다. 모든 프로젝트에 유용한 도구:**
  • 밑줄](http://underscorejs.org/)에는 원하는 거의 모든 핵심 유틸리티 메소드가 포함되어 있습니다.
  • Lo-Dash](http://lodash.com/)는 언더스코어의 복제품으로, 더 빠르고 사용자 정의가 가능하며 언더스코어에는 없는 기능이 꽤 많이 있습니다. 특정 버전은 언더스코어를 대체하는 드롭인 방식으로 사용할 수 있습니다.
  • 타입스크립트](http://www.typescriptlang.org)는 자바스크립트를 훨씬 더 쉽게 사용할 수 있게 해주면서 문제도 방지해줍니다!
  • JSHint는 코드 검사 도구로, 어리석은 오류를 찾는 데 많은 시간을 절약할 수 있습니다. 코드에서 자동으로 실행되는 텍스트 편집기용 플러그인을 찾아보세요. 단위 테스트:
  • Mocha는 널리 사용되는 테스트 프레임워크입니다.
  • Vows](http://vowsjs.org/)는 다소 낡긴 했지만 비동기 테스트에 대한 환상적인 접근 방식입니다.
  • Expresso는 보다 전통적인 단위 테스트 프레임워크입니다.
  • 노드 유닛](https://github.com/caolan/nodeunit)은 비교적 전통적인 또 다른 단위 테스트 프레임워크입니다.
  • AVA는 바벨이 내장된 새로운 테스트 러너로 테스트를 동시에 실행합니다. 웹 프레임워크:
  • Express.js는 가장 널리 사용되는 프레임워크입니다.
  • Koa는 Express.js 개발팀이 설계한 새로운 웹 프레임워크로, 웹 애플리케이션과 API를 위한 더 작고, 더 표현력이 풍부하며, 더 강력한 기반을 목표로 합니다.
  • sails.js는 가장 인기 있는 Node.js용 MVC 프레임워크로, Express를 기반으로 합니다. Ruby on Rails와 같은 프레임워크의 친숙한 MVC 패턴을 에뮬레이트하도록 설계되었지만 확장 가능한 서비스 지향 아키텍처를 갖춘 데이터 중심 API라는 최신 앱의 요구 사항을 지원합니다.
  • Meteor는 jQuery, 핸들바, Node.js, WebSocket, MongoDB, DDP를 함께 번들로 제공하며 Ruby on Rails 클론이 아니면서 구성에 대한 규칙을 장려합니다.
  • Tower(단종됨)는 Ruby on Rails 클론을 목표로 하는 Express.js의 상단을 추상화한 것입니다.
  • Geddy는 웹 프레임워크의 또 다른 변형입니다.
  • RailwayJS는 루비 온 레일즈에서 영감을 받은 MVC 웹 프레임워크입니다.
  • Sleek.js는 Express.js를 기반으로 하는 간단한 웹 프레임워크입니다.
  • Hapi는 입력 유효성 검사, 캐싱, 인증 등을 기본으로 지원하는 구성 중심 프레임워크입니다.
  • Trails는 최신 웹 애플리케이션 프레임워크입니다. Rails]5Grails의 혈통을 기반으로 구축되어 간단한 규칙 기반의 API 중심 설계 철학을 준수함으로써 개발을 가속화합니다.
  • Danf는 확장 가능하고, 유지 관리가 용이하며, 테스트 가능하고, 성능이 우수한 애플리케이션을 생성하기 위해 다양한 기능을 제공하고 서버(Node.js)와 클라이언트(브라우저) 측에서 동일한 방식으로 코딩할 수 있는 풀 스택 OOP 프레임워크입니다.
  • Derbyjs는 반응형 풀스택 자바스크립트 프레임워크입니다. 반응형 프로그래밍 및 동형 자바스크립트와 같은 패턴을 오랫동안 사용하고 있습니다.
  • Loopback.io는 API를 생성하고 백엔드 데이터 소스에 쉽게 연결할 수 있는 강력한 Node.js 프레임워크입니다. Angular.js SDK가 있으며 iOS 및 Android용 SDK를 제공합니다. 웹 프레임워크 도구:
  • Jade는 Node.js 세계의 HAML/Slim입니다.
  • EJS](https://github.com/visionmedia/ejs)는 보다 전통적인 템플릿 언어입니다.
  • 밑줄 템플릿 방법](http://documentcloud.github.com/underscore/#template)을 잊지 마세요! 네트워킹:
  • Connect](http://www.senchalabs.org/connect/)는 Node.js 세계의 Rack 또는 WSGI입니다.
  • Request는 매우 인기 있는 HTTP 요청 라이브러리입니다.
  • socket.io는 웹소켓 서버를 구축할 때 유용합니다. 명령줄 상호작용:
  • minimist 명령줄 인수 파싱만 가능합니다.
  • Yargs는 명령줄 인수를 구문 분석하는 강력한 라이브러리입니다.
  • Commander.js는 일회용 명령줄 애플리케이션을 구축하기 위한 완벽한 솔루션입니다.
  • Vorpal.js](https://github.com/dthree/vorpal)는 성숙한 몰입형 명령줄 애플리케이션을 구축하기 위한 프레임워크입니다.
  • Chalk](https://github.com/chalk/chalk)는 CLI 출력을 예쁘게 만들어줍니다. 스트림으로 작업하기:
  • 미시시피 스트림에 대한 모든 것을 놓치지 마세요.
  • https://github.com/calvinmetcalf/streams-a-love-story
  • http://maxogden.com/node-streams.html
  • https://github.com/substack/stream-handbook
  • [스트림이 Node.js 성능을 높이는 데 도움이 되는 방법](https://www.youtube.com/watch?v=QgEuZ52OZtU)
해설 (9)

소스를 사용하세요, 루크.

아니요, 하지만 소스로부터 Node.js를 빌드하고 테스트를 실행하고 벤치마크를 살펴본 결과 올바른 방향으로 나아가고 있다는 것을 알게 되었습니다. 거기에서 lib 디렉터리에 있는 .js 파일, 특히 http.js 파일을 살펴보는 것이 좋습니다.

업데이트: 이 답변을 작성한 지 1년이 넘었는데, 그 이후로 Node.js를 배우는 사람들이 이용할 수 있는 훌륭한 리소스의 수가 폭발적으로 증가했습니다. 저는 여전히 소스를 파고드는 것이 가치가 있다고 생각하지만, 이제 시작하는 데 더 좋은 방법이 있다고 생각합니다. 이제 막 나오기 시작한 Node.js 관련 서적 몇 권을 추천하고 싶습니다.

해설 (2)