최종프로젝트를 진행하면서 관련된 데이터 스프레드 시트 파일을 Json화 하는 작업을
Tool이용하여 진행했었다. 하지만 Loading을 하면서 자동적으로 스프레드시트 데이터를
불러오는 방법을 채택했고 그와 관련된 기능을 구현했다. 그곳에서 async와 await를 주로
사용하며 작업을 진행했는데 이 개념에 대해 오늘 정리하고자 한다.
async란?
Asynchronous의 줄임말로 비동기 처리 구현을 가능하게 해주는 기능이다.
주로 Task와 같이 async Task ~~의 형태로 사용된다.
Task -> 작업의 단위를 반환해주는 변수
await란?
작업을 기다린다는 의미로 async와 같이 쓰이는 기능이다.
아무리 비동기 작업이라 한들 async 기능들이 모두 완료되지 않고
함수가 종료될 수 있는 문제가 있기 때문에 await를 이용하여
async작업을 기다린 후 진행하는 방법으로 사용한다.
코루틴과 async
그럼 비동기 작업하면 떠오르는 코루틴을 쓰면 안될까 생각할 수 있다.
하지만 코루틴은 비동기 싱글 스레드 작업이고
async는 비동기 경량 스레드 작업이다.
게임은 메인 스레드만 사용하기 때문에 async의 경량 스레드가 접근하면 안된다.
요약하자면 async를 게임상에서 쓸 수 있게 해준 것이 코루틴이다.
'TIL > Unity' 카테고리의 다른 글
[Unity] 델리게이트(Delegate)는 뭘까? (0) | 2024.02.02 |
---|---|
[Unity] 프로퍼티를 왜 사용할까? (0) | 2024.02.01 |
[Unity] 컴포지션 패턴 (컴포지트 패턴) (0) | 2023.12.11 |
[Unity] 주의해야 할 기능 Find (0) | 2023.11.29 |
[Unity] Scriptable Object 의 개념 (0) | 2023.11.28 |