1. 개념 요약

UniTask는 Unity 환경에서 async/await을 효율적으로 사용할 수 있도록 만들어진 경량 비동기 처리 라이브러리이다.

기존의 .NET Task는 Unity에서 사용할 경우 성능 저하(GC 발생, 느린 실행 등)가 발생하기 때문에, 이를 개선한 구조체 기반의 대체제가 UniTask이다.

즉, UniTask는 Unity 친화적이며 빠른 비동기 흐름을 위한 async/await 도구이다.


2. 배경 지식

2-1. Unity에서 비동기 처리가 필요한 이유

Unity에서는 씬 전환, 에셋 로딩, 네트워크 요청, UI 이벤트 처리 등 다양한 상황에서 시간 지연과 대기가 발생한다.

이러한 비동기 작업을 관리하기 위해 일반적으로 Coroutine을 사용해왔지만, 복잡한 흐름 처리, 예외 처리, 값 반환에 제약이 있다.

2-2. 기본 Task의 한계

C#의 Taskasync/await과 함께 사용할 수 있는 표준 비동기 타입이다.

그러나 Unity에서는 다음과 같은 문제가 있다:

2-3. UniTask의 필요성

UniTask는 Task와 동일한 문법(async/await)을 유지하면서도,