'단위테스트'에 해당되는 글 3건
- 2009/09/19 차세대 게임개발 언어로 D에 주목하는 이유 - 1 (10)
- 2009/07/02 Poor men's Code Coverage (2)
- 2008/07/11 Google Testing Blog & Google C++ Testing Framework
- 차세대 게임개발 언어로 D에 주목하는 이유 - 1
Tweet
- Game Development
- 2009/09/19 06:44
- Andrei Alexandrescu, array slicing, binarysearch, C++0x, D programming language, D 언어, unittest, 단위테스트, 이진검색
-
예전 모회사에서 새 게임 프로젝트를 준비할 때, C++ 대신 D 언어를 심각하게 고려한 적이 있습니다. 3년도 더 된 이야기입니다만... 결국 정식 디버거도 없는 열악한 개발 환경 등을 고려할 때 무리다 판단했었습니다.
그 사이 D도 더디지만 발전하여 D 2.0 스펙이 나왔더군요. 그리고 책도 출간 예정입니다. 그것도 C++ 구루의 한명인 Andrei Alexandrescu에 의해서 말입니다. 아직 몇개월이 더 지나야 책이 최종 출간될 것 같습니다만... 저는 출간 전 작성 중인 책을 미리 구입해 볼 수 있는 서비스를 통해 미완성본을 읽어보았습니다.
역시 그였습니다. D 1.0에서도 C++의 가려운 점을 많이 긁어주고 있다 생각했었는데, 그의 합류로 탄생한 D 2.0은 한층 더 발전한 느낌입니다. C++도 차기표준 C++0x로 많은 개선이 예정되어 있으나 그에 견주어도 여전히 매력적입니다.
그래서 차세대 게임개발 언어로서의 D의 강점을 앞으로 몇회에 걸쳐 다뤄볼까합니다. 자, 바로 시작해보죠.
- C++, Objective-C와 마찬가지로 C와의 하위호환성을 유지합니다.
- 이를 통해 게임개발에 필수적인 DirectX, OpenGL 등과 운영체제 API의 활용이 가능합니다.
- 그 밖에도 많은 공개/상용 C 라이브러리들을 D 언어와 조합하여 쓸 수 있습니다.
- 마지막 한 방울의 성능까지 짜내야할 부분에서 저수준으로 접근하는 것이 가능합니다.
- 언어 차원의 단위테스트/연관배열(일명, 사전)/배열쪼개기 지원
- Type-generic한 이진검색 구현의 예입니다.
- 8,9줄에서 파이썬에서와 유사한 배열쪼개기(array slicing) 기능을 확인하실 수 있습니다.
- C++0x에서와 같은 auto를 통한 타입 유추도 확인하실 수 있죠.
- unittest 키워드로 아주 간편하게 단위테스트를 작성할 수 있습니다. 이러한 단위테스트들은 컴파일 시 -unittest 인자를 주면 main 진입 전에 자동으로 수행됩니다.
참고자료
* 이 포스트는 blogkorea [블코채널 : 웹, 컴퓨터, it에 관련된 유용한 정보 및 소식] 에 링크 되어있습니다.
'Game Development' 카테고리의 다른 글
| 크라이엔진 3 발표와 크라이텍코리아 구인 (0) | 2009/10/18 |
|---|---|
| 분산버전관리 머큐리얼로 개인작업 관리하기 (2) | 2009/10/03 |
| 차세대 게임개발 언어로 D에 주목하는 이유 - 1 (10) | 2009/09/19 |
| gamescom 간단 참관기 (6) | 2009/09/02 |
| GDC Europe 2009 참관기 (2) | 2009/08/25 |
| GDC 유럽 2009 참관 세션 스케줄 (5) | 2009/08/14 |
- Poor men's Code Coverage
Tweet
- Game Development
- 2009/07/02 23:43
- code coverage, False-Positive, QA, RAII, Unit test, 단위테스트, 코드 커버리지, 코드커버리지
-
![]() Google "Testing on the Toilet" by niallkennedy |
C++ 용으로는 쓸만한 '공짜' 코드 커버리지 도구를 찾기 힘들더군요. 단위 테스트 적용 시나 기타 기능 테스트 등에서도 코드 커버리지를 점검하는 것은 상당히 중요한 부분입니다. 그러던 중 AI쪽 일을 하는 동료 한명이 좋은 아이디어를 제시했습니다.
일명 intrusive code coverage 되겠습니다. Intrusive profiling과 유사한 방식이라 생각하시면 됩니다. 프로파일링 매크로를 매 함수나 블록 도입부에 삽입하여 C++ RAII를 통해 그 부분이 프로파일링 되도록 하는 방식 말입니다. 마찬가지 개념으로 테스트 되어야 하는 주요 코드 지점마다 점검 지점을 나타내는 함수를 삽입하여 그 지점까지의 도달 여부를 점검토록 하는 거죠. 다음의 CC_Check()가 그 예가 되겠습니다.
실제 커버리지 확인을 위해서는 프로그램을 돌린 후 로그 파일로 남기도록 할 수도 있고, 아니면 런타임에 막대그래프 형식으로 코드 커버리지 상황을 실시간 확인할 수 있도록 만드는 것도 가능하겠죠.
자동 테스트 시에도 유용하고 QA 등에 의한 수동 테스트 시에도 유용하다 하겠습니다. 범용의 코드 커버리지 도구는 저수준에서 검사를 하기에 일종의 false-positive가 있거나 실제 테스트가 필요한 부분의 파악에 불편함이 있을 수 있는데, 이 방식은 실제 테스트되어야 할 핵심 부분을 수동 지정해줄 수 있으니 나름의 장점이 있습니다. ...라고는 하지만 역시 가난한 자를 위한 코드 커버리지 도구라 불러야할듯. ㅎㅎ
'Game Development' 카테고리의 다른 글
| 두가지 C++ 차세대 병렬 플랫폼 간단 비교 (1) | 2009/07/21 |
|---|---|
| VSTS 2010 팀 3분기 맴버 모집 (0) | 2009/07/09 |
| Poor men's Code Coverage (2) | 2009/07/02 |
| [해외 개발자 인터뷰] Michelle Martin (0) | 2009/06/26 |
| 게임 프로그래머를 위한 Yammer 그룹 가입신청 받습니다. (13) | 2009/06/19 |
| 크라이텍 깜짝 선물 (2) | 2009/06/16 |
- Google Testing Blog & Google C++ Testing Framework
Tweet
- Game Development
- 2008/07/11 11:39
- Google, Joel Spolsky, unittest, 게임개발, 구글, 단위테스트, 조엘
-
And one more news.
More Joel On Software
'Game Development' 카테고리의 다른 글
| 초생산적인 팀 (0) | 2008/07/31 |
|---|---|
| Nice C++ GUI framework from Torjo (0) | 2008/07/29 |
| Google Testing Blog & Google C++ Testing Framework (0) | 2008/07/11 |
| Useful tips about 'stand-up meeting(Daily Scrum)' (0) | 2008/06/26 |
| Enum tips from "Power of Two Games" (1) | 2008/05/14 |
| DRY Macro Trick (1) | 2008/05/09 |












Recent comment