2014년 11월 26일 수요일

온라인게임을 혼자 즐기는 방법

저는 라xxx크 라는 게임을 벌써 10년도 넘게한거 같네요

처음 만난게 01년도 정도 였으니까 그당시 아마 디아블로2가 유행이었는데

저혼자 이 게임을하다가 주변사람들 에게도 권유해서 넘어왔었습니다 ^^

캐릭터도 아기자기하고 그당시엔 츠루기 라는 검 하나만 있으면 무럭무럭 성장하는 재미를

느낄수 있던 그런 시절이었죠.

네이팜비트 라는 스킬을 법사가 배우면 10랩까지 올려서 피라미드4층에서 옹기종기 모여서

같이 렙업 하는 그런정도였는데

언제부턴가 리뉴얼 -> 리뉴얼 -> 2~3번 바뀌고나서는 현재에와서 적응하기가 매우어렵더라구요

쉐도우체이서 113랩정도까지 키웠는데  아이템중에 쉐도우 라는게 등장하면서  (아마 2013년정도에 나온듯)

따라가기가 더힘들어진것같습니다.

게임사에서는 하루 접속유저 숫자도 늘리고 접속을 유지하고 있는 유저 숫자도 늘려야하기 때문에 점핑이벤트, 룰렛이벤트 같은걸 하고있고  운영하면서 운영비용도 충당하고 직원 월급도 줘야하기때문에 때만되면 행알 이벤트 이런것을 자주 하는것으로 알고있습니다.

작년 모험가 배낭 같은경우 거의 신급이라고 볼수있죠 현금으로 20~30  현재는 35선에서 거래되는것으로 알고있습니다.

게임 아이템을 현금으로 매매하는것도 물론 여유가 있다면 누가 뭐라하겠냐마는 평일 접속자수 3천명 정도하는 서버에 아이템을 20~30만원주고 사는건 제입장에서 그리고 제생각에는 '낭 비' 라고 생각할수 밖에없네요 ㅠ

물론 그아이템을 사서 팔때 제값에 받아도 괜찮긴 하겠습니다마는 하루아침에 어떤템을 찍어낼지 모르는 상황에서 현질을 하긴 좀 그렇죠;

그래서 여기저기 검색을하다가 작년?  제작년즈음 프리서버(?) 이런걸 알게되고
프리서버 혹은 개인서버를 찾게되었습니다.

참고로 프리서버는 게임사에서 집중단속하여 없어진것으로 알고있습니다.

개인서버는 pc에  원본게임이 있는 상황에서 db설치 그리고 프로그램 재배포

(덧 씌우는거 겠죠?) 그리고 프로그램과 db사이 계정 설정 이런방식으로 설치 진행이 됩니다.

자세한 정보를 원하시면 구글 ->

[Tutorial] How to Create Ragnarok Offline 2013 client 


검색해보시면 자세히 나옵니다. 영어가 압박이긴 했는데 천천히 하나하나 읽다보니 어려운내용은 그닥 없네요 [사실 사진으로 설명이 자세히 나와서 몰라도 그다지..]



설치가 끝나면 아마도 이런 화면을 보실겁니다 loki 런처로 실행하면되는데 제가 다른 설정은 안해서 그런지 캐릭생성시 한글로 하면 안만들어지더군요 영문으로 하면 잘됩니다.

뭐 깊숙히 공부하고 싶다면 rathena 쪽 검색해보시면 이것저것 많습니다
텍스쳐까지 손대는 분들 보면 정말 게임을 새로 다시 만드는 그런 느낌입니다.

다른사람한테 피해는 안끼치고 취미생활로 즐기는 선에서 마무리 하는게 좋을듯 합니다. 

입장바꿔서 제가 게임사라면 속이 아플테니 프리서버 이쪽은 하는 방법 또는 노하우 이런질문은 미리 정중히 삼가합니다. (사실 방법은 잘몰라요  접속기의 ip설정만 잘하면 되겠죠 뭐 )


2014년 11월 17일 월요일

좋아하는 음식이나 과일 있나요?

저는 감을 싫어했습니다 끔찍히 싫어하는 정도는 아니었지만 껍질을까는것도 귀찮고
감씨를 나중에 처리해야하는것도 귀찮아서 저는 귤을 좋아했고 지금도 좋아합니다

그. 런. 데

동의보감에 따르면 홍시는 숙취 해소에 효능이 있고 심장과 폐를 튼튼하게 하고 갈증을 없애주는 효과가 있다. 또한 소화 기능까지 좋아지는 효능을 가졌다.

숙취 해소 !

음주후 다음날 제가 좋아하는 식사는 콩나물 국밥인데

한가지 더 늘어나겠네요 바로 홍시!



그러나 단점으로는 많이 섭취하게 될 경우 변비에 걸릴수 있다는거

변비 -> 혈변 테크트리를 자주 탄다면 치질이나 치루에 걸릴수도 있겠죠

^o^ 좋아해도 적당히 ㅋㅋㅋ




11월 3째주 일기

요근래에 블로깅을 자주 안했다.
사람이 무언가에 빠지거나 몰두하면 뭔가를 잊기 쉽다.
목표했던일이나 하고자 했던것 예를 들면 2주안에 책 ~~1권 읽자 결심하고
흐지부지 되는일..

또는 자동차 열쇠를 잃어버린다든가, 사원증을 잃어버린다든가,
뭔가를 자주 흘리는 사람..

이번달에만 3가지를 잃어버렸는데 운좋게 3가지 모두다 내손으로 돌아왔다

처음엔 누나 도서대출카드로 대신 대출을 해주기위해 받았다가 받은지 15분도 안되서 흘려서 잃어버렸는데 아파트 경비아저씨가 줏어서 도서관으로 전화해주셔서 받을수 있었다.

다음엔 사원증을 점퍼 주머니에 넣어놨는데 1주일만에 찾게되었고
그다음엔 차열쇠를 또 다른 점퍼 주머니에 넣어놨다가 어디에 흘렸는지 못찾아서 매형한테 물어보고 복사하기위해 열쇠집을 찾아다니기도 했다.

결국 잃어버렸으되 진짜 잃어버린게 아닌 가짜로 잃어버린셈이 되었다
내 기억이나 내주변엔 어디있는지 찾을수 없지만 실제론 가까이에 있는 그런 상황들

정신을 가다듬고 하나하나 조금만더 천천히 무엇을 원하는지 마음의 소리를들어보자
게임, 만화, 소설 내가 즐길수있는 오락거리들이 무조건 나쁜건 아니다
나쁜건 절제를 못하는게 나쁜거지 뭔가를 집중하고 내게 주는 휴식시간을 무조건 배타적으로 바라보는 시선은 지양해야하지 않을까?

좀더 나자신에게 솔직해지고 나자신에게 관대해지자
주변에 100M달리기 선수들 밖에 안보인다고 인생이란 마라톤을 포기할순 없지않는가?

2014년 11월 11일 화요일

싱글세?

해도해도 너무한다는 생각 안드냐?
20~30대 이성 만나고싶은데 현실이 안되서 못만난다는 생각 못함?

생각해봐 빠르면 25세에 입대 27세 전역 졸업 빨리해서 28세했다쳐
운이좋아 사회에 28세에 뛰어들었다고 생각해봐 4~5년만에 너희들은
결혼과 집을 얻을만큼 돈을 모을수 있는 충분한 시간이라고 생각하냐?

대한민국이라는 나라에서 내가 원하는 일을하면서 위의 일들이 자연스럽게 이루어질수 있다고 생각하냐?

내생각엔 위의 일들은 기본적으로 금수저를 물고 태어났으며 살면서 훌륭한 멘토 2~3명은 거쳐야 일어날수 있는일 같은데?

진짜 가만히 나라에서 하는꼴 보고만있자니 울화통이 터진다

그냥 평범한 회사 출퇴근 시간 몇시인줄 아냐? 기본적으로 8시 30~ 19시 30분

대다수가 이래 오후6시 이후에칼퇴근? 어떤새키가 칼퇴근이라는 말을 만들어냈는지는 몰라도 정시퇴근은 정말 이례적인 일이야

어지간해선 집에 무슨일이 나거나 몸이아프거나 뭔가 사유가 있어야 정시퇴근을 요청하고 눈치보면서 나가야되

라디오를 들으면서 출퇴근을 하는데 싱글세라는 말을 듣고 (보건부 고위관계자?) 어이가 없어서 헛웃음만 나온다.

내가 초능력이 생긴다면 진짜 이런말하는녀석들이나 어처구니없는 정책 간보는식으로 떠들어대는녀석은 어금니 하나씩 뽑아줄텐데 매우아쉽다.

부부가 일반 주택을 구매하려면 약 28년의 세월을 아끼고 저축해야 가능하다는 조사결과가 나왔다고한다.

그럼 종합해보면 빚으로 주택을 구매하게 해줄테니 28년간 다른생각하지말고

애낳으시고~ (양육비 알아서 마련하세요) 28년간 근면성실하게~ 저축을하세요
그럼 중저가 아파트 하나 얻을수있어요

30세에 결혼했어도 58세 내일 모래 환갑잔치 ? 하기전엔 그래도 빚다 갚을수 있겠네요



감사합니다 빚한민국에 살수있어서

2014년 11월 9일 일요일

듕국에서 만든 김정은 풍자 영상



이거만든사람은 진짜 천재다

11월 9일 일요일 일기

3일전부터 극심한 감기에 시달리고 있습니다.

보통 감기에 걸리면 어떤경로로 걸렸는지 모르는 경우가 많은데

이번 감기는 알듯합니다.

3일전 목요일 저녁 무료함도 달랠겸 새벽 1시쯤 편의점에 달려가

소주 2병, 참치김밥1줄, 불닭볶음면1개 이렇게 사서 제방에서 혼자 먹었드랬죠

가끔 혼자 술먹는걸 즐기고 혼자서도 잘놀아서 이렇게 조촐하게 야식을 즐기는데

보통 술을 잔에 따라서 마시다가도 혼자서 마시면 따라서 마시는게 귀찮을때가 있어 병을

입에 대고 마셨습니다.

맥주병은 보통 입에 대고 마시기전에 옷이나 휴지로 병입구를 슥슥 닦고 먹는게 버릇인데

그날따라 그냥 입에 대고  병나발(?)을 불다가 다먹고 양치후 잤습니다(무슨일이 있어도

잠들기전엔 양치질 꼭하고 잡니다. 못할경우 수돗물로라도 대충 행구고 잡니다.)

근데 잠자기전에 입주변이 얼얼한 느낌이 들더라구요. 술먹어서 그런가보다 싶었는데

잠들면서 곰곰히 생각해봤는데 병나발은 좋지 않은 습관인듯합니다. 물론 혼자 술마시는것

이 훨씬 안좋은 습관이긴 합니다만 그중에서도 병나발은 안좋은 습관인듯 합니다.

생각해보면 병을 재처리 하는 과정에서 누가 그 병입구 부분을 세심하게 닦을까? 라는생각

이 들더군요.

결국 병나발 부는 사람들은 은연중에 간접키스를 한다 이런 말이 되고 감기 바이러스에

걸린 사람 누군가가 소주병을 입에 물고 마셨다면 2차 감염 3차 감염도 당연히 예상할수 있

겠지요?

평소 위생관련 해선 깨끗이 지킬건 지키자 라는 생각으로 살아왔는데 대수롭지 않게 생각해

왔던게 이렇게 큰 불편함으로 돌아올줄이야..

결국 요즘은 따듯한 꿀차를 마시면서 보내고 있습니다.

몸은 힘들지만 따듯한 꿀차 한잔이면 한기가 느껴지질않네요


한기가 느껴지는가~?


2014년 11월 7일 금요일

안된다 안된다 안된다 ㅠㅠ 왜?


module.js:340
    throw err;
          ^
Error: Cannot find module 'connect'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (C:\Users\sharpscar\workspace\helloWorld\hello-world-server.js:4:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)


connection 모듈을 못찾는다
서적에 package.json파일에 대해나오는데 소스또한 부분적으로 안보여서 해당 프로젝트 위치에서 커맨드라인 켜고
npm init 이란명령어로 몇개 넣어주고
"dependencies" : {
"connect" :"*"
}해주고 나서 json파일을 npm install하면
프로젝트 폴더 밑에 node_modules폴더가 생기면서
커넥트 미들웨어가 설치가 되어야 정상

그러면서 관련 예제가 실행되어야되는데 위와같은 에러를 뿜는다 난 분명히 설치해줬는데 얘는 에러를 뿜는 현상

구글에 검색해봐도 무슨말인지 도통 모르겠다
예전에도 express에서 미들웨어들이 대거 분리되었다는 말을 듣긴 했는데 그거하고 이문제가 관련이 있는지 모르겠다

우선 시간이 지체되는것같아 넘어가고 다음장

Persisting Data부터 읽어보기로 결정

7장은 시간있을때 다시보거나 다른 서적을통해 공부하도록 해야겠다.

node.js 의 url모듈

url을 객체화 할때는 url.parse()메서드를 사용
다시 직렬화 할때는 url.format()메서드를 사용

var url = require('url');

var obj = url.parse('https://www.google.co.kr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=sharpscar\'s%20crab%20pot');
console.log('url to Object : ', obj);
console.log("=====================");
console.log('Object to URL :', url.format(obj));


결과

url to Object :  { protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'www.google.co.kr',
  port: null,
  hostname: 'www.google.co.kr',
  hash: '#newwindow=1&q=sharpscar%27s%20crab%20pot',
  search: '?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8',
  query: 'sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8',
  pathname: '/webhp',
  path: '/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8',
  href: 'https://www.google.co.kr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=sharpscar%27s%20crab%20pot' }
=====================
Object to URL : https://www.google.co.kr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=sharpscar%27s%20crab%20pot

nodejs 동기식 비동기식 파일읽기와 파일 확인

비동기식
var fs = require('fs');
fs.readFile('test.txt','utf8',function(err,data){
if(err) throw err;
console.log(data);
});

동기식
var fs = require('fs');
var data = fs.readFileSync('test.txt', 'utf8');
console.log(data);


비동기 파일확인
fs.exists('test1.txt', function(exists){
  console.log('fs.exists: ' ,exists);
}

동기식 파일확인
var exists = fs.existsSync('test.txt');
console.log('fs.existsSync : ' , exists);

2014년 11월 5일 수요일

nodeunit사용 피보나치 수열 테스트

t\lib\types.js:83:39)
    at Object.exports.testGetFibonaccieNumber (C:\Users\sharpscar\workspace\hell
oWorld\test\fibonaccie-nodeunit-tests.js:10:7)
    at Object.<anonymous> (C:\Users\sharpscar\AppData\Roaming\npm\node_modules\n
odeunit\lib\core.js:236:16)
    at C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeunit\lib\core.js:
236:16
    at Object.exports.runTest (C:\Users\sharpscar\AppData\Roaming\npm\node_modul
es\nodeunit\lib\core.js:70:9)
    at C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeunit\lib\core.js:
118:25
    at C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeunit\deps\async.j
s:513:13
    at iterate (C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeunit\dep
s\async.js:123:13)
    at async.forEachSeries (C:\Users\sharpscar\AppData\Roaming\npm\node_modules\
nodeunit\deps\async.js:139:9)
    at _concat (C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeunit\dep
s\async.js:512:9)

Assertion Message: Wrong fibonaccie!! 10th fibonaccie number is 34!!
AssertionError: 256 == 34
    at Object.equal (C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeuni
t\lib\types.js:83:39)
    at Object.exports.testGetFibonaccieNumber (C:\Users\sharpscar\workspace\hell
oWorld\test\fibonaccie-nodeunit-tests.js:11:7)
    at Object.<anonymous> (C:\Users\sharpscar\AppData\Roaming\npm\node_modules\n
odeunit\lib\core.js:236:16)
    at C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeunit\lib\core.js:
236:16
    at Object.exports.runTest (C:\Users\sharpscar\AppData\Roaming\npm\node_modul
es\nodeunit\lib\core.js:70:9)
    at C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeunit\lib\core.js:
118:25
    at C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeunit\deps\async.j
s:513:13
    at iterate (C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeunit\dep
s\async.js:123:13)
    at async.forEachSeries (C:\Users\sharpscar\AppData\Roaming\npm\node_modules\
nodeunit\deps\async.js:139:9)
    at _concat (C:\Users\sharpscar\AppData\Roaming\npm\node_modules\nodeunit\dep
s\async.js:512:9)


FAILURES: 3/3 assertions failed (15ms)






C:\Users\sharpscar\workspace\helloWorld\test>nodeunit fibonaccie-nodeunit-tests.
js

fibonaccie-nodeunit-tests.js
Let's get Fibonaccie Numbers...
Fibonacci [8] th Number is [13]
All numbers is [0,1,1,2,3,5,8,13]
Let's get Fibonaccie Numbers...
Fibonacci [9] th Number is [21]
All numbers is [0,1,1,2,3,5,8,13,21]
Let's get Fibonaccie Numbers...
Fibonacci [10] th Number is [34]
All numbers is [0,1,1,2,3,5,8,13,21,34]
✔ testGetFibonaccieNumber

OK: 3 assertions (16ms)

C:\Users\sharpscar\workspace\helloWorld\test>


위가 테스트 했을때  원치않는 값이 나왔을경우
아래가 테스트 했을때 원하는 값이 나올경우

Node js 프로그래밍 책을 보고있습니다.

이클립스를 설치한후에

추가프로그램으로 nodeclips를 추가한후

간단한 피보나치 수열을 계산하는 소스를 작성해봅니다.

그리고나서

해당 js파일에서 우클릭 -> Debug as -> Node Application메뉴를 선택하면 4개의 창으로 구분되어집니다.

중단 창에서 F5~ F8키의 기능을 정리해봅니다.

F5키 : Step info : 해당 스텝 안으로 들어갑니다. 스텝에 함수가 있다면 해당 함수 안으로 들어갑니다.
F6키 : Step over 해당 스탭 다음으로 넘어갑니다.  지금 디버깅 하고 있는 소스 라인의 다음 라인으로 이동한다는 것을 의미
F7키 : Step Return 해당 스텝 밖으로 나갑니다. 특정 함수 안 이였다면 함수를 호출했던 소스로 나갑니다.
F8키 : Resume 다음 브레이크 포인트까지 소스를 진행합니다.



Nodeunit을 활용한 단위 테스트

https://github.com/caolan/nodeunit  <<

*ok(value,[message])
 -test if value is a true value
*equal(actual, expected, [message])
 -tests shallow, coercive equality with the eqaual comparison operator(==).
*notEqual(actual, expected, [message])
-tests shallow,coercive non-equality with the not equal comparison operator(!=).
*deepEqual(actual, expected,[message])
-test for deep equality
*strictEqaul(actual,expected, [message])
-tests strict equality, as determined by the strict equality operator(===)
*throws(block,[error], message])
-Expectsblock to throw an error
*doesNotThrow(block,[error],[message])
-expects block not to throw an error
*ifError(value) -test if value is not a false value, throws if it is a true value. useful when lesting the fist argument, error in callbakcs.


  • expect(amount) 해당 테스트 케이스에 몇개의 assert함수가 있는지를 명시합니다. 테스트시 개발자가 의도했던 Assert함수가 모두 수행됐는지 쉽게 확인할수 있습니다.
  • done() - 테스트 케이스의 종료를 명시하고 다음 테스트 케이스를 수행하게 합니다. 해당메소드는 반드시 호출해야 합니다.