[Unite 2014] 유니티 개발자, '서태웅'이 아닌 '강백호'가 돼라

나진희 najin@itdonga.com

유니티코리아가 유니티 개발자 컨퍼런스 '유나이트 코리아 2014'를 4월 9일부터 10일까지 서울 삼성동 코엑스 인터콘티넨탈 호텔에서 개최한다. 유나이트 코리아는 올해로 3회째를 맞은 행사로 유니티 게임 개발 엔진 및 개발 산업 전반을 다룬다. '상상하는 모든 것이 현실이 된다'는 주제 아래 게임 개발, 시뮬레이션, 비쥬얼라이제이션, 애니메이션, 교육 등 다양한 강의가 준비되어 있다.

이득우 이사
이득우 이사

현직 개발자가 관심 가질 만한 유용한 개발팁을 다룬 강의도 진행됐다. 유니티 이사를 지낸 스킬트리랩 이득우 이사의 '코루틴 깊이 알고 재미있게 쓰기'도 이러한 맥락의 강의다. 일반인은 강의의 주제도 무슨 뜻인지 이해하기 어려운데, 개발자들이 모인 현장의 열기는 뜨거웠다. 강의 시작 전부터 강의를 들으려고 선 사람들의 줄이 복도를 칭칭 감았다. 강의 중에는 슬라이드를 카메라로 찍는 '찰칵' 소리가 끊이질 않았고, 무언가를 열심히 받아 적는 참가자도 다수 보였다. 강의가 끝난 후에는 많은 사람이 앞으로 몰려나와 이득우 이사에게 코루틴 및 유니티 개발 전반에 관한 궁금증을 털어놓았다.

유나이트 코리아 2014
유나이트 코리아 2014

강의의 주요 소재인 '코루틴(Coroutine)'이란 진입 지점이 여러 개인 함수를 말한다. 코루틴은 진입 지점이 하나인 '서브루틴(Subroutine)'과 비교할 수 있다. 서브루틴은 함수 선언 부분에서 진입하며, Return 구문으로 반환되면 다시 처음부터 진입해야 한다. 반면, 코루틴은 yield return 구문으로 반환된 후 다시 돌아올 수 있다. 마치 협동하듯이 데이터가 왔다 갔다 하며 처리되는 것이 특징이다.

유니티의 코루틴은 스크립트와 엔진의 협동 관계를 말한다. 주는 사람과 받는 사람이 무언가를 주고 받으며 결과를 내놓는다. 무언가를 주는 사람은 프로그래머다. 주는 사람은 어떤 것을 줄지 설계해야 한다. 받는 사람은 유니티 엔진이다. 받는 사람은 '쿨'하게 물건만 받으면 된다. 물건이 없으면 그걸로 그만이다. 만약 물건을 받는다면 이를 택배가 왔을 때처럼 열어보고 분석한다. 받는 물건 안에 '언제 다시 받아오라'는 지령이 있으면 그때 또 받으면 되고, 없으면 그걸로 끝이다. 참고로 코루틴을 처음 실행할 때 엔진이 물건을 하나 달라고(MoveNext) 요구하기 때문에 최소한 하나 이상의 물건을 먼저 준비해둬야 한다. 그렇지 않으면 오류가 뜬다.

유나이트 코리아 2014
유나이트 코리아 2014

이날 강의에서 이득우 이사는 코루틴을 만드는 다양한 방법과 그 장단점을 소개했다. 결론적으로 코루틴이란 쓰레드가 아니며, 신종 프로그래밍 기법도 아니다. 특정 물체들의 목록을 받기 위한 용도보다 더 많은 기능이 있다. 코루틴은 유니티가 정의한 콜백 함수 인터페이스에 가깝다.

또한, 이득우 이사는 코루틴을 활용하기 위한 유니티 코딩의 '주관적인' 마음가짐도 알렸다. 첫째, 보는 사람들을 생각해 너무 많은 고급 문법을 남발하지 말자. 둘째, 유니티 엔진에서 스크립팅되는 실행 순서를 아는 게 중요하다. 대부분의 비극은 실행 순서를 제대로 몰라서 시작되기 때문. 셋째, 혼자서 모든 것을 다 하는 '슬램덩크'의 '서태웅'보다는, 팀워크를 생각하는 '강백호'가 되길 바란다. 유니티를 리더라고 생각하고 잘 활용할 생각을 해야지, 유니티 안에 새로운 유니티를 창조해서는 안 된다는 것이다.

글 / IT동아 나진희(najin@itdonga.com)

IT동아의 모든 콘텐츠(기사)는 Creative commons 저작자표시-비영리-변경금지 라이선스에 따라 이용할 수 있습니다.
의견은 IT동아(게임동아) 페이스북에서 덧글 또는 메신저로 남겨주세요.