8. Node.js
Node.js is a platform built on Chrome's JavaScript runtime
for easily building fast, scalable network applications. Node.js
uses an event-driven, non-blocking I/O model that makes it
lightweight and efficient, perfect for data-intensive real-time
applications that run across distributed devices.
http://nodejs.org/
9. 왜 Node.js를 선택했나
Node.js
오픈 소스
libuv(IOCP) + V8(JIT)의 믿고 쓰는 조합
지속적인 업데이트
잘 작성된 레퍼런스
많은 미국 대기업에서 도입
http://nodejs.org/industry/
15. 필요한 부가 기능들은
기본 라이브러리 만으로도 원하는 기능 거의 다 구현
기능이 없는 경우 서드파티 모듈을 충분히 사용
유용한 서드파티 모듈은 NPM(https://npmjs.org/)을 이용해 탐색
NPM client을 이용해서 다운로드 및 업데이트
이젠 Windows에서도 잘 동작
16. 유용하게 사용한 기본 라이브러리
http, https
url, querystring
util
buffer, stream
fs
crypto
25. 분석
상위 랭크는 대부분 DB 연동 리퀘스트
DB와 관련 없는 리퀘스트는 대부분 2ms 미만에 처리
백-엔드보다 DB 튜닝이 퍼포먼스 향상에 더 많은 도움
26. 초기 라이브 서비스 환경
Amazon Web Services EC2
US East(Northern Virginia)
Small instance * 1 (control server)
Small instance * 1~3 (game server)
Medium instance * 2 (DB server, replication server)
EC2 Load Balancer * 2
28. 로드 밸런서
AWS 로드 밸런서는 Session Stickiness를 80포트만 지원
다른 포트를 사용하는데 Session Stickiness 는 지원해야 됨
서버 로컬 캐시데이터 참조
결제
간단하게 프록시를 Node.js로 제작
라운드 로빈 베이스
Session Stickiness 지원
100줄 미만의 코드로 동작
43. 새롭게 도입한 모듈
생산성을 높여준 코어 모듈
express
mongoose
Coffee-script는 사용하다 보류
자바 스크립트의 bad part는 그대로 물려받음
Webstorm에서도 디버깅이 완벽 지원되지 않음
버그 발생시 문제점을 찾기 어려움
Redis는 사용하다 보류
Mongodb만으로도 충분
Mocha는 좋은 테스트 프레임워크