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


티스토리 툴바