본문 바로가기

관심분야

(20)
대량의 데이터처리를 위한 알고리즘... 최근 빅데이터를 다루기 위한 여러가지 기술들이 많이 사용되고 있다. 그 중 하나의 알고리즘을 소개해보고자 한다. lucene redis leveldb 이들의 공통점은 skiplist 알고리즘을 사용한다는 것이다. Skip ListTypeListInvented1990Invented byW. PughTime complexity in big O notationAverageWorst caseSpaceO(n)O(n log n)[1]SearchO(log n)O(n)[1]InsertO(log n)O(n)DeleteO(log n)O(n) 대량의 데이터를 빠르게 검색이 가능하다는 장점이 있으며, 사용하는 방법에 따라서는 최상의 성능을 발휘하지만 몇가지 제약을 가지고 있기도 하다. 그래서, 나는 몇가지 기능을 수정해 보았..
게임 컨텐츠 구현을 위한 V8 Javascript엔진.. 저는 현재, 타이틀과 마찬가지로, Google의 V8 Javascript엔진을 게임개발에 사용하고 있습니다. 이러한 방식으로, 서비스를 만들고, 클라이언트와 통신을 합니다. var wsaio = new WSAIO();var l = wsaio.listen(8080, 10); l.onreceive = function (fd, bson) { print("RECV: " + process.id + " " + fd);}; l.onconnection = function (fd, addr) { print("CONNECTION: " + process.id + " " + JSON.stringify(addr)); l.forEach(function (fd, o) { print("FOREACH: " + fd + " => " +..
데이터 변경에 대한 로깅 대부분의 서비스는 데이터베이스를 통해서, 데이터를 관리하고 그에 대한 변경 내용을 일일이 관리합니다. 이러한 데이터는 이후 서비스의 유지 보수와 사용자 응대에 사용되기 마련입니다.그러다 보니, 개발자 입장에서 이러한 데이터를 저장하고, 처리하는 업무가 중요할수 밖에 없습니다.나름, 이러한 처리를 저 또한 많이 하고, 단순화 시키기 위해서 많은 노력을 합니다. 그래서 사용하는 방법이 Observer 형태의 개발 패턴을 사용하였습니다. 이러한 패턴을 사용하기 위해 다음과 같은 접근 방식을 택하였습니다. - 쿼리를 통해, 데이터는 Map형태로 정규화 시킨다.- Map형태로 저장된 데이터의 변경을 로깅 관리한다.- 변경된 내용을 기록하는 함수를 통해 데이터베이스에 반영한다.- 데이터베이스에 정상적으로 반영이 되..
compiz-fusion Linux에는 AIGLX를 사용한 3D Desktop이 존재한다.. 그런데, compiz의 기능을 100% 활용하기 위한 방법으로 여러가지가 있는데.. 그중에 하나가 ccsm을 사용해 compiz-fusion 기능을 활성화 하는 것이다. 그럼 설치에 필요한 패키지는 # yum install ccsm libcompizconfig compiz-fusion 을 설치후, /usr/bin/gnome-wm을 수정해 줘야 제대로된 결과를 얻을수 있다. 기본적으로 사용되는 compiz에서는 glib와 gconf을 사용하는데 이것으로는 compiz-fusion을 활성화 할수없으므로 다음과 같이 수정해 줘야 한다. case `basename $WINDOW_MANAGER` in compiz) export LIBGL_ALWA..
아마추어(?) 개발팀?~ 게임 개발이란.. 참으로 묘한 매력을 가지고 있습니다.. 하기 싫다고 떠난 사람들이 게임쪽을 못 떠나는걸 보면 말입니다.. 다른, IT도 마찬가지 겠지만 이직에 좀더 활동 범위에 제한적인것 같이 느껴 질때가 많습니다. 저는 지금 게임을 개발하고 있지는 않지만.. (한 5년동안 있었던 게임에서 멀리 떨어져서 보고 있습니다~)_ 저는 서버개발자 입니다.. 게임에서 많은걸 배웠지만.. 그러면서 만들어진 라이브러리를 정리할때면.. 언제 다시 써봐야지 하는 마음이 드니 말입니다^^; 그래도 게임사이트는 모니터링하게 되는^^~ 프로그래머에게는 새로운 기술에 대한 이해가 많이 필요할때가 있습니다. 그러나, 이해가 실전에 도입되는 사례가 많지는 않은게 현실입니다. 그 만큼 대규모의 자금력이 동원되어 개발되는 프로젝트라..
Lucene Java 2.3.1 Release Apache 프로젝트에서 진행하는 Lucene 검색엔진이 2.3.1으로 업데이트 되었습니다. 마이너업그레이드 이므로, 새로운 기능 보다는 기존 2.3.0의 버그수정입니다. 변경 내용 1. LUCENE-1168: Fixed corruption cases when autoCommit=false and documents have mixed term vectors (Suresh Guvvala via Mike McCandless). 2. LUCENE-1171: Fixed some cases where OOM errors could cause deadlock in IndexWriter (Mike McCandless). 3. LUCENE-1173: Fixed corruption case when autoCommit=..
게임서버의 지형관리 방식에 대한 생각~ GPGStudy를 보다가 보면, 서버에서 지형관리 방식에 대한 논의가 자주 일어나는 것을 볼수 있습니다~ 예전과 다른 점이라면, 예전에는 구현 방식에 대한 논의가 많았다면 요즘은 어떻게 구현할것인가에 대한 논의라는 점일 것입니다~ 그도 그럴것이 2D에서 3D로 넘어 오면서 기존 2D 방식에 z 좌표를 적극적으로 활용하고 싶어하는 개발자가 많아 지면서 부터가 아닐까 생각이 됩니다. 그러다 보니, http://www.gpgstudy.com/forum/viewtopic.php?t=18890 처럼 쿼드트리 또는 옥트리를 사용한 지형 관리 구조를 논하게 되죠~ 필자는 아직까지 이러한 z 좌표를 사용하는 지형관리 구조에 익숙하지가 않습니다. 구조가 나빠서가 아니라, 필자가 고민하는 CPU 부하의 차이를 줄여줄 방법..
[기사] 누리엔, "언리얼 엔진 3.0의 새지평 열었다" - 소셜 네트워크의 도입 이제는 게임엔진(Unreal Engine 3.0)이 소셜 네트워크 분야 까지 진출하는군요.. 점점 모든게 게임화 되는듯한 느낌입니다.. ^^; 기대 됩니다~ 세계적인 게임 개발사 에픽 게임즈(Epic Games Inc.)가 국내 3D 소셜 네트워크 플랫폼(Social Network Platform) 개발사의 기술력에 극찬을 보내, 국내 개발사인 누리엔 소프트웨어에 대한 전 세계 게임 개발자들의 이목이 집중되고 있다. 기사 원문: http://news.naver.com/photo/read.php?mode=LTD&office_id=023&article_id=0001943202§ion_id=105&view=all&type=1