2014년 9월 30일 화요일

Node.js를 사용한 온라인 멀티 웹게임 Broswer Quest (Windows)

BroswerQuest라는 온라인 멀티 웹게임에 대해 설명합니다.



실제 게임은 http://browserquest.mozilla.org/ 에서 진행해 볼 수 있습니다.
구글의 V8 javascript엔진을 사용하기 대문에 크롬 브라우저에서 열어야 합니다.
테스트 해 본 결과 태블릿용 크롬 및 휴대폰용 크롬에서도 잘 작동 합니다.

게임화면 스크린샷도 참고하세요.




이제.. Windows PC에서 이 게임 서버를 설치하고 실행하는 방법을 설명합니다

1. 먼저 node.js 를 다운로드 하여 설치합니다.
추천하는 버전은 v0.9.12 입니다.

http://nodejs.org/dist/ 에 접속하여 v0.9.12 폴더의 node-v0.9.12-x86.msi 를 다운로드 하고 설치합니다.

2. BroswerQuest 소스코드를 gitbub 에서 다운로드 합니다.
오른쪽의 Download ZIP을 클릭하면 소스 전체를 다운로드 할 수 있습니다.

3. 다운로드 받은 ZIP을 적당한 위치에 압축 해제 합니다.
(저는 D:\Inetpub 폴더에 압축해제 해서 D:\Inetpub\BrowserQuest-master 폴더가 생겼네요)

4. cmd 창을 실행시킵니다.
node -v 명령으로 설치된 node.js의 버전을 확인 할 수 있습니다.

5. BrowserQuest-master 폴더로 이동합니다.

6. npm install underscore log bison websocket websocket-server sanitizer memcache
을 cmd창에 입력합니다.
필요한 패키지가 자동으로 다운로드 됩니다.

7. BrowserQuest-master 폴더에서 node server/js/main.js 를 실행합니다.
이제 BroswerQuest 서버가 실행되었습니다.

8. 새로운 cmd 창을 열고 BrowserQuest-master\client 폴더로 이동합니다.
npm install -g http-server 를 실행합니다.
웹서버를 위한 패키지가 설치됩니다.
http-server 를 실행하면 해당 폴더가 웹사이트의 기본 폴더가 됩니다. 포트는 기본 8080입니다.
크롬 주소창에 127.0.0.1:8080 을 입력하면 BroswerQuest가 나오는 화면을 볼 수 있습니다.
하지만, 아직 다 된것은 아닙니다. 소켓 통신을 위해서 서버 설정을 해주어야 합니다.
ctrl+C를 눌러서 웹서버를 종료해 주세요.

9. 탐색기로 BrowserQuest-master\client\config 폴더를 엽니다.

10. config_build.json-dist 와 config_local.json-dist 파일을 복사 + 붙여넣기 해서 사본을 만듭니다.

11. 두 파일을 열어서 "host": "Set local dev websocket host here" 부분을 "host": "127.0.0.1" 으로 변경하고 저장합니다.

12. 파일이름이 config_build.jsonconfig_local.json 이 되도록 변경합니다.

13. 이제 cmd 창에서 http-server 를 실행합니다.

14. 크롬 주소창에 127.0.0.1:8080 을 입력하고 BroswerQuest 화면이 나타나면 캐릭터 이름을 넣고 접속하면 게임이 실행됩니다.

15. 크롬 주소창에 127.0.0.1:8000/status 를 입력하면 서버 상태를 볼 수 있습니다.

2014년 8월 28일 목요일

포스코 LED 백열전구 대체용 9W 전구 1년만에 고장

집에서 사용하는 등기구의 일부를 LED 전구로 교체하였습니다.
먼저, 전기효율이 많이 떨어지는 백열전구부터 교체를 했지요.
20여개나 구매했기에 몫돈 들였지요.

제가 선택한 제품은 포스코LED의 9W 전구입니다.
백열전구 60W 대체용입니다.


뒷쪽에 방열판이 달려 있습니다.
슈퍼LED들은 열이 많이 발생하므로 필히 방열판이 있어야 합니다.
자동차 벌브 대체용 LED같은 경우도 소켓부분의 플라스틱이 녹아 변형될 정도입니다.


분해를 해 보았습니다.
이렇게 분해하게 된 사연은 좀 있다 적을께요.
하이퍼 플럭스인지 몰라도.. 여러개의 LED들이 보입니다.
가운데 IC 하나가 컨트롤러인듯.


내부의 LED모듈은 서울반도체 제품입니다.
LED특허도 많이 가지고 있고 인지도가 높지요.
포스코LED 사이드에 들어가 보니 Family Site에 있더군요.
계열사인지는 확인해 보지 않았습니다.
뒷쪽 방열판과는 열전도 실링으로 붙어 있는데 잘 떨어집니다.


구매한지 1년 조금 지났나 보네요.
제조일자가 2013년 4월 4일 입니다.


제원은 이렇습니다.

광량 : 770루멘 (최소 680루멘)
광효율 : 85루멘/와트
소비전력 : 9W

이 제품의 수명은 40,000 시간 입니다.
가격이 비싼만큼 전기도 아끼고 오래 사용할 수 있다는 것이지요.

이 제품을 굳이 분해해서 사용기를 적게된 이유는..
이제품이 몇일전 고장이 났기 때문입니다.
1년 조금 지난 시점..
제품설명에 있는대로 40,000 시간은 4.56년을 24시간 켜놔야 하는 시간입니다.

그러면, 제가 1년동안 24시간을 켜놨느냐?
저는 이 램프를 화장실 백열전구와 교체했습니다.
하루에 켜지는 시간 다 합해봐야 2시간도 안되겠지요.
1년으로 계산하면 730시간.

고장 증상은 전원 켰을때 반짝 하고는 꺼져버립니다.
그나마.. 자꾸 켰다 껏다 하면 아무 반응이 없습니다.
한참을 기다렸다 전원 켜면 또 반짝.

사실 이 제품을 사용하면서 후회를 많이 했습니다.
광량이 너무 약했기 때문인데요.
화장실 등으로는 별 문제가 없었지만
거실에 실링팬용으로 5개를 넣었는데
별 넓지도 않은 거실도 환하게 밝혀주지 못해서
아이들 시력저하가 걱정되더군요.

결국.. 당시 최고의 광량을 보여주는 필립스 13W 5개로 교체하였습니다.
가격은 두배쯤 되었겠네요.
밝기는 정말 만족스럽습니다.

포스코 제품에는 최소광량이 표시되어 있는데요.
그게 이 램프의 평균 광량이라고 보면 될것같습니다.

광고수명의 1.8%(백분의 2 정도네요)를 사용하고 사망.
너무 화가나더군요.
하기야 5년 가까운 시간만큼 잘 작동할지 테스트 해보고 써놓은건 절대 아니겠지요.
포스코 LED에 항의 글을 올렸습니다.

4일쯤 지나자 연락이 왔더군요.
제품을 보내주면 새제품으로 교환해 주겠답니다.

제품 수명 테스트는 했느냐고 물었지요.
전체는 아니지만 샘플링 해서 테스트 했답니다.
어이없음.. 24시간 몇일동안 해야하는지 계산해 보고나 하는 얘긴지?
게다가 LED 수명은 그렇다 하더라도,
회로에 포함된 IC의 내구성도 검증을 했는지..
여튼..
포스코 제품 쓰고싶지 않다고 얘기했습니다.
제품은 다 분해해 버렸는데 보내봐야 뭐하겠냐고 했죠.
그랬더니 그냥 새제품 하나 택배로 보내준다고
주소를 알려달라더군요.

잘 알아듣지도 못하는데 대충 불러줬습니다.
고장난 하나는 가장 사용빈도가 높은 것이었습니다.
필립스 제품으로 바꾼 거실등이야 엄청 오래 켜져 있지만..
여전히 밝게 잘 작동하고 있습니다.

좀 지켜봐야 겠네요.
하나 하나 시간돼서 고장나기 시작하면
적극적으로 제품 수명에 이의를 제기해야 겠네요.