단위 검사를 위한 VisualStudio Addin인, VisualUnitTest++ v0.1이 나왔습니다:
사용자 삽입 이미지

UnitTest++뿐 아니라, CppUnitLite, CppUnitLite2도 지원한답니다. (압박을 가해주신 윤창필 님께 감사.)

다만 Addin이다 보니 버그가 있어서 죽는 경우는, Visual Studio가 뻗어버린다네요. (그 경우에는 이곳에 댓글로 상세한 버그 리포팅을 해달랍니다.)

참고로 Project page는 다음과 같습니다: http://vutpp.springnote.com

마지막으로 제작해주신 쑥갓 님께 진심으로 감사드립니다!

:

남기룡 님
께서 UnitTest++에서 빨간 막대가 녹색 막대로 변하는 순간의 희열감을 원하셨는데,

마침 쑥갓 님께서 UnitTest++용 GuiRunner를 만들어주셨네요:

사용자 삽입 이미지

사용법은 박일 님의 글을 참고하시기 바랍니다: http://parkpd.egloos.com/1668243


:

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

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


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

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

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

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

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

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

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

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


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

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

:



바쁠수록 돌아가라:
테스트 주도 개발을 이용해 더 좋은 게임 만들기

(Backwards Is Forward: Making Better Games With TDD)



강연 슬라이드 내려받기
(PPT의 슬라이드 노트를 잊지 말고 챙겨 보시길 권장합니다.)
'강연 노트' 살펴보기
'소스 코드 예제'
내려받기
..

..

박일 님께서 GDC 2006에서 발표된 "바쁠수록 돌아가라: 테스트-주도 개발을 이용해 더 좋은 게임 만들기(Backwards Is Forward: Making Better Games With TDD)"를 번역해 주셨습니다.

단, 슬라이드는 GDC 2006보다 조금 더 보강된 Game Connect 2006의 "게임을 위한 테스트 주도 개발: 무엇을, 왜 그리고 어떻게(Test Driven Development For Games: What, Why And How)"로 교체되었습니다.

이전의 실전 애자일 게임 개발보다 테스트-주도 개발를 더 자세하게 다루고 있습니다.

번역에 힘써주신 박일 님께 다시 한 번 감사를 드립니다.

:

애자일 게임 개발: 최전선의 이야기
(Agile Game Development:Tales from the Trenches)



(아래의 첨부 파일를 받으시길 권합니다.
위의 미리보기에서는 에니메이션이나 슬라이드 노트를 볼 수 없습니다.)
영어 원문

..
..
MS Gamefest 2006의 에서 있었던 '애자일 게임 개발: 최전선의 이야기(Agile Game Development:Tales from the Trenches)'의 한글 번역입니다:
  • Agile Development
  • 조직 차원의 Agile 기법
  • Agile 기법을 이용한 프로그래밍
  • 우리가 얻은 교훈들

(강연자인 Noel Llopis 씨의 허가를 받고 번역하였습니다.)

마지막으로 여러분의
소감, 비판, 경험 혹은 계획을 Trackback이나 댓글로 달아주시면 정말 감사하겠습니다.

:

애자일 게임 개발: 현실 세계의 혼돈을 다루는 법
(Agile Game Development: Dealing With Chaos In The Real World)



(가급적 아래의 압축 파일을 받으시길 권합니다.
위의 슬라이드에는 '슬라이드 노트'와 에니메이션이 없습니다.)

영어원문: http://www.gamesfromwithin.com/articles/0411/000047.html


MIGS 2004에서, Noel Llopis가 발표한 "애자일 게임 개발: 현실 세계의 혼돈을 다루는 법"의 슬라이드 한글판입니다.

주요 내용은 다음과 같습니다:
  • 왜 Agile Game Development이 필요한가?
  • Agile Development와 게임 개발
  • Scrum과 게임 개발
  • XP와 게임 개발
2004년의 내용이라, 그 뒤에 발표된 내용들과 다른 점들이 있습니다. 특히 어떤 기준으로 Scrum팀을 조직하는가에 대한 부분은 슬라이드 노트에 적은 자료를 참고하시기 바랍니다.

:

GDC 2006에서 발표된 "바쁠수록 돌아가라: 테스트-주도 개발을 이용해 더 좋은 게임 만들기(Backwards Is Forward: Making Better Games With TDD)"영문 슬라이드, 소스 코드 예제 및 노트입니다.
(단, 슬라이드는 GDC 2006보다 조금 더 보강된 Game Connect 2006의 "Test Driven Development For Games: What, Why And How"로 교체합니다.)

이전의 실전 애자일 게임 개발보다 테스트-주도 개발를 더 자세하게 다루고 있습니다.




마지막으로 이 강연 슬라이드나 노트(혹은 둘 다)를 번역하실 분을 찾습니다!

제가 번역할까 했으나, 소스 코드 등 보다 실무적인 내용인 내용을 다루고 있어서, 프로그래머이신 분이 번역해주시는 게 효과적일 듯 합니다. (저는 프로그래머가 아닌지라, 사실 Scrum에 많은 관심을 갖고 있습니다.)

관심이 있으신 분은 답글을 달아주시거나, 오른쪽 상단에 있는 제 Email로 연락주십시요.

여러분의 많은 참여를 기다립니다!

:

실전 애자일 게임 개발
(Agile Game Development From The Trenches)


===================================================================================================
갱신 이력
  • 2007년 06월 02일: p. 33~35쪽의 슬라이드 노트를 추가했습니다.
===================================================================================================


이번에는 "실전 애자일 게임 개발"입니다. Noel LlopisMontreal International Game Summit 2006에서 발표한 내용을 번역했습니다.

주요 내용은 Agile 기법들 중의 하나인 XP를 다루고 있습니다. Clinton Keith가 주로 다룬 Scrum이 프로젝트 관리에 가깝다면, XP는 좀더 프로그래밍에 가깝습니다. 실전이라는 표현답게, 비교적 구체적인 실천 사항들(practices)을 이야기합니다. (from the trenches를 직역하면 '(최전선의) 참호로부터'가 됩니다.)

(가급적 아래의 압축 파일을 받으시길 권합니다.
위의 슬라이드에는 '슬라이드 노트'가 없습니다.)



한편 Noel Llopis의 허가를 받고 번역했으며, 원본의 출처는 이곳입니다.

마지막으로 마음껏 퍼가시되, 가능하다면 trackback을 남겨주시면 서로 관심사나 정보를 공유하는데 도움이 되지 않을까 싶습니다.
:

지난번의 "실전 애자일 게임 개발"의 지속적인 통합(Continuous Integration)을 하려면, 코드가 제출될 때마다, 구축을 해야 합니다.

이걸 일일히 하려다 보면, 프로그래밍할 시간을 앗아갈 것이 틀림없죠. 그런데 만약 이걸 놀고 있는 PC에게 대신시킬 수 있다면? 이걸 자동화해주는 게 바로 "CruiseControl"입니다.

CruiseControl이 하는 일은 크게 두 가지입니다:
  • 자동 구축: 정기적으로 혹은 필요할 때마다(예: 코드가 제출될 때마다) 자동으로 구축을 시도한다.
  • 결과 보고: 구축이 완료된 후, (HTML 형태의) 결과 보고서를 생성한다.
    • 왼쪽에서는 해당 프로젝트의 이름이전 빌드에 대한 정보를,
    • 오른쪽에서는 빌드의 결과(예:컴파일 오류, 테스트 결과, 이전 빌드 이후로 변경된 파일들)에 대한 정보를 제공한다.

사용자 삽입 이미지

CruiseControl의 결과 화면



따라서 CruiseControl를 사용하(여 지속적인 통합을 하):
  1. 프로그래머가 프로그래밍에 집중할 시간이 늘어나고,
  2. 오랜 시간이 걸리는 빌드를 퇴근한 후, 자동적으로 시행되게 할 수 있으며,
  3. 일일 빌드를 통해 모든 코드가 제대로 동작하는지 검증할 수 있습니다.

CruiseControl가 다른 도구들에 비해 가지는 장점들은:

CruiseControl 설치시에 참고할만한 글이나 서적은 다음과 같습니다:

지속적인 통합(CI)에 도움이 될만한 글들은 아래와 같습니다:

CruiseControl외의 고려해볼만한 CI Server들은 다음과 같습니다:

마지막으로 현재 CruiseControl을 사용하고 계신 분이 있다면, 그 사용 후기를 Trackback(혹은 답글)으로 부탁드립니다. 불행히도 저는 프로그래머도 아니고, TDD를 반기는 프로그래머들을 만나지 못해서, 아직까지 CruiseControl를 사용해보지 못했네요.
: