2. 발표자 소개
오영욱
2006~2008 C++
2008~2009 C++
2009~2011 Flash ActionScript, Java
2011~2013 LUA, Java, Obj-C
2013 Unity, C#
2014~2015 Obj-C, Javascript
2016 Unreal Engine 4, C++
3. 목차
1. 이 세션에서 다루는 내용
2. 개인적인 개발 스타일
3. 버그와 만났을 때
4. 버그 탐색 전략
5. 블루프린트 디버깅 트릭
6. Visual C++ 와 함께 하는 C++ 디버깅 트릭
7. UE4의 엔진코드를 살펴보는 방법
8. 기타 팁들
9. 그 외
10.정리
4. 1. 이 세션에서 다루지 않는 것들
1. 유닛테스트와 테스트 주도 개발
2. 아주 복잡한 버그에 관한 해결책 (멀티쓰레드등의 발생 시점을 특정하지
못하는 버그들)
3. 어셈블리 디버깅 - “NDC2014의 사례로 배우는 디스어셈블리디버깅”
4. 페어프로그래밍을 통한 버그 탐색
5. 모바일 환경에서 디버깅
6. 버그를 만들지 않는 방법
7. 버그가 실제 제품에 딸려가지 않게 하는 방법
8. 곰돌이 인형 디버깅
5. 1. 이 세션에서 다루는 것들
1. 개발하다 막혔을 때 해결 방법
2. 기초적인 UE4의 디버깅 툴들 사용방법
3. UE4에서 제공하고 있는 로깅 방법
4. Visual Studio로 코드에 브레이크포인트를 걸어 데이터를 살펴보기
5. 소소한 디버깅 트릭
11. 1. 컴파일이 되지 않는다.
2. 실행하면 죽는다.
3. 뭔가 의도한대로 동작하지 않는다.
4. 왜 안 되는지 모르겠다.
5. 하라는 대로 했는데 되지 않는다.
6. 왜 돌아가는지 모르겠다.
7. 어디서부터 봐야 할지 모르겠다.
8. 되던 것이 갑자기 안되기 시작했다.
이러한 걸 해결하는 것들을 다룹니다.
24. 해당 상황에 대해 검색을 합니다.
(지구상의 누군가가 이미 같은 문제를 겪었을 확률이 높습니다.)
자신이 겪는 문제를 가능하면 영어로 만들어서 검색하세요.
처음엔 키워드 만으로 충분합니다. 많이 해봐야 늡니다.
문법이 맞지 않아도 구글이 알아서 고쳐서 검색해줍니다.
EX) 브레이크포인트가 동작을 하지 않아요. – breakpoint not working
56. 에디터에서는 테스트하기 힘든 문제들의 테스트 환경 구축
• 플레이에서 독립형 게임으로 실행함
• 고급세팅 – 에디터 개인설정의 레벨에디터 – 플레이에서는 독립형게임(stand alone play)
에서 추가 파라미터를 넣을수 있음. –log 를 넣어 로그 창을 여는 것을 권함.
• Batch 파일(.bat)을 만들어서 에디터에서 바로 맵을 실행할수 있음.
• 게임과 마찬가지로 서버, 리슨서버, 클라이언트, 시작 map 파일 설정을 할수 있음.
• "_ue4_folder_UE4Editor.exe " _projectname_.uproject" _map_.umap -log
57. 다른 사람들이 만든 코드들을 검색할 때
• 특히 로그 나오는 것 어디서 찍는지 볼 때
69. 1. 에러메세지를 읽자
2. 검색을 잘 하자
3. 로그를 잘 남기자
4. 테스트에 친화적인 환경을 구축하자
1.반복하는 시간을 단축하기 위해 배치파일등을 활용
2.디버그에 사용할 키 이벤트 등을 준비해서 재현을 바로바로 할 수 있도록 함
5. 혼자 붙들고 죽지 말자
이현승님의 NDC 2016 –
프로그래머를 괴롭히는 Unreal Engine 4의 함정들을 같이 보세요.
http://ndcreplay.nexon.com/NDC2016/sessions/NDC2016_0069.html
70. 사용된 이미지들
알라딘 굿즈 마션 첫문장 머그컵
Don’t Panic Outer Space The Hitchhikers Guide To The Galaxy
https://www.walldevil.com/9334-don39t-panic-outer-space-the-hitchhikers-guide-to-galaxy.html
언리얼 엔진 4의 디버깅 관련 공식 문서
블루프린트 디버깅 : https://docs.unrealengine.com/latest/KOR/Engine/Blueprints/UserGuide/Debugging/index.html
PPT 작성에 도움을 주신 김주석님과 황선하님께 감사드립니다.