Unity 16년, AI 모델을 앱 안에서 돌립니다.

신호정|AI 제품 개발 엔지니어

Applying For :

AI Product Engineer / 온디바이스 AI 클라이언트 / 게임 AI(시니어 개발자, 테크리드 겸임 가능)

Introduction

실시간 클라이언트를 16년 만들어 온 개발자입니다. 지금은 AI 모델을 제품 안에서 돌아가게 만드는 일을 합니다. 소셜 아바타 앱 개발팀을 3년 4개월 이끌었고, 2026년 8월에는 두 팀 프로젝트를 동시에 테크리드로 맡아 둘 다 제출했습니다.

아바타 순차 생성

18개+ 부위 조합 아바타의 생성을 비동기화해, 10인 이상 그룹 콘텐츠에서도 평균 30fps+ 유지

Moii · 2022 ~ 2025

UnityAssetBundleAsyncOptimization

Summary요약

Moii · 2022 ~ 2025

문제

아바타가 최소 18가지 개별 부위를 조합해 생성되는 구조라, 일반 fbx+아이템 방식 대비 리소스 로딩·정점 연산 비용이 급증해 화면 렌더링이 멈추는 현상이 발생했습니다.

역할

기존 동기 생성 과정을 비동기 방식으로 재설계하고, 앱 렌더링 성능을 보장하는 최적화를 주도했습니다.

성과

앱 상황에 맞춰 생성 방식을 선택할 수 있게 되었고, 10인 이상 그룹 대화 콘텐츠에서 유저가 실시간 참여해도 렌더링 성능 저하 없이 서비스를 제공했습니다.

Key Numbers

30fps+
평균 프레임
18+
조합 부위 수
10인+
동시 참여
신호정 / seenjeonga@gmail.com
아바타 순차 생성

Technical Deep Dive

업무 동기

Moii 프로젝트의 아바타는 최소 18가지의 개별 부위를 조합하여 생성되는 구조입니다. 이로 인해 일반적으로 사용하는 fbx 모델과 아이템을 조합하는 방식에 비해 리소스 로딩과 정점 연산 비용이 크게 증가하여 화면 렌더링이 멈추는 현상이 발생했습니다.

아바타의 다양한 조합이 가능하다는 장점이 있지만, 사업성의 핵심인 다양한 유저와의 만남을 구현하는 데 이 비용이 가장 큰 장애물로 작용했습니다.

이 문제를 해결하기 위해 기존 아바타 생성 과정을 비동기 방식으로 변경하고, 앱의 렌더링 성능을 최대한 보장할 수 있도록 최적화를 진행했습니다.

접근 방식

  • 동기 생성 파이프라인을 단계별로 분해하고, 프레임 예산을 넘는 구간을 식별
  • AssetBundle 다운로드 기반의 생성 코드를 별도 모듈로 분리해 유지보수성 확보
  • Async/Await 없이도 동작하는 AssetBundle 로딩 경로와 WorkerThread 기반 Json 테이블 로딩·예외 처리 적용
  • 생성 방식을 앱 상황(단독 화면 vs 다중 참여 콘텐츠)에 따라 선택할 수 있도록 설계

전체 흐름은 워크 다이어그램 (Figma)에서 확인할 수 있습니다.

시연 영상

업무 성과

아바타의 생성 방식을 앱의 상황에 맞춰 선택할 수 있게 되었습니다. 그룹 대화같이 10인 이상의 참여자가 필요한 콘텐츠에서 유저들이 실시간으로 참여해도 앱 렌더링 퍼포먼스가 크게 영향받지 않는 상태로 서비스를 제공할 수 있었고, 평균 30fps 이상을 유지했습니다.