테스트 주도 개발(TDD) 같은 용어를 동원하지 않더라도, 많은 개발자들이 경험적으로 테스트가 얼마나 중요한지를 깨닫고 있을 거라고 생각합니다.

제 경험을 말씀드리면, 예전에 MMORPG를 개발할 때, 테스터들 중에 '돈 복사'만을 전문적으로 찾아내는 분이 계셔서 정말 여러 문제를 사전에 예방할 수 있었죠. (그 분들은 지금 Neowiz에서 일하고 계십니다.)

참고로 국제 소프트웨어 테스팅 컨퍼런스 2007에는 볼만한 강연이 많은 듯 합니다.


사족. 말하시는 분들이 긴장해서 그런지 약간 지루하게 들리네요. Zdnet 미국에서 만든 WebTV는 굉장히 경쾌하게 들리던데. 같은 한국어라도 '무릎팍 도사'는 듣는 것만으로도 흥겨워지는데. 우리 모두 연습을 해두어야 하겠네요. (웃음)

:

흥배 님최피디 님의 포스팅에 힘입어, 저도 한 번 적어 봅니다:



  • 운영체제
  • 렌더링
    • Ogre3D: 좋다. 최고의 오픈 소스 렌더링 엔진 중 하나인 듯 하다. 원래는 LPGL에 따라야 하지만, 그걸 숨기고 상용 게임을 개발하는 곳이 여러 곳 있을 듯 하다. (그러면 나빠요. 후후후.)
  • 물리
  • 멀티 프로세서
    • OpenMP: 멀티 프로세서를 지원하는 API라는데, 아직 사용해본 적은 없다. (참고: OpenMP와 C++)
  • 테스트
  • 지속적인 통합
  • 형상관리
    • Trac: 좋다. 형상관리+오류/이슈추적+Wiki 한 방에 제공. 아직 한참 개발중이라 기능이 약간 미약하다. 하지만, 가볍고 간단해서 Agile에서는 오히려 쓸만할 듯. (단, 한글 지원도 좀 미약하다.)
    • Subversion: 아주 좋다. 말할 필요 없는 최고의 형상관리 도구 중 하나. (CVS를 쓰다가 갈아탐.)
  • 오류 및 이슈 추적
    • Trac: 좋다. 형상관리도구랑 연동된다.
    • Mantis: 좋다. 한글 지원하고, Web 기반이고, 상대적으로 가볍다.
    • Bugzilla: 좋은데, 묵직하고, 복잡하다. Mantis로 갈아탄 이후로는 안쓴다.
  • Wiki
    • Trac: 좋다. 가볍다. 형상관리도구랑 오류/이슈추적도구와 연동된다. 단, WYSIWYG를 지원하지 않는다.
    • Twiki: 좋다. WYSWIG도 지원하고, 회사 내부의 인트라넷을 대체할만큼 기능도 다양하고, 확장성도 좋다. 단점은 약간 복잡하고, 한글 UI를 제공하지 않는다는 것이다.
    • MediaWiki: 문서량이 많아도 빠르다. 단, WYSWIG가 미약하고, 첨부 파일을 일일히 따로 등록해야 하는 게 불편하다.
  • 문서작성
    • Google Docs: 아주 좋다. 설치가 필요 없고, 빠르고, 간단하다. 특히 공동 작업 기능이 좋다. 단, 오프라인시에는 사용할 수 없다.
    • SpringNote: 아주 좋다. Google Docs와 비교하면 일장 일단이 있다. SpringNote는 개인용 Wiki라 검색이 굉장히 빠르고, Page별 위계를 구성할 수도 있다. 반면에 표 기능이 미약하다.
    • Acroedit: 좋다. 간단한 텍스트 문서나, Script 작성할 때 사용한다. EditPlus나 UltraEdit에 필적할만큼 좋다. (그래도 부족한 기능은 몇 개 있다.)
    • Freemind: MindMap을 작성할 때, 사용한다. 특정 Wiki와도 연동이 된다. (Mindjet Mindmanager를 어둠의 경로로 입수해서, Laptop에서 사용하기 시작한 이후로는 잘 사용하지 않는다.)
    • Open Office: 좋다. MS Office XP(혹은 2003과) 비슷하다. 현지화(Localization) 작업시, MS Office보다 Unicode를 더 제대로 지원했다.
  • 일정관리
    • Google Calendar: 아주 좋다. UI가 직관적이고, 공유도 쉽고, 간단하고, 가볍다! 단점은 아주아주아주 가끔 저장된 일정이 날아간다고 한다. 하지만 Google Apps Premium을 쓰면 방지할 수 있다. (혹은 수동으로 일정 기간마다 백업하던가.) 그리고 오프라인일 때, 사용이 불가능하다는 건데, Google Gears가 지원되면 이것도 해결될 것 같다.
  • Email
    • Gmail: 최고다! 용량 크고, 빠르고, UI도 직관적이고, 스팸도 거의 없다.
  • 기타
    • Skype: 컨퍼런스 콜을 할 때 좋다. 2004년에 한중일미 4개국 음성통화를 한 적이 있었는데, 다른 어떤 보이스 채팅 소프트웨어보다 음질이 좋았다. (현재는 품질이 더 좋아진 것 같다.) 방화벽 아래서도 제법 잘 작동한다. 국제 전화 요금도 거의 최저가에 근접한다.
    • 곰 녹음기: 회의 및 강연을 녹음할 때 좋다.
    • Open Capture: 무료 스크린 캡춰 소프트웨어.
    • AVG Free: 무료 백신. 작고, 빠르고, 거의 매일 업데이트 된다.
    • Spybot: 애드웨어, 스파이웨어를 제거하는 최강의 도구.
    • Firefox: 빠르고, 강력하고 편리하다. USB에 Portable Firefox를 넣고 다니면 편리하다.



위의 것들에 대한 의견이나, 다른 좋은 것들이 있으면 댓글이나 Trackback으로 달아주세요~ :)

:

오는 KGDS 2007에서 "애자일 게임 개발 3부작: 개념에서 실천까지"라는 주제로, 남기룡 님(Maiet Entertainment), 박일 님(NC Soft)과 함께 강연을 하게 되었습니다.



애자일 게임 개발 3부작: 개념에서 실천까지


일정:
  1. 애자일 게임 개발이란 무엇인가?, 김기웅, 강연 30분 + 질문 10분
  2. 사례를 중심으로 알아보는 SCRUM & XP, 남기룡, 강연 30분 + 질문 10분
  3. 중간 휴식, 10분
  4. 테스트 주도 개발(TDD): 사례와 시연을 중심으로, 박일, 강연 30분 + 질문 10분
(위의 시간은 예상이며, 강연의 정확한 일시는 KGDA에서 통보될 예정입니다.)


강연 내용:
  • 애자일 게임 개발이란 무엇인가?
  • 그것을 도입하기 위해서는 어떻게 해야 하는가?
  • 실제 현장에 도입했을 때, 어떤 효과가 있었고, 풀어야할 숙제는 무엇인가?
  • 그래서 개인의 실제 업무에서는 어떻게 해야 하나? (시연에서는 실제 XP의 Practice들 중 하나인 TDD를 다룸.)


강연 대상:
  • 애자일에 관심이 있으나, 정확히 무엇인지 잘 모르는 사람.
  • 1개 타이틀 이상의 개발 경험을 가진 사람.
  • (애자일에 대해서 경험이 풍부하신 분은 참석하셔서, 질문/답변 시간이나, 토의에서 활약해주시면 감사하겠습니다!!!)


추가 정보:
  • 이 강연은 기존 자료들을 종합, 편집한 것으로 애자일 게임 개발에 대해서 알고 있는 분들께는 약간 지루할 수 있습니다.
  • 그러나 이 강연의 무게 중심은 질문과 답변에 있습니다.
  • 나아가 합숙이라는 KGDS의 특성에 맞추어, 08일(토) 저녁에 비공식적인 (패널) 토의를 계획하고 있습니다.


질문이나 요청이 있다면 댓글로 써주십시요:
  • 해당 강연에 대한 질문이나 바라는 점을 댓글로 달아주시면, 답변을 해드리거나, 최대한 반영하도록 하겠습니다.
  • 또한 해당 강연(혹은 토의)에서 하고 싶은 질문을 댓글로 달아주시면, 강연자들이 사전에 답변을 준비해보도록 하겠습니다.

:

한국 게임 개발자 서미트(Korea Game Developers Summit) 2007이 다음과 같이 개최될 예정이라고 합니다.



한국 게임 개발자 서미트(KGDS) 2007


일자: 2007년 09월 08일(토)~09일(일)
장소: 경기도 화성시 청호 인재 개발원

신청 방법: 참가 신청서를 작성하여 hylee@kgda.or.kr로 제출
참가 접수: 2007년 08월 27일(월) ~ 09월 05일(수) (인원 확정시 조기 마감)
참가 방법:
  • 발표:  서미트 참가자를 상대로 게임개발과 관련된 주제를 선정하여 발표
  • 패널:  3~5명의 인원이 게임개발과 관련된 주제를 선정하여 토론
  • 일반:  참가비 2만원 지불. 국민은행 36143704001290 (사)한국게임개발자협회 (입금시 행사참가자와 입금자가 동일해야 합니다.)
  • 운영진: 행사운영진으로 15명을 모집합니다.
문 의 처:  이하영, 대리, 사무국, (사)한국게임개발자협회
출처: KGDA 공지

이 행사에 대해서 주변 사람들에게 널리 알려주십시요.

(몇년 전의 경험으로 미루어 볼 때) KGDS의 가장 큰 장점은, '합숙'이라는 특성으로 인해서, 공개적인 자리에서는 들을 수 없는 다양한 이야기를 들을 수 있다는 것입니다. 이것은 다른 행사들(KGC, G-Star)가 가지지 못한 장점이지요. 그리고 다양한 배경을 가진 개발자들을 한 자리에서 만날 수 있지요. 예전과 같다면, 왕복 버스와 식사를 제공할 거고, 그것만으로도 참가비 2만 원 이상의 혜택이 있습니다.

저와 다른 몇몇 분들도 참가할 예정인데, 다들 그곳에서 뵐 수 있으면 좋겠습니다.

:

혹시 에어로너츠 팀의 '퀘이사 방법론(quasars Methodology)'이 어떤 것인지 아시는 분이 있으십니까?

오래전의 일입니다만, 기사를 읽어보는데, JCE의 에어로너츠 팀에 대한 소개가 나오면서 애자일을 변형한 퀘이사 방법론이 언급되더군요.


퀘이사 방법론

‘에어로너츠’ 팀은 정형화된 프로세스를 탈피, 자신들만의 독창적인 프로세스를 개발했다. 기민한 방법론(Agile Methodology)에 기초한 퀘이사(‘에어로너츠’ 개발 스튜디오 명) 방법론이 바로 그것. 순서대로 짜여있는 개발 일정에 맞춰서 개발하는 것이 아니라, 개발 진행상황에 따라서 우선순위를 두는 방법이다. 중요한 단계에 모든 힘을 집중할 수 있고 유동적인 관리가 용이해서 게임 개발에 큰 힘이된다는 것이 팀원들의 중론.

프로그램 파트 김성용 팀장은 “소규모 단위의 프로젝트에서는 무엇보다 인력 이동이 자유로워야 한다”며 “퀘이사 방법론은 ‘에어로너츠’ 개발에 많은 도움을 줬다”고 말했다. ‘에어로너츠’팀을 보조하는 각 팀들의 도움이 체계적으로 이뤄지는 점 또한 타 개발사와 다른 모습이었다. 제이씨에서 개발하는 모든 그래픽 작업은 아트센터를 통해 이뤄진다. ‘에어로너츠’도 예외는 아니다. 팀 내에 그래픽 파트가 존재하지 않지만, 더 좋은 퀄리티의 그래픽을 완성했다.

사용자 삽입 이미지

박원정 실장은 “첫 기획 단계부터 아트센터에서 파견을 나와 게임에 대한 전반적인 계획을 같이 논의하고 중간 단계마다 회의를 거치고 있다”며 “각 파트별로 떨어져 있어도 커뮤니티에는 문제가 없다”고 말했다. 이 밖에도 기술개발지원 센터에서 프로그램 인력지원, Q/A지원 등 ‘에어로너츠’팀의 개발에 전폭적인 지지를 아끼지 않고 있었다.

출처: http://www.khgames.co.kr/biz/article_g.htm?code=g_zoomin&idx=27

저도 한두 다리 건너면 아는 사람을 찾을 수 있을 것 같긴 한데, 가능하다면 거기에 계신 분이나, 그런 분들에게 이야기를 들으신 분들이 댓글이나 Trackback을 달아주시면 정말 감사하겠습니다.

:

저는 프로그래머가 아닌지라, 제가 직접 TDD를 해본 적은 없습니다. 그저 지속적인 통합으로 인한 혜택들을 누리고 있을 따름이지요.

그런데 테스트 주도 개발에 대한 솔직하고 멋진 포스팅이 있어서 제 맘대로 발췌/번역했습니다:


사용자 삽입 이미지
솔직히 말해서 실망했다. 더 크고, 확실한 성과를 기대했던 것이다.

코드의 품질이 나아질 거라고 말했지만, 사실 내 코드의 품질은 더 나빠졌다. (사실은 제대로 읽어보면, 실질적으로 나뻐진 게 아니라, 잘못 사용하고 있던 것들을 들춰내서 표면적으로 나뻐졌다는 이야기가 나옵니다.)

끝내주는 비방(silver bullet) 같은 게 아니었다.

[그러나] 내가 말하고 싶은 것은, 나는 결코 [테스트 주도 개발(이하 TDD)을 하기] 이전으로 돌아가지 않으리라는 것이다.

코드의 품질을 낮아졌지만, 코드에 대한 나의 이해는 높아졌다.

누군가는 이렇게 말할지 모르겠다. "어떤 규칙 같은 걸 만들어서, 네가 변경하는 코드를 제대로 이해하고 있는지 확인하는 건 어때? 그걸 위해서 굳이 TDD [같은 번거로운 것]을 할 필요까지는 없잖아?" 글쎄, 나는 거의 항상 변경하려는 코드를 이해하고 있다고 생각한다. 그런데 그러고 보니까 내가 정말 내가 그러고 있기는 하나? 이게 바로 TDD가 정말 도움이 되는 부분이다.

이것이야 말로, 내가 듣지 못한 TDD의 커다란 장점이다.

출처: 테스트 주도 개발 ,1년째


위의 글에 대한 박일 님께서 코멘트를 함께 보시면 좋습니다.

참고로 위의 Jamie Fristrom라는 양반, 제가 좋아하는 Manager in A Strange Land를 쓰신 분이군요.

:

린 소프트웨어 개발의 적용(Implementing Lean Software Development)의 번역판이 8월말에 출간될 예정이라고 합니다:


사용자 삽입 이미지
린 소프트웨어 개발이란, Toyota의 자동차 개발 철학을 소프트웨어에 접목시킨 것으로 Agile과 비슷한 점이 많다고 생각합니다.

예를 들어서, 린 소프트웨어 개발의 원칙들을 살펴보면 Agile과 비슷한 점이 발견됩니다:
-. 낭비를 제거하라: 장애물(impediment)
-. 학습을 증폭시켜라: 피드백(Feedback), 반복(Iteration)
-. 가능한 늦게 확정하라
-. 최대한 빨리 인도하라
-. 팀에 권한을 위임하라: 자기결정권(Self-determination), 동기 부여
-. 통합성을 구축하라: 리팩터링, 테스트
-. 전체를 보라

(혹시 둘 사이의 차이점에 대해서 좀더 알고 싶으신 분은 Agile vs Lean Software Development를 참고하십시요.)


한편, 이 책의 전작에 해당하는 린 소프트웨어 개발 역시 8월말에 출간될 예정이니, 두 권 모두 함께 보시길 권장합니다.
사용자 삽입 이미지

:

남기룡 님께서 리팩토링 카달로그(Refactoring catalog)의 일부를 정리해주셨습니다.

영어 원문은 이곳에서 보실 수 있습니다: Refactorings in Alphabetical Order

:

id Software는 FPS 전문 개발사라는 선입견을 바꿀만한 Rage라는 새로운 타이틀을 선보였습니다.

그런데 그에 대한 최근 인터뷰 중에 Agile에 대한 대목이 있어서 인용합니다:
(Rage가 Oblivion처럼 Mission 기반으로 진행될 거라는 이야기를 나눈 후에)

Shack: 이런 새로운 게임플레이 방식과 함께 기획 프로세스에도 변화가 있습니까?

Tim Willits: 물론입니다. 우리가 한 것들 중의 하나는 프로덕션 파이프라인(production pipeline)을 변경시킨 것입니다. 우리는 Agile의 비중을 더 높히기 위해서 노력했습니다. 마일스톤을 Scrum으로 구성했고, 개발자들은 Scrum에 익숙해졌습니다. 예를 들어서, 레이싱과 관련된 사람들을 한데 모아서, Scrum을 실행했더니, 레이싱이 나왔죠.

출처:  id의 Tim Willits와 Todd Hollenshead가 Rage에 대해 이야기하다

얼마전에 해당 게임을 발표하면서 John Carmack이 "내 역할은 동료들이 작업할 도화지를 마련하는 것"이라고 말을 해서 혹시나 했는데, 역시나 Agile을 사용하고 있군요.

:


프로젝트 관리 지식체계 지침서, 제3판
(A Guide to the Project Management Body of Knowledge, the 3rd Edition)





'프로젝트 관리 지식체계 지침서'는 프로젝트 관리자 자격들 중의 하나인 Project Management Professional의 주요 교재입니다.

이 책이 다루고 있는 내용은, Agile이 지향하는 경험주의적인(empirical) 프로세스가 아닌, 명시적인(defined) 프로세스에 가깝다는 생각이 듭니다.

그러나 프로젝트 관리의 정석이라고 할 수 있을만한 책으로서, 여러가지 중요한 개념들을 다루고 있기 때문에, 한 번 봐두시면 도움일 될 듯 합니다.

마지막으로 PMP 취득에 대한 자세한 사항은 PMP Cafe를 이용하십시요.


: