2009.09.29 01:26

은 쉽지 않은 일이다.

코드 관리를 위한 SVN같은 프로그램들이 아무리 merge 기능이 지원해줘도 누군가 자신이 만든 코드를 다른 사람이 만져서 버그가 발생하면 누구나 짜증나기 마련이니까. 게다가 그 뒷 수습에 들어가는 시간은 짜증을 배로 증가 시키기도 한다.

그래서 사전에 이런 상황을 막기위해 여러가지 시도도 해보았다.

자신이 관리하는 코드에 주석을 달아서 현재 관리자를 표시하고 수정할 내용이 있다면 그에게 이야기할 것!
자신이 작성한 코드에서 중요하게 공유해야할 코드 흐름 혹은 사용 방법들...  이 내용을 게시물에 등록하고 키워드를 등록해서 검색하기 쉽도록 하고, 수정사항이 발생하면 갱신할 것!!

하지만 모두 다 현재는 사용되지 않고 있다.

수시로 갱신되는 코드들을 이렇게 관리하는게 결코 쉬운일은 아니었다. 게시물을 올리더라도 얼마간의 시간이 지나면 쓴 것 자체를 기억못하는 경우도 생기고, 도대체 어디까지 기록해야 하는지도 명문화하지 못해서 힘들기도 하다.

어떤 경우는 다른 사람의 코드를 쓸 때 그 클래스가 초기 목적에는 맞았고 제작자가 테스트시 버그가 없었지만 다른 사람이 사용할 경우 버그가 발생하는 경우도 있어서 불편하다고 한다. 그래서 되물었다.

"처음에 유닛테스트를 하자고 했는데 각자 잘 지키고 있나요?"

질문한 사람 조차도 대답하지 못하고 있었다. 사실 현실적으로 그리 쉬운 문제가 아니라는 것을 나도 잘 알기에 안지켜 지는 것을 보면서도 강요하지는 못했다.

다음 프로젝트가 되면 이런 실패들을 잘 정리해서 과정 자체도 좀 더 발전할 수 있도록 해야겠지.

여러개의 프로젝트를 지금까지 진행해 왔지만 이런 것 조차도 결코 쉽지가 않다. 지금까지도 그래왔듯이 다음 프로젝트의 맴버들도 지금과는 다른 사람들일테니...

인재가 답일지.. 인재가 문제일지.. 가끔은 운에 맞겨지는 느낌이다. 최근에는 실력보다 부디 인간성 좋고 끈기 있는 사람이 들어오길 매일 매일 기도한다.

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

바른 생활  (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.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
일정