Jeongjin Oh 🖖 Live Lazy And Programming

언리얼 엔진에서의 Visual Assist X vs Resharper C++

이 회사에 입사한지 벌써 반년이 지났다. 세월 정말 빠르다.

팀에서 진행중인 프로젝트는 Unreal Engine으로 작업 중이다. 첫 3개월정도는 Unity와의 다른 점 때문에 굉장히 고생했던 기억이 난다. 지금이야 그러려니 하면서 작업하고 있지만 이전에는 왜 이런식으로 하는지에 대해 의문을 품으면서 그런거 하나하나에 스트레스를 받았다. 제대로 쓰기 시작한지 반년이 되면서 Unreal Engine에서의 작업 방식에 그래도 익숙해졌나보다.

하지만 아무리 익숙해져도 불편한 것은 불편한 것이다. 그 중 하나가 Visual Studio의 Intellisense를 전혀 쓸 수 없다는 것이었는데, 이를 Whole Tomato사의 Visual Assist X를 이용하여 어느 정도 커버를 하고 있다. 근데 이 VAX… 편하긴 한데 버그가 좀 있다. 프로젝트를 열고 좀 진행하다보면 Assist 기능이 죽어버린다. 파일 검색이나 레퍼런스 검색은 그래도 동작하는 것 같은데 코딩을 할 때 . 또는 ->를 쓰면 드롭다운 상자로 해당 변수에서 쓸 수 있는 녀석들이 쭈욱 나오는데 그것도 먹통이 되기 시작하면서 점차 VAX 시스템이 동작하지 않기 시작한다. 이에 대한 해결책으로 될 수 있으면 소스 파일을 많이 띄워놓지 않고 작업을 하는 것인데, 정신없이 코딩하고 디버깅하고 레퍼런스를 찾다보면 나도 모르는 사이에 굉장히 많이 열려진 소스 파일들을 볼 수 있다. 이게 아예 안됐을 때와 되다가 안될때의 기분은 다르다. 그래서 대안이 없을지 생각을 해봤다.

첫번째로는 Visual Studio Code를 이용하는 방법이었다. 최근에 Visual Studio Code를 이용하여 코딩을 하는 사람들이 늘고있다. Unreal Engine에서도 지원하는 것 같아서 시험삼아 해봤으나 Unity에서의 그것과는 차이가 꽤 있었다. 결론은 못써먹겠다. Youtube에서 성공(?)한 사례를 바탕으로 설정을 진행했다. Assist 기능은 거의 못써먹을 수준이다. 레퍼런스도 제대로 못찾는 걸 무슨 수로 써먹을까? 디버깅이 되는게 신기할 정도.

두번째는 이번에 시도해본 방법인데, 바로 JetBrains의 Resharper C++을 이용하는 것이다. 2017년에 일본에 있으면서 처음 알게된 Resharper의 C++ 버전이었는데 이번에 나올 2019.1 버전에서 Unreal Engine에 대한 성능 향상이 있다고 하여 기대하며 설치해봤다. 결론부터 이야기하자면 시기상조다. 이전에 VAX가 겪었던 여러 문제를 똑같이 답습하는 느낌이다. 아마 VAX보다는 더 진보된 Assist를 제공하는 것 같지만 좀 쓰다보면 Assist 기능 자체가 먹통이 되고 엔진에 있는 레퍼런스를 찾아보려 하면 Visual Studio가 터져버린다. 그리고 Cold Start에서의 Indexing 시간을 줄였다고는 하지만 굉장히 느리다. 우리 프로젝트 기준으로 약 3분은 아무것도 할 수 없다. VAX는 그래도 켜자마자 10초 이내에는 코딩이 가능하다.

기대를 하면 실망이 커진다고 했던가… 나는 다시 좌절했다. Epic Games 직원들도 이런 불편함을 감수하면서 작업을 하고 있는 것일까? 나보다 훨씬 많은 코드를 띄워놓고 작업을 할텐데 말이다. 오늘도 C#의 위대함을 느끼며 작업을 한다…

Comments