Your SlideShare is downloading. ×
Rapid Development
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Rapid Development

4,079
views

Published on

Published in: Technology

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,079
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Rapid Development
    남기룡(birdkr@gmail.com)
    마이에트 엔터테인먼트
  • 2. 방법론?
  • 3. 여기서는..
  • 4. 쾌속 개발을 하기 위해서는?
    낭비를 제거하는 것이 핵심
    7대 낭비(Lean Software Development)
    미완성 작업
    가외 기능
    재학습
    이관
    작업 전환
    지연
    결함
    회고를 통해 팀원들과 지속적으로 낭비를 찾아서 제거하자.
  • 5. 빌드 자동화
  • 6. 러시아 페인트공 알고리즘
  • 7. 예제 (로그인)
  • 8. 예제 (로그인)
    서버를 실행하며 개발하는 것이 아니라 유닛 테스트를 만들면서 개발
  • 9. 리플레이
    버그의 재현에 편하다
    패킷 분석에 편하다
    벤치마크 테스트 등의 여러 테스트 자동화에서 사용
    사용성 테스트
  • 10. 리플레이 구현
    Send
    Packet
    Recv
    Packet
    Replay
    Queue
    Command Queue
    Local
    복사
    Replay
    Queue
    게임 루프
    커맨드 구조
    ID
    Data
  • 11. 리플레이를 이용한 패킷 분석
  • 12. 동영상 캡처
    반디 캡처 라이브러리 사용
    버그 재현에 편하다.
    버그 리포트 때 동영상도 함께 올리도록 함
    한 프레임씩 화면을 관찰하고 싶을 때에도 편리
  • 13. 지속적인 테스트
    CruiseControl.Net사용
    유닛 테스트
    DB 테스트
    네트워크 스트레스 테스트
    AI 전투 테스트
    성능 테스트
  • 14. CruiseControl.NET에 원하는 내용 출력하기
  • 15. 테스트 결과 XML 로그
    <?xml version="1.0"?>
    <maiettest-results tests=“2" failedtests=“1" failures="1" time="0.137">
    <report text="time : 680 sec" />
    <report text=“총 클라이언트 개수 : 4650" />
    <test name=“로그인 반복" time="0.062" >
    <success message="success" />
    </test>
    <test name=“캐릭터 생성 반복" time="0.062" >
    <failure message="Crash!" />
    </test>
    </maiettest-results>
  • 16. Dashboard의 xsl파일 설정
    <xsl:stylesheet version="1.0" xmlns:xsl=http://www.w3.org/1999/XSL/Transform >
    <xsl:output method="html"/>
    <xsl:template match="/">
    <xsl:variable name="maiettest.result.list" select="/cruisecontrol/build/maiettest-results"/>
    <xsl:variable name="maiettest.report.list" select="$maiettest.result.list/report"/>
    <xsl:variable name="maiettest.case.list" select="$maiettest.result.list/test"/>
    <table class="section-table" cellpadding="2" cellspacing="0" border="0" width="98%">
    <tr>
    <td class="sectionheader">
    Maiet Test report:
    </td>
    </tr>
    <xsl:call-template name="maiettest__reportdetail">
    <xsl:with-param name="detailnodes" select="//report"/>
    </xsl:call-template>
    </table>
    <table class="section-table" cellpadding="2" cellspacing="0" border="0" width="98%">
    <tr>
    <td class="sectionheader" colspan="2">
    Maiet Test Case results:
    </td>
    </tr>
    <xsl:call-template name="maiettest__testdetail">
    <xsl:with-param name="detailnodes" select="//test"/>
    </xsl:call-template>
    </table>
    </xsl:template>
    </xsl:stylesheet>
  • 17. Resource Validator
    기획자나 아티스트가 입력한 컨텐츠설정값에 논리적으로 잘못된 값이 입력되었는지 검증
    게임을 실행할 때마다 잘못 입력된 값이 있으면 게임에서 에러 통지
    CruiseControl.Net에서 에러 통지
  • 18. Resource Validator
  • 19. Runtime Validator
    서버 구동중에 정적 분석으로 체크할 수 없는 에러나 경고를 통지
    종류
    DB 쿼리 실패
    성능 경고
    AI 스크립트 오류
    Assertion
  • 20. Runtime Validator
  • 21. Crash Dump Analyzer
    프로그램에 치명적인 오류가 있을 경우 덤프 파일을 서버에 전송
    수집된 덤프 파일을 에러난 함수 별로 분류
    정기적으로 새로 올라온 덤프 파일 목록을 개발자들에게 이메일로 보고
  • 22. Crash Dump Analyzer 구현
    덤프 리포터
    심볼 서버 구축
    WinDbg의 Command-Line을 이용하여 분석
    C#을 이용하여 최신 덤프 목록을 이메일로 보내는 간단한 프로그램 제작
    Ccnet을 이용하여 자동화
  • 23. Crash Dump Analyzer
  • 24. Crash Dump Analyzer
  • 25. 감사합니다.