본문 바로가기

일과 사람들/콘텐츠

[N커리어로그] 보이지 않는 기반을 책임지는 일 | AION2 엔진팀 유은비

 

게임이 안정적으로 실행되기 위해서는 수많은 시스템이 동시에 움직여야 합니다. 그래픽, 물리 엔진, 메모리, 네트워크 등 모든 것이 단 한 번의 오류 없이 맞물려 돌아갈 때 비로소 플레이가 가능합니다. 이 기반을 설계하고 조율하는 역할이 바로 엔진 프로그래머입니다.

 

눈에 띄는 기능을 만드는 대신, 기능이 쌓일 수 있는 땅을 다지는 일. 그래서 이 직무에는 속도보다 방향을 지키는 태도, 빠른 수습보다 다시 무너지지 않는 해결을 선택하는 자세가 필요합니다. AION2 엔진팀에서 엔진 프로그래머로 일하고 있는 유은비님과의 인터뷰를 통해 엔진 프로그래머에게 필요한 관점과 태도에 대해 들여다보았습니다.

 

누구보다 게임의 깊은 곳에서 시스템을 바라보며, 문제를 ‘일시적으로 고치는 사람’이 아니라 ‘다시 무너지지 않게 만드는 사람’으로서 직무의 의연함을 확인할 수 있습니다.

 



"게임의 기반을 설계하는 엔진 프로그래머"

 

Q. 간단한 자기소개를 부탁드립니다.

저는 AION2 엔진팀에서 엔진 프로그래머로 근무하고 있는 유은비입니다.
프로젝트의 기반이 되는 엔진을 유지보수 하고, 게임이 잘 돌아갈 수 있도록 전반적인 최적화 작업을 담당하고 있습니다.

 

Q. 프로그래머 중에서도 엔진 프로그래머는 드문 직무 같은데요, 엔진 프로그래머는 어떤 역할을 하나요?

엔진 프로그래머는 게임 전체의 기반 시스템을 설계·유지·최적화하는 역할을 담당합니다.
렌더링, 물리, 메모리, 입력 등을 담당하는 게임의 기반 시스템인 엔진을 만들고, 게임이 안정적으로 플레이 될 수 있도록 하는 전반적인 작업들을 책임지는 직무입니다.
회사와 프로젝트에 따라 사용하는 엔진이 다를 수는 있지만, 본질은 같습니다. 눈에 보이는 기능을 만들기보다는, 기능이 얹힐 수 있는 안전한 땅을 다져주고 관리하는 것이 엔진 프로그래머 역할의 핵심입니다.

 

Q. 같은 엔진 프로그래머라고 해도 다루는 엔진에 따라 업무에 차이가 있다고요.

크게는 상용 엔진과 자체엔진을 다루는 것으로 나눌 수 있는데요.

 

상용 엔진의 종류는 다양하지만, 언리얼/유니티 두 엔진이 가장 대중적입니다. 상용엔진은 이미 다양한 기능이 구현돼 있고, 게임 제작에 필요한 기반이 어느 정도 정리된 상태에서 시작할 수 있다는 장점이 있습니다. 하지만 다양한 게임을 타겟으로 제작된 엔진이기 때문에 제작하는 게임에 맞게 엔진을 분석하고 수정하는 비용이 있습니다.

 

반면 자체엔진은 내부 구조를 직접 설계하거나 기능들을 처음부터 개발하기 때문에 자유도가 높지만, 초기에 제작하는 비용이 많이 든다는 단점이 있습니다.

 

Q. 첫 커리어는 자체 엔진을 다루는 회사에서 시작하셨다고 들었습니다.

맞아요. 첫 회사는 자체엔진을 사용하는 회사였기 때문에 엔진 기능들을 직접 구현해볼 기회가 많았습니다. 유지보수가 필요할 때에도 직접 짠 코드였기 때문에 수정이 조금 더 수월했던 것 같아요.

 

이후에는 계속 언리얼 엔진을 다루는 회사에서 근무를 했었습니다. 엔씨에서도 언리얼 엔진을 커스터마이징하는 업무를 하고 있고요. 언리얼 엔진을 사용하면 계속 새로운 기술들을 접할 수 있고, 오픈소스이기 때문에 내부 코드를 보면서 직접 연구하고 수정할 수도 있습니다. 대중적으로 사용되다 보니 레퍼런스도 많고 개발자 커뮤니티도 활성화되어 있어 배울 점도 많습니다.

 

자체엔진과 상용엔진 둘 다 장단점이 각각 있지만 상용 엔진이 성장이나 협업 등 커리어 전반에서 이점이 있는 선택이었다고 생각합니다.

 

 

"보이지 않는 안정성을 지키는 일"

 

 

Q. 현재 팀에서는 어떤 업무를 중심으로 맡고 계신가요?

AION2가 론칭 단계이기에 다양한 환경에서 유저들이 플레이를 할 수 있도록 최적화와 안정성에 특히 집중하고 있습니다. 모바일 환경은 메모리가 한정돼 있고, 기기별 스펙 편차가 커서 많은 고민을 하며 최적화를 하고 있습니다. 최적화를 하게 되면 퀄리티 저하가 발생하기 쉬운데 이를 제약 안에서 맞추는 식이죠. 지금 제가 하는 일의 본질은 기능을 추가하는 것이 아니라 안정적으로 실행되도록 조율하는 것에 가까워요.

 

Q. 엔진 프로그래머 직무만의 어려움은 무엇이라고 느끼시나요?

엔진은 작은 수정에도 파급력이 크기 때문에 단발적으로 고치는 것이 “끝”이라는 사고가 통하지 않습니다. 예를 들어 성능 최적화를 위해 특정 구조를 손봤다면, 그것이 렌더링·애니메이션·입출력까지 어떤 파급을 만드는지 모든 방향에서 고려해야 합니다. 엔진 개발은 ‘빠른 해결’보다 ‘다시 무너뜨리지 않는 해결’이 우선순위예요. 이것이 엔진 프로그래머 직무의 어려움이 아닐까 싶어요.

 

Q. 일하며 가장 어려웠던 순간을 꼽아본다면요?

버그를 수정할 때는 보통 원인에 대한 가설을 세우는 것에서 시작하는데요. 처음에는 “아마 이 부분일 것 같다”라고 생각하며 여러 가능성을 세워놓는데, 그게 연달아 빗나가는 순간들이 있습니다. 그런 때는 방향을 잃은 것 같고, 솔직히 포기하고 싶을 때도 있습니다. (웃음) 그래도 끝까지 한 번만 더 해보자고 마음을 다잡고 문제를 해결했을 때, 그 경험이 가장 오래 남습니다. 그렇게 어렵게 해결한 버그일수록 다음에 비슷한 문제가 왔을 때 훨씬 빠르게 대응할 수 있고, 제 성장에도 분명히 도움이 된다고 느껴요.

 

 

"무너지지 않는 해결을 향한 태도"

 

 

Q. 보다 뚝심있게 정진하며 넓게 생각하는 것이 필요하군요. 은비님이 생각하기에 엔진 프로그래머 직무에 잘 맞는 사람은 어떤 성향일까요?

버그를 추적하는 과정이 길고 예상이 빗나갈 때도 많아서, 감정적으로 흔들리지 않는 태도가 필요하다고 느낍니다. 쉽게 포기하지 않고 끝까지 가보는 끈기, 그리고 문제를 추측으로 덮지 않고 논리적으로 확인하는 습관이 이 직무와 잘 맞는 성향인 것 같습니다. 빠르게 보여주는 성과보다, 다시 돌아오지 않도록 확실하게 해결하는 방식이 결국 오래 버티는 힘이 되는 것 같아요.

 

Q. AION2 엔진팀의 분위기도 궁금합니다.

엔진프로그래머들은 보통 성향이 되게 조용하세요. 저희팀 역시 전체적으로 조용한 분위기라 회의 때 서로의 의견을 주장하기 보다는 차분한 분위기가 유지되는 편이에요. 그렇지만 팀원이 어떠한 문제에 봉착했을 때 같이 고민해주고, 회의 때 하지 못한 이야기는 메신저로 조용히 건네곤 합니다.

 

그리고 팀에는 실력이 뛰어난 분들이 많아요. “언제 이렇게 실력이 좋은 분들이 많은 팀에서 일해볼 수 있을까?” 싶을 정도로요. 그런 동료들과 함께 일하면서 업무적으로 도움을 많이 받기도 하고, 그분들이 생각하는 방식에서 배우는 것도 많습니다. 그래서 저 역시 정답이 아니어도, 도움이 될 만한 생각이 떠오르면 조심스럽게라도 전달하려고 합니다. 그런 대화 한 번이 생각의 전환점이 될 때가 있더라고요. 동료들이 제게 그랬던 것처럼, 누군가가 막혀 있을 때 작게라도 힘이 되는 동료가 되고 싶습니다.

 

Q. 엔진 프로그래머 직무를 준비하는 지원자들에게 전하고 싶은 말이 있다면요?

사람마다 시작점은 다르지만 어떤 방식이든 직접 부딪쳐 보면서 구조를 이해해 보는 경험이 중요한 것 같아요. 한 번 깊이 내려가 본 경험이 있으면 비슷한 문제를 만났을 때 훨씬 빠르게 대응할 수 있고, 그게 결국 성장 속도의 차이를 만들죠. 엔진 프로그래밍도 마찬가지예요. 겉으로 보기엔 어렵게 느껴질 수 있지만, 사실은 성향에 따라 오히려 잘 맞고 재미를 느끼는 사람들도 많아요. 그러니 ‘엔진 프로그래머의 허들이 너무 높다’고 생각하지 말고 자신감있게 지원해보시면 좋겠어요.

 

엔씨에는 경험도 깊고, 문제를 바라보는 시야가 넓은 엔진 프로그래머들이 많아요. 함께 일하다 보면 자연스럽게 사고방식이 확장되고, 내가 어디서 더 성장할 수 있는지도 보이죠. 그런 환경 속에서 일하는 건 분명 큰 행운이자, 도전해볼 만한 가치가 있는 경험이라고 생각합니다.