
우리는 매일 빌드머신으로 프로젝트를 빌드하고 배포한다.
이 과정에서 업데이트가 실패하거나 소스 코드에 컴파일 에러가 발생하면 이 과정은 중간에 취소되나, 이른 단계에서 검출되기에 빠르게 대응할 수 있다.
허나 언리얼 프로젝트에서 리소스패치를 만드는 과정 중 하나인 Cook 단계에선 블루프린트 컴파일 에러가 발생되어도 스테이징으로 넘어가는 직전(Cook 결과를 취합)에 실행취소가 된다. 이는 개발 프로세스를 지연시키는 주요 원인이었다.
경험상 다른 팀에서 에셋을 편집하는 과정에서 이러한 이슈를 자주 볼 수 있었다. 여러 에셋 간 의존성이 높은 에셋을 수정한 경우 사이드이펙트가 발생되어 엉뚱한 에셋이 에러를 일으켜도, 작업자가 이를 인식하긴 어려운 것이 원인이었다.
빌드 실패 → 원인 분석 → 담당자에게 이슈 전달 → 빌드 실패... 고통의 연속
이 문제를 해결하기 위해선 담당자가 작업 후 스스로 컴파일 검사를 할 수 있어야 한다고 보았다. 이를 위해 마켓플레이스에서 관련 에셋을 구매하였다.

허나 현재 진행중인 프로젝트에는 5000개가 넘는 블루프린트 에셋과 레벨들이 있었고 이 전체를 검사하니 1시간이 넘어갔다. 즉, 실무에 사용할 수가 없는 플러그인이었다.
그래서 직접 만들기로 했다.
먼저, 프로젝트에 쉽게 붙일 수 있도록 플러그인 프로젝트로 만들었다. 이 플러그인에는 블루프린트 에러를 스캔하는 유틸리티 위젯과 커맨드렛을 가지고 있다.
위젯에서 검사를 시작하면, CPU코어 개수만큼 병렬로 커맨드렛 프로세스를 실행시킨다. 프로세스간 파이프 통신을 통해 컴파일 데이터를 전달하고, 에디터에서 컴파일 과정을 유저에게 피드백하도록 하였다. 커맨드렛 검사가 완료되면, 결과를 리스팅해 에디터에서 최종 컴파일 결과를 보여주도록 하였다.

결과, M1 맥북프로에서 5000여개가 넘는 블루프린트(와 레벨)에셋을 2분대컷으로 완료할 수 있었다. (싱글코어로 실행하면 9분대 완료)
만들고보니, 마켓에 판매해도 될 퀄리티라 생각되었으나 유지보수나 사업자등록이 번거로워 그냥 공개저장소로 배포하고자 한다.