이 글은 PC 버전 TISTORY에 최적화 되어있습니다.
서론
Program testing can be used to show the presence of bugs, but never to show their absence!
- Edsger W. Dijkstra
다익스트라 알고리즘으로도 유명한 컴퓨터 과학자 다익스트라는 다음과 같이 말했습니다. '프로그램 테스팅은 버그의 존재를 보여주는데 사용할 수 있지만, 그들이 없음을 증명할 수는 없다!'. 즉, 우리가 사용하는 어떠한 디버깅 툴을 이용하더라도 모든 버그를 없앴다는 것을 확신할 수 없습니다. 모든 오류를 없앨 수는 없지만 유니티 내에서 정해진 시간과 예산 내에서 가능한 많은 버그를 바로잡는 것을 목표로 유니티의 디버깅의 종류와 방법을 알아보도록 하겠습니다.
디버깅 파트의 전체적인 흐름은 다음과 같습니다.
1. 컴파일 오류 & 콘솔2. Debug.Log는 만능 해결사?3. 플래그를 이용한 디버깅4. 시각적 디버깅5. 오류의 기록6. 에디터 디버깅7. 모노디벨롭을 통한 디버깅
컴파일 오류 & 콘솔
디버깅이라는 것은 사실 컴파일 시에 오류를 발견하는 것이 아닌, 실행 시에 오류를 발견하여 고치는 것 입니다. 하지만 실행 시에 디버깅을 하는 것도 컴파일이 완전히 되어야 가능한 것이죠. 이번 파트에서는 컴파일 오류와 콘솔 창을 통해 수정하는 방법에 대해서 다루도록 하겠습니다.
위의 코드를 저장하면 자동으로 컴파일을 수행합니다.
유니티 콘솔창을 보게되면 위와 같이 컴파일 에러를 띄웁니다.
컴파일 에러는 코드를 아예 무효화 시키는 심각한 에러입니다. 아예 게임을 실행 조차 시킬 수 없습니다. 콘솔 창에 나타난 에러는 위에서부터 차례로 해결하는 것이 정설입니다. 왜냐하면 위의 코드가 아래의 코드를 유발할 가능성이 높기 때문입니다. 더블 클릭해서 오류가 생긴 TestNum 변수의 이름을 testNum으로 바꾸어주면 오류는 깔끔하게 해결됩니다.
콘솔 창 메시지 종류
콘솔 창의 우측 상단을 보면 위와 같이 3개의 아이콘을 볼 수 있습니다. 좌측부터 차례로, Debug.Log나 Print문을 통한 주석, 오류 메시지, 에러 메시지를 활성화하거나 비활성화 할 수 있습니다. 주석에 대해서는 다음 파트에 배우도록 하겠습니다. 오류는 무시하고 실행하여도 문제는 없지만, 시스템의 불필요한 메모리를 차지하거나, 잠재적인 문제를 야기할 수 있으므로 최대한 해결하고 실행하는 것이 좋겠습니다.
반응형
'Frontend > Unity' 카테고리의 다른 글
[유니티 디버깅] ③ 플래그를 이용한 디버깅 (0) | 2016.08.03 |
---|---|
[유니티 디버깅] ② Debug.Log는 만능 해결사? (0) | 2016.08.03 |
[유니티 디버깅] ⑦ 모노디벨롭을 통한 디버깅 (0) | 2016.08.03 |
[유니티 C# 기초 강의] 11. 클래스와 다형성 (4) | 2016.07.26 |
[유니티 C# 기초 강의] 10. 클래스와 상속 (2) | 2016.07.25 |
[유니티 C# 기초 강의] 9. 프로퍼티 (8) | 2016.07.25 |