상단여백
HOME 게임 취재
[NDC19] 버그를 조금이라도 쉽게 잡기 위한 개발 툴 제작하기

게임을 개발하는 과정에서 개발자는 다양한 버그를 마주하게 된다. 출시한 이후에도 그렇다. 그런데 버그는 쉽게 잡히지 않는다. 일단, 원인을 찾는 것 부터 어렵다. 재현하기도 어렵다. 시간도 많이 들어간다. 그래서 넥슨 인프라기술팀은 개발자를 도와주는 개발 툴을 제작하고 있다. 이 과정에 참여한 넥슨 홍진우 프로그래머의 말을 들어보자.

 

■ 버그를 잡는 것은 왜 이렇게 어려울까?

개발자 입장에서 버그를 잡는 것은 어렵다. 구체적인 이유는 무엇일까? 대부분의 경우는 버그의 원인을 찾기 힘들기 때문이다. 갑자기 서버가 다운되거나, 유저가 게임을 즐기던 중에 갑자기 로그인 창이 뜨는 현상이 발생한 원인을 정확하게 진단하는 것은 쉽지 않다. 게임을 하다가 갑자기 튕김 현상을 경험하는 것도 마찬가지다.

버그에 대한 정보가 너무 많이 흩어져 있다는 점도 개발자를 힘들게 한다. 유저의 PC를 기준으로 봐도 다양한 폴더를 봐야한다. 유저가 게임의 어느 버전을 사용했는지, 운영 체제는 무엇을 사용하고 있는지, 운영 체제 버전은 무엇인지, 클라이언트는 어디에 깔려있는지 등 살펴봐야 할 것이 많다. 게임 서버에 문제가 있는지도 봐야한다.

이런 과정에서 작업자의 시간이 많이 소요된다는 것도 버그를 잡는 것을 힘들게 한다. 버그의 원인을 찾는 것, 여기저기에 흩어진 정보를 다 찾는 과정에는 많은 시간이 소요된다. 인력은 한정되어 있고, 버그는 많고, 확인해야 할 것도 많다. 이래서 버그를 잡는 것은 어려운 작업이 된다.

 

■ 개발자들이 버그를 잡는 데 도움을 주는 툴을 만들자

넥슨 인프라기술팀의 홍진우 프로그래머는 버그를 잡는데 필요한 개발자의 작업을 조금이라도 쉽게 만들어주는 개발자 툴을 개발하고 있다. 개발자들이 게임을 개발하는 과정에서 버그를 잡는 데 걸리는 시간을 줄이고, 궁극적으로는 개발 효율을 높여보자는 취지다. 현재 이 개발 툴에 대한 알파 테스트가 진행되고 있다.

개발자 툴에는 다양한 기능이 있다. 주로 게임 상태를 모니터링하고, 정보를 수집하는 기능들이다. 구체적으로는 게임을 구동하고 실시간으로 구동중인 PC의 상태를 모니터링하는 기능, 특정 상황의 로그를 추출하는 기능, 로그를 스크린샷으로 만드는 기능, 예외 이벤트를 감지하는 기능 등이다.

실시간 모니터링 기능이 필요한 이유는 문제가 발생한 상황을 빠르게 검증할 수 있기 때문이다. 게임이 중단됐다면 어떤 동작을 했을 때 중단된 것인지, 그 순간 구동 PC의 상태는 어땠는지, 그 당시 메모리가 부족했던 것은 아닌지, PC 성능이 갑자기 하락한 것은 아닌지 등을 정확하고 빠르게 확인할 수 있다. 그만큼 개발자가 작업하는 시간이 줄어든다. 버그가 발생한 상황의 로그도 개발 툴이 자동으로 찾아주고 시간대별로 정리를 해준다. 스크린샷으로 변환도 해준다. 개발자가 이런 것을 일일이 찾는 수고를 덜어줄 수 있다.

홍진우 프로그래머는 발표 현장에서 이 프로그램을 직접 시연했다. 간단한 게임을 구동하고, 일부러 크래쉬를 발생시켜서 게임이 종료됐다.그 상황의 각종 데이터, 로그 기록 등이 자동으로 추출되는 장면을 직접 보여줬다. 지금은 개발 단계에서만 이 개발 툴을 사용할 수 있지만, 여기서 조금 더 발전하면 출시된 게임에 적용할 수도 있을 것이다. 다만 이 프로그램을 외부에 공개할 것인지, 완성됐을 때 판매할 것인지 여부에 대해서는 정해진 것이 없다고 밝혔다.

김창훈 기자  changhoon8@gamevu.co.kr

<저작권자 © 게임뷰, 무단 전재 및 재배포 금지>

김창훈 기자의 다른기사 보기
icon인기기사
기사 댓글 0
전체보기
첫번째 댓글을 남겨주세요.
여백
여백
여백
여백
Back to Top