Unity AI Assistant × Profiler — 성능 병목을 자연어로 진단하는 완전 가이드

Unity AI 완전 정복 시리즈
1편 — Unity AI Assistant 완전 입문: Ask·Plan·Agent 모드 차이점과 언제 무엇을 쓸까
2편 — Unity MCP 완전 가이드: Claude Code·Codex·Gemini·Cursor를 Unity Editor와 연결하기
3편 — Unity MCP 커스텀 도구 만들기: McpTool Deep Dive와 4가지 등록 방식
4편 — Unity Skills 시스템으로 AI 워크플로우 자동화하기: SKILL.md 완전 가이드
Appendix — Unity MCP 빌트인 도구 완전 레퍼런스 — 51개 도구 파라미터·활성화 가이드
5편 — Unity AI Assistant Project Overview 자동 생성 — AI가 내 프로젝트를 이해하게 만드는 방법
6편 — Unity AI Assistant × Profiler — 성능 병목을 자연어로 진단하는 완전 가이드 (현재 글)

Unity Profiler는 강력한 도구입니다. 하지만 타임라인을 손으로 훑고 수치를 하나씩 해석하는 작업은 생각보다 많은 시간과 경험을 요구합니다. 프레임 스파이크 하나를 추적하다 보면 어느새 한 시간이 훌쩍 지나 있는 경험, 현장에서 많이들 해보셨을 것입니다. Unity AI Assistant는 그 해석 과정에 자연어 질문으로 진입할 수 있는 경로를 제공합니다. Unity 6.3(com.unity.ai.assistant 2.7) 기준으로 작성되었습니다.

TL;DR
– Assistant는 Profiler 데이터를 직접 기록하지 않습니다. 프로파일링 세션 캡처는 반드시 사용자가 직접 수행해야 합니다.
– Assistant 창에서 자연어 질문을 입력하면, Assistant가 사용 가능한 프로파일링 데이터를 자동으로 확인하고 분석 옵션을 제시합니다.
– Profiler 창에서 특정 샘플·프레임을 선택한 뒤 Ask Assistant를 누르면 해당 데이터가 자동으로 첨부됩니다.
– 저장 세션·활성 세션·둘 다 있는 경우·데이터 없는 경우의 4가지 시나리오별 분기 흐름을 이 글에서 정리합니다.
– 분석 결과는 타이밍 패턴, 메모리 동작, 잠재적 성능 우려 사항을 요약한 형태로 Assistant 창에 표시됩니다.

목차

  1. 나의 프로젝트를 Unity AI가 진단해준다
  2. 전제 조건 — Assistant는 데이터를 직접 기록하지 않는다
  3. 진입점 1 — Assistant 창에서 시작하기
  4. 4가지 데이터 시나리오별 분기
  5. 진입점 2 — Profiler 창에서 시작하기
  6. 분석 결과 해석하기
  7. 자주 묻는 질문
  8. 마무리
  9. 함께 읽으면 좋은 포스팅

나의 프로젝트를 Unity AI가 진단해준다

Unity Profiler는 CPU, GPU, 메모리, 렌더링, 물리 등 수십 개의 모듈에서 초당 수천 개의 샘플을 쌓습니다. 문제는 이 데이터가 너무 많다는 점입니다. 어떤 프레임이 튀는지는 금방 보이지만, 그 이유를 정확히 짚어내려면 CPU 타임라인을 깊이 파고들어 호출 스택을 역추적해야 합니다.

20년이 넘는 게임 개발 경력에서 코딩보다 오히려 디버깅에 더 많은 시간을 사용해왔다고 해도 과언이 아닐겁니다. 저 뿐만 아니라 많은 개발자 분들이 이 부분에 공감하실겁니다. 성능 문제의 절반 이상은 “어디를 봐야 하는지”를 빨리 파악하는 것에서 승부가 납니다. 그 맥락 탐색 과정을 자연어로 단축할 수 있다면 진단과 해결 속도는 압도적으로 빨라집니다.

Unity AI Assistant의 Profiler 연동은 정확히 이 지점을 겨냥합니다. 사용자가 이미 캡처한 Profiler 데이터를 Assistant에 넘기면, Assistant가 타이밍 패턴·메모리 동작·잠재적 성능 우려 사항을 요약해 설명해줍니다. 복잡한 타임라인 해석의 첫 관문을 AI가 대신 통과해주는 구조입니다.

전제 조건 — Assistant는 데이터를 직접 기록하지 않는다

가장 먼저 짚고 넘어가야 할 사항이 있습니다.

Assistant는 프로파일링 데이터를 직접 기록하지 않습니다. 프로파일링 세션을 캡처하는 것은 사용자가 Profiler 창에서 직접 수행해야 합니다. Assistant는 이미 존재하는 저장된 세션 또는 활성 세션을 분석할 수 있을 뿐입니다.

이 한계는 Assistant를 사용하기 전에 반드시 염두에 두어야 합니다. “내 게임 왜 느려요?”라고 물어볼 때 Profiler 데이터가 전혀 없으면, Assistant는 분석 대신 Open Profiler 옵션을 안내합니다. 데이터가 있어야 분석이 시작됩니다.

필수 조건 요약:

조건 설명
Profiler 데이터 저장된 .data 파일 또는 활성 프로파일링 세션 중 하나 이상
Assistant 활성화 Unity Editor에서 Assistant가 활성화되어 있어야 함

Profiler 데이터는 Unity가 .data 파일 형식으로 프로젝트 내에 저장합니다. 이 파일을 열거나 활성 세션 상태를 유지한 채 Assistant에 질문을 던지면 분석이 가능합니다.

진입점 1 — Assistant 창에서 시작하기

Profiler를 굳이 먼저 열지 않아도 됩니다. Assistant 창에서 바로 성능 관련 질문을 던지는 것이 첫 번째 진입점입니다.

단계별 절차

1단계: Unity Editor에서 Assistant 창을 엽니다.

2단계: 성능 관련 질문을 입력하고 제출합니다. 공식 문서에서 제시하는 예시 질문은 다음과 같습니다.

Why is my game running slowly?
What is causing high CPU usage in my project?

이 두 질문은 Assistant가 Profiler 데이터 조회를 시작하는 트리거 역할을 합니다. 비슷한 패턴의 자연어 질문이라면 동일하게 작동합니다.

3단계: Assistant가 사용 가능한 프로파일링 데이터를 자동으로 확인합니다. 이후 두 가지 옵션을 제시합니다.

  • Open Profiler — Profiler 창을 열도록 안내
  • Analyze — 사용 가능한 프로파일링 세션에 대해 표시

4단계: 프로젝트에 존재하는 데이터 상태에 따라 다음 단계가 달라집니다. 이 분기가 이 워크플로우에서 가장 중요한 부분입니다.

4가지 데이터 시나리오별 분기

Assistant는 프로젝트에 어떤 Profiler 데이터가 있는지에 따라 다르게 동작합니다. 4가지 시나리오로 나뉩니다.

성능 질문 입력 데이터 상태? 저장 세션만 세션 목록 → Analyze 선택 활성 세션만 자동으로 활성 세션 사용 저장 + 활성 세션 목록에서 선택 가능 데이터 없음 Open Profiler 안내 Assistant 창에서 분석 결과 확인

각 시나리오별로 Assistant가 어떻게 반응하는지 정리했습니다.

시나리오 1 — 저장된 세션만 있을 때

이전 프로파일링 작업에서 .data 파일로 저장해둔 세션이 있고, 현재 활성 세션은 없는 상태입니다.

Assistant는 저장된 프로파일링 세션 목록을 표시합니다. 원하는 세션 옆의 Analyze를 선택하면 해당 세션을 분석하고, 타이밍 패턴·메모리 동작·잠재적 성능 우려 사항을 요약한 결과를 제공합니다.

시나리오 2 — 활성 세션만 있을 때

저장된 세션은 없지만, Profiler 창에 활성 프로파일링 세션이 열려 있는 상태입니다.

이 경우 Assistant는 활성 세션을 자동으로 사용합니다. 별도로 세션을 저장할 필요가 없습니다. 분석 결과가 바로 Assistant 창에 표시됩니다.

시나리오 3 — 저장 세션과 활성 세션이 모두 있을 때

가장 선택지가 많은 상황입니다. Assistant는 저장된 세션과 활성 세션을 모두 목록에 표시합니다. 활성 세션을 분석하려면 해당 항목 옆의 Analyze를 선택하면 됩니다. 이때 역시 세션을 먼저 저장할 필요는 없습니다.

시나리오 4 — 프로파일링 데이터가 전혀 없을 때

아직 Profiler를 실행한 적이 없거나, 데이터가 없는 상태에서 성능 질문을 한 경우입니다.

Assistant는 분석에 프로파일링 데이터가 필요함을 안내하고 Open Profiler 옵션을 표시합니다. 이 옵션을 선택하면 Profiler 창이 열립니다. 그곳에서 프로파일링 세션을 기록한 뒤 다시 질문을 실행하면 분석이 시작됩니다. Unity는 프로파일링 세션을 .data 파일로 프로젝트 내에 저장합니다.

진입점 2 — Profiler 창에서 시작하기

이미 Profiler 창에서 데이터를 분석하고 있다면, Assistant를 굳이 별도로 열 필요가 없습니다. Profiler 창 안에서 직접 Assistant로 연결하는 두 번째 진입점을 활용할 수 있습니다.

이 워크플로우는 특정 프레임이나 샘플에 대해 집중적인 설명이나 최적화 지침이 필요할 때 특히 유용합니다.

단계별 절차

1단계: Unity Editor에서 Profiler 창을 엽니다.

2단계: 저장된 프로파일링 세션을 불러오거나 새로 기록합니다.

3단계: Timeline 같은 지원되는 뷰로 전환합니다.

4단계: 분석하고 싶은 프로파일러 샘플 또는 프레임을 선택합니다.

5단계: Ask Assistant를 선택합니다.

Unity Profiler Timeline 뷰에서 샘플 선택 후 Ask Assistant 버튼을 통해 분석을 요청하는 화면

선택한 샘플을 기반으로 자동으로 제안된 질문과 함께 프롬프트가 나타납니다. 이 프롬프트는 제출하기 전에 직접 편집할 수 있습니다. 선택한 프로파일링 데이터는 자동으로 첨부됩니다.

6단계: 프롬프트를 제출합니다. 분석 결과가 Assistant 창에 표시됩니다.

7단계: 결과를 검토한 뒤 다른 샘플을 선택하거나 질문을 다듬어 성능 문제를 더 깊이 탐색합니다.

두 진입점 비교

항목 Assistant 창에서 시작 Profiler 창에서 시작
시작 위치 Assistant 창 Profiler 창
데이터 선택 방식 Assistant가 자동 확인 후 옵션 제시 사용자가 직접 샘플·프레임 선택
적합한 상황 전반적인 성능 질문, Profiler를 열기 전 특정 샘플·프레임의 집중 분석
프롬프트 편집 사용자가 직접 작성 선택 샘플 기반 자동 제안 + 편집 가능
분석 결과 표시 위치 Assistant 창 Assistant 창

두 방식 모두 동일한 분석 파이프라인을 사용하며, 결과는 항상 Assistant 창에 표시됩니다.

분석 결과 해석하기

어느 진입점을 사용하든, 분석 결과는 Assistant 창에 표시됩니다. 결과는 다음 세 가지 범주로 요약됩니다.

범주 설명
타이밍 패턴 (Timing Patterns) 프레임별 CPU 소비 시간 흐름, 스파이크 발생 구간
메모리 동작 (Memory Behavior) 할당·해제 패턴, 가비지 컬렉션 발생 여부
잠재적 성능 우려 사항 (Potential Performance Concerns) 향후 문제가 될 수 있는 패턴에 대한 경고

세 범주 중 “잠재적 성능 우려 사항”은 현재 눈에 보이는 문제뿐만 아니라 앞으로 스케일 업 시 문제가 될 가능성이 있는 패턴도 포함합니다. 현재 프레임률이 괜찮더라도 이 항목을 함께 확인하는 습관이 중요합니다.

분석 결과를 받은 뒤에는 다른 샘플을 선택하거나 질문을 다듬어가며 탐색을 이어갈 수 있습니다. Assistant는 대화 맥락을 유지하므로, “방금 분석한 결과에서 GC Alloc이 가장 큰 함수는 어디인가요?” 같은 후속 질문도 자연스럽게 이어집니다.

Ask 모드로 진단하고, Agent 모드로 수정하기

공식 문서에 명시되어 있지는 않지만, Profiler 분석은 구조적으로 Ask 모드에서 동작하는 것으로 추정됩니다. Ask 모드는 프로젝트를 읽기 전용으로 조회하고 분석 결과를 텍스트로 반환하는 데 특화되어 있습니다. Profiler 데이터를 읽어 타이밍 패턴·메모리 동작·성능 우려 사항을 요약하는 작업은 정확히 이 특성과 맞아떨어집니다.

이 특성을 이해하면 실용적인 워크플로우가 보입니다.

  1. Ask 모드 — 진단: Profiler 데이터를 넘겨 “어느 함수가 GC Alloc이 가장 많은가”, “프레임 스파이크의 원인은 무엇인가”처럼 질문한다. Assistant가 병목 지점을 특정해준다.
  2. Agent 모드 — 수정: 병목 원인이 특정되면 Agent 모드로 전환해 “GC Alloc을 줄이기 위해 오브젝트 풀링을 추가해줘”처럼 실제 코드 수정을 요청한다. Agent 모드는 프로젝트를 직접 변경할 수 있다.

진단은 Ask 모드, 수정은 Agent 모드. 두 모드를 이어 쓰는 것이 성능 최적화에서 Assistant를 가장 효율적으로 활용하는 방식이라고 생각합니다.

이미지·스크린샷과 함께 활용하기

성능 분석 외에도, Assistant는 에디터 스크린샷을 함께 제출하는 방식도 지원합니다. 예를 들어 핑크 머티리얼 같은 렌더링 오류가 발생했을 때 에디터 뷰를 캡처해 “Why is my cube pink?”라고 물으면, Assistant가 이미지를 분석해 셰이더 누락이나 URP 설정 문제 등을 진단합니다. Profiler 기반 성능 진단과 함께 활용하면 더 폭넓은 디버깅 워크플로우를 구성할 수 있습니다.

자주 묻는 질문

Q. Profiler 데이터 없이 “성능 최적화 방법”을 물어보면 어떻게 되나요?

A. 데이터 없이 일반적인 최적화 질문을 하면 Assistant는 일반적인 가이던스를 제공하거나 Open Profiler 옵션을 안내합니다. 실제 프로젝트 데이터를 기반으로 한 구체적인 분석은 Profiler 세션이 있어야 가능합니다.

Q. .data 파일은 어디에 저장되나요?

A. Unity가 프로파일링 세션을 .data 파일로 프로젝트 내에 저장합니다. 정확한 경로는 Profiler 창의 저장 기능을 통해 지정하거나 확인할 수 있습니다.

Q. 활성 세션을 분석할 때 세션을 먼저 저장해야 하나요?

A. 저장하지 않아도 됩니다. 저장 세션과 활성 세션이 모두 있을 때, 활성 세션 옆의 Analyze를 선택하면 저장 없이 바로 분석이 가능합니다.

Q. Profiler 창의 어떤 뷰에서 Ask Assistant를 사용할 수 있나요?

A. 공식 문서는 Timeline 같은 지원되는 뷰(supported view)로 전환한 뒤 사용하라고 명시합니다. 어떤 뷰가 추가로 지원되는지는 문서에서 명확히 확인되지 않습니다.

Q. 분석에 Unity Credits가 소모되나요?

A. Assistant를 통한 프로파일링 데이터 분석은 AI 처리를 수반하므로 Unity Credits가 소모될 수 있습니다. 정확한 소모량은 Unity AI 사용량 정책을 참조하시기 바랍니다.

마무리

Unity AI Assistant의 Profiler 연동은 두 가지 관점에서 실용적입니다.

첫째, 진입 장벽이 낮습니다. Profiler 창을 먼저 열지 않아도 Assistant 창에서 질문 하나로 분석을 시작할 수 있고, Profiler 데이터가 없으면 Assistant가 직접 Profiler를 열도록 안내합니다. 워크플로우의 어느 시점에서든 자연스럽게 연결됩니다.

둘째, 타임라인 해석의 첫 단계를 위임할 수 있습니다. 수천 개의 샘플 중 어디를 먼저 봐야 할지를 AI가 요약해주면, 개발자는 원인을 추적하고 수정하는 핵심 작업에 집중할 수 있습니다.

다만 한 가지 기억해야 할 것은, 분석의 품질은 Profiler 세션의 품질에 달려 있다는 점입니다. 대표적인 프레임 스파이크가 포함된 세션, 재현 가능한 상황에서 캡처한 데이터를 넘겨야 Assistant도 더 유의미한 결과를 줄 수 있습니다. AI에게 맥락을 잘 넘기는 것도 개발자의 역량입니다.


← 이전 편: 5편 — Unity AI Assistant Project Overview 자동 생성 — AI가 내 프로젝트를 이해하게 만드는 방법

댓글 남기기