2009.09.27 02:45
기존 프로젝트의 게임 운영툴은 MFC로 만들었었다. 이때가 아마 2004년도 무렵이지 않을까 생각된다. 이때는 게임 서버와 운영툴 관련 모든 작업을 나 혼자서 만들었을 때라 사실 미래를 생각할 틈이라고는 눈꼽만큼도 없을 정도로 바빴다. 이번에는 인원도 충원되고 해서 운영툴을 자바 애플릿으로 만들어 볼까 생각중이다. 아래와 같은 결론을 내리고 결정을 하게 되었다.

일단 게임 운영툴은 운영자들의 다양한 요구를 충족시켜주는 것을 최우선 목표로 잡았다. 기존 툴은 이를 충분히 반영하지 못해서 운영상의 중요한 요구들을 쉽게 들어주지 못했기 때문이다. 이는 곧 운영팀과 개발팀의 신뢰 저하로 이어졌으며 이로 인해 효율적이지 못한 운영을 하게 되었기 때문이다.

그외에 인터페이스의 쉬운 추가 및 변경(적고 보니 위 이야기에 포함되는 내요이기도 하지만.. 중요한 내용이므로 다시 적어본다.), 전달의 용이함 (해외에도 전달되는데 잦은 변경이 일어날 경우 버젼관리와 패치 처리가 생각보다 번거로웠다.), 자료의 다양한 확장성을 우선적으로 잡았다.

일단 MFC로 일반 윈도우 어플리케이션으로 제작하는 방법은 역시 이에 알맞지 않았다. 

그래서 웹으로 눈을 돌려봤는데 이전에 버그 트래킹 시스템을 .net환경에서 c#을 이용해 보았다. 그런데 이는 사용자들이 더 불편함을 느꼈는데 이유는 아래와 같았다.

 - 웹페이지는 유저와 데이터를 동적으로 주고 받기에 상당히 불편한 인터페이스다. 태생 자체가 정보의 전달을 목적으로 만들어진 것이라 기본 웹 사이트 구축 만으로는 원하는 기능을 모두 채울 수는 없었다.

 - 이벤트에 대한 반응이 일반 어플리케이션과 비교해서 상당히 느렸다. 역시 서버와 온갖 정보를 주고 받아야 하므로 이도 쉽게 풀 수 없는 문제였다.

 - 그리고 UI가 이쁘지 않았다. XP 혹은 VISTA형태의 UI에 익순한 사람들이 단순한 버튼과 텍스트박스의 연속으로 된 이런 웹 페이지에 호감을 느끼는 것 자체가 넌센스였을지 모르겠다.

그래서 좀 더 다른 방법을 생각해 보기로 했다. 일단 바로 생각나는 것은 FLASH의 Action Script를 활용한 것, 그리고 MFC or WTL 로 돌아가는 것, 그리고 c# 혹은 VB을 .net환경에서 이용하도 좀 더 위의 조건을 충족하도록 만족시키는 것이었다.

하지만 기술적으로 약간 미숙한 부분도 있었으며, MFC나 ATL로 돌아가서 이를 유지하기 위해 많은 시간을 들이는 것은 더욱 싫었다.

그때 다른 사람이 멋진 의견을 하나 던졌다.

"자바 애플릿은 어떨까요?"

헉...  왜 내가 진작 생각하지 못했을까.

당장 이클립스와 JDK 최신 버젼을 설치하고 이틀만에 JDBC와 Socket, 그리고 swing을 이용한 UI 디자인 테스트를 비롯한 모든 테스트를 진행했다. 결과는 만족 ^^!! 그 후 전체적인 구조를 설계하고 대략적인 기간을 생각해 보았다. 얼추 개발 기간도 큰 무리는 없을 듯 생각되었다. 비록 현재 자바를 다룰 수 있는 인원은 나뿐이지만 다른 인원들도 금세 따라올 거라 예상된다. 뭐.. 앞으로 수도 없이 겪어야 하는 버그 수정과 인원들에 대한 교육은 힘겹긴 하겠지만, 앞으로 얻을 소득에 비하면 그리 큰 문제는 아니다.

그리고 자바 애플릿 개발에 대한 유용한 몇가지를 생각해 봤다.

일단 운영툴의 많은 기능을 여러 개발자들에게 서로 충돌없고 유연하게 분배할 수 있다는 것이다. 예를들어 MFC에서는 하나의 프로젝트에 탭을 분리하여 작업을 해야 할 것 아닌가.(당신이 만약 계정관리, 캐릭터 데이터 관리, 로그 분석, 통계 처리에 대한 각각의 어플리케이션을 운영자들에게 배포할 마음을 가지고 있다면 말리진 않겠지만 ...) 여러명이 작업을 분산할 경우 리소스 파일 (.rc와 resource.h)의 공유와 새로운 파일 혹은 속성 변경시 프로젝트 파일에 대한 lock 시도에서 많은 충돌과 개발자간의 코드 공유에 일정 시간을 소비하게 될 것이다. 애플릿으로 각 기능을 분리하여 별도의 애플릿으로 제작하되 로그인 세션 유지만 정해진 규칙만 지키면 된다.

SWING의 UI디자인은 지겨워진 윈도우의 UI에 비해 현재 각 팀원들에게 신선한 충격을 줄 수 있을 것이다. 사실 알고보면 겉모습만의 변화지만 많은 이들이 이런 것들에 흥미를 느끼기도 하니까 ~ 웹에서도 (실제로는 자바지만 최종 사용자들이 이런 걸 구별하려고 하지는 않으니..) 이런 다양한 기능들을 사용할 수 있다는걸 알게 된다면 분명 새로운 즐거움으로 다가올 것이다.

'개발/경험' 카테고리의 다른 글

iceScrum - Features  (0) 2011.08.29
Tortoise SVN으로 게임 데이타 패치 만들기  (2) 2011.08.12
자료형은 byte로  (0) 2011.02.27
Doxygen 한글 문제  (0) 2010.12.20
Memory Leak 찾아내기  (0) 2009.10.16
자바 애플릿으로 툴을!!  (0) 2009.09.27
2009.08.28 10:30

일정을 세울 때 언제나 여유를 가진다. 큼직한 작업을 시작하기 전에는 약 이삼일 정도의 시간을 두고 기획서 검토, 개발 흐름 정리, 타 파트와의 해당 작업 진행 사항 체크 등등등...

하지만 예전에 비해서 많은 시간을 공들여 일정을 세워도 일정은 언제나 딱 맞게 지켜지지 않는다.

어떤 사람들은 정말 작업 시간의 두배 정도를 잡아두고 일찍 끝나면 자랑을 하기도 하지만 그 역시도 어긋난 것이 아닌가. (이미 끝내놓고 노는 것 보다야 좀 좋긴 하네.. --; 혹은 그마저도 못 지키던가..)

자신의 역량을 정확히 파악하지 못해서 대충 잡아놓고 맞으면 좋고 안맞으면 뭐.. 좀 추가하고..

하지만 게임 개발이라는게 자기 혼자 운영하는 개발 회사가 아닌 이상 다른 동료들의 일정도 항상 생각해야 한다. 자신의 일정을 대충 잡아 버리면 다른 파트에서 언제나 지켜지지 않는 그런 일정을 보고 한숨을 쉴 뿐이다. 

원래 세운 계획의 10 ~ 15% 정도의 차이에서 일정을 지켜 간다면 아마 정말 잘 지킨 것 같다. 1년 작업이라면 인간이 하는 일이니 한달에서 두달 정도의 차이는 있을 수 있다. 물론 잘 정해서 최대한으로 맞추려고 노력하지 않는다면 문제겠지만... 100%로 맞추는건 사실 불가능에 가까울 것이고 아마 경영진도 그정도를 바라진 않을 것 같다.

매일 매일 새로운 시도를 하고 팀원들과 호흡하며 이런 저런 노력을 하지만... "일정을 잘 지키는 것"은 누구에게나 어려운 숙제일 것 같다.

자.. 빨리 트리거 마무리하고 다시 엔진 리펙토링 하자. 그래픽 파트가 클라이언트 다시 보고 싶다고 우는 소리가 들린다. ^^a


'주저리' 카테고리의 다른 글

바른 생활  (0) 2009.11.18
9월의 마지막 날  (0) 2009.09.30
코드를 공유한다는 것!  (0) 2009.09.29
일정을 잘 지키는 것  (0) 2009.08.28
미친거 아냐...  (0) 2009.08.27
컴퓨터 게임은 하이테크놀로지를 필요로 하는 엔터테이먼트이다.  (0) 2009.08.27
일정
2009.08.27 22:21

미친거 아냐...

주저리 2009.08.27 22:21

난 회사의 사장도 아니고 주인도 아니고 그냥 월급장이야.

하지만 가끔은 이런 사람들 보면 미친거 같아.

왜 일을 그냥 평범하게 하면서 월급이 적다고 불평만 하는거야. 당신도 미친 듯이 일해서 남들에게 자랑할 만한 결과물을 보여봐!! 그게 자신이 없다면 그냥 찌그러져서 주는 월급 받고 그냥 살던가.

일을 안준다고 불평하는거야?

누군가가 당신에게 일을 줘야만 일을 하는 거라면 당신이 당신 동료과의 차이점이 뭔데? 실력이 좋아서 남이 1주일 걸릴 걸 하루만에 끝내고 ... 나머지를 놀고 있다면 그 사람보다 뛰어난 게 뭐지??

만약 당신이 뭔가를 더 원한다면 당신의 상사던 동료든 갈궈서라도 당신의 새로운 일을 찾아. 그리고 남들보다 두배 세배 더 좋고 많은 결과물을 만들어 내라고.

그럼 당신의 그 최악의 성격까지도 사랑스러워 질거니까!!

그리고 당신의 그 꼴도 보기 싫은 상사를 눈앞에서 발로 차버릴 수도 있을 거라고!!

'주저리' 카테고리의 다른 글

바른 생활  (0) 2009.11.18
9월의 마지막 날  (0) 2009.09.30
코드를 공유한다는 것!  (0) 2009.09.29
일정을 잘 지키는 것  (0) 2009.08.28
미친거 아냐...  (0) 2009.08.27
컴퓨터 게임은 하이테크놀로지를 필요로 하는 엔터테이먼트이다.  (0) 2009.08.27