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

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

Applying For :

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

Introduction

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

팀장 달아도, 성장은 계속된다

개발 4명으로 시작해 4개월 만에 Prototype, 1년 만에 Open Beta — 문제 해결 관점의 팀장 회고

3년 4개월

LeadershipArchitectureRDD/MVP

Summary요약

3년 4개월

문제

서비스 로직과 기능 구현이 엉켜 재사용·확장이 어려운 레거시 코드와 소수 개발 인력(4명)으로 신규 서비스를 만들어야 했습니다.

역할

RDD 기반 MVP 패턴 방법론 정의, 공용 라이브러리(직렬화·통신·암호화·압축) 구축, 프로젝트 구조 분리를 경영진에 제안·적용하고, 주니어 교육과 칸반 운영, AssetBundle 시스템 구축을 담당했습니다.

성과

4개월 만에 팀 인프라와 Prototype을 완성하고, 초기와 동일한 인원으로 1년 만에 Open Beta를 출시했습니다. 이후 서비스 안정화와 콘텐츠 확장(음성 녹음, 아바타 순차 생성)으로 이어갔고, 누적 다운로드 30만, 사용자 평점 4.3로 남았습니다.

Key Numbers

4개월
Prototype
1년
Open Beta
4명
개발 인원
30만
누적 다운로드
신호정 / seenjeonga@gmail.com
팀장 달아도, 성장은 계속된다

Technical Deep Dive

업무 동기

재직 중인 회사에 취업 후, 회사가 가진 소프트웨어와 인적 자산을 꼼꼼히 파악하는 것으로 업무를 시작하였습니다.

초기 개발 인력은 아바타 시스템 개발을 담당한 대표님과 팀장인 저, 클라이언트 주니어 개발자와 서버 시니어 개발자까지 개발 4명이었습니다.

기존 앱 코드는 서비스 로직과 기능 구현이 엮여 있어 재사용이나 확장이 어려운 문제점이 있었습니다.

업무 전개

문제점을 분석하고 세 가지 보완점을 정리하여 경영진에게 현황을 보고하였습니다.

  1. 개발 방법론 정의 — 노하우를 토대로 "책임 주도 설계(RDD)에 근거한 MVP 패턴" 방법론을 정의
  2. 공용 라이브러리 구축 — 개인 프로젝트 코드를 기반으로 데이터 직렬화/역직렬화, 통신, 암호화, 압축 등 핵심 기능을 표준화
  3. 프로젝트 구조 정비 — 서비스 로직과 리소스 개발·빌드를 프로젝트별로 분리

보완점을 실무에 적용한 뒤, 주니어 개발자에게는 UGUI 기반의 가변 해상도 UI 제작법과 MVP 패턴을 직접 교육하며 레이아웃 기반의 Prototype 개발 계획과 이슈를 칸반 형식으로 관리하였습니다. 아바타 시스템의 특수성을 고려해 AssetBundle 시스템도 직접 구축하였으며, 필요한 경우 아바타 시스템의 성능 최적화에도 참여하였습니다.

이렇게 분발하여 팀의 인프라와 Prototype을 4개월 만에 완성할 수 있었습니다. 이후 Pilot 버전에서는 주니어 개발자에게 성장의 기회를 제공하고 저는 추가 교육 및 조언과 기술적 난관 해결에 집중했습니다.

새로 합류한 PM의 주도로 진행된 Alpha 버전부터 Beta 버전까지는 콘텐츠 개발과 UI/UX 개발에도 참여하여 개발 1년 만에 Open Beta에 도달할 수 있었습니다. 오픈할 때의 개발 인원은 초기와 동일하였습니다.

소수 인력으로 Open Beta까지 성공적으로 출시할 수 있었던 것은 팀 구성원의 역량을 최대한 끌어내고, 스스로도 쉬임없이 연구하고 현장을 지키며, 문제를 정면으로 돌파해온 결과였습니다.

이후 서비스 유지보수 및 안정화를 위한 핫픽스를 진행함과 동시에 백그라운드 상태의 통신 환경 구현을 진행하였고, 서비스 안정화를 이룬 시점부터 사용자 증가를 위한 콘텐츠 개발에 착수하여 Agora 더블 버퍼링 기반 음성 녹음 기능과 아바타 순차 생성 기능을 제작하였습니다. 이제는 서버리스 멀티 플레이 콘텐츠 제작을 준비하고 있습니다.

기술적 난관 소개

첫 번째, 아바타의 비동기 생성. 초기 아바타 시스템은 프로젝트에 내장된 리소스를 기반으로 아바타를 동기 생성하는 형태였습니다. 아바타의 모든 파츠를 앱에 수록하면 용량 문제가 발생하기에, AssetBundle을 다운로드해서 아바타를 생성하는 코드를 별도로 작성하고 유지보수해야 했습니다.

두 번째, 음성 채팅 환경 제어. 최초에는 Vivox를 사용했으나 블루투스 장비 인식 문제와 개발자 문서의 부실로 인해 Agora로 대체하였습니다. 이때부터 개발자 문서를 먼저 명확하게 파악하는 습관이 생겼고, Agora 환경 개선을 위해 Agora 측과 긴밀하게 의견을 나눈 것도 좋은 경험이 되었습니다.

세 번째, 앱 백그라운드 상태의 통신 환경 구현. Unity 앱은 백그라운드로 진입하면 동작이 정지됩니다 — 장면을 그리는(렌더링) Unity MainThread의 특성 때문입니다. 통신 모듈을 Worker Thread 기반으로 동작하게 변경하고, Unity Object를 직접 참조할 경우 접근 오류가 생기기에 Unity Update 주기에 맞춰 데이터를 동기화하는 구조를 만들어야 했습니다.

네 번째와 다섯 번째는 별도 글로 정리한 Agora 더블 버퍼링 기반 음성 녹음과 아바타 순차 생성입니다.

마무리하며

3년간의 개발이 쉬운 길은 아니었지만, 굳은 의지를 가지고 집중한 것이 회사의 제품 역량 성장으로 돌아와서 뿌듯합니다. 최근에는 유저 재접속률 향상을 위해 서버리스로 멀티 플레이 콘텐츠를 만드는 중입니다. 새로운 도전은 더 큰 역량과 성과로 돌아올 것으로 믿어 의심치 않습니다.