인프런 커뮤니티 질문&답변

tkddlsdndb님의 프로필 이미지
tkddlsdndb

작성한 질문수

[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작

ObjectManager

Coroutine과 uniTask 질문드립니다.

작성

·

106

0

Coroutine을 적극 권장하신다고 하셨는데 new연산자로 코루틴은 인스턴스를 만들고 그로인해 가비지가 생성된다고 알고 있습니다. 이런 이유로 대안으로 uniTask가 나왔다고 들었습니다. 아직 uniTask보다 Coroutine이 보편화되어있고 성능적 이점이 크게 차이가 나지 않는 지 궁굼합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
tkddlsdndb님, 질문하신 Coroutine과 UniTask에 대해 답변 드리겠습니다.

Coroutine은 Unity에서 비동기 작업을 처리하는 한 방법으로, new 연산자로 인스턴스를 생성할 때 가비지(Garbage) 생성이 일어나는 것이 맞습니다. 이는 잦은 할당과 해제가 일어나게 되면 가비지 컬렉터(GC)가 작동하여 게임의 프레임 드랍을 일으킬 수 있는 원인이 됩니다.

UniTask는 Coroutine의 이러한 단점을 개선하기 위해 나온 대안입니다. 주로 가비지 생성을 최소화하며 성능 개선을 목표로 합니다. UniTask는 태스크 기반의 비동기 프로그래밍을 지원하여, Coroutine에 비해 성능적으로 우수하고 가비지 생성을 적게 하여 보다 효율적인 메모리 관리가 가능합니다.

비록 Coroutine이 여전히 Unity에서 널리 사용되고 있지만, UniTask의 성능적 이점 및 가비지 생성 최소화 등의 장점으로 인해 점차 많은 개발자들이 사용을 고려하고 있습니다. 성능적인 차이가 크게 나지 않는다고 느낄 수 있지만, 프로젝트의 규모가 크거나 최적화가 중요한 프로젝트일 경우 UniTask의 사용을 고려해보는 것이 좋습니다.

답변이 도움이 되었기를 바랍니다. 추가적인 질문이 있으시다면 언제든지 문의해 주세요.

tkddlsdndb님의 프로필 이미지
tkddlsdndb

작성한 질문수

질문하기