내일배움캠프 26일차 TIL - 코루틴 맛보기

권태하·2024년 5월 22일
post-thumbnail

캠프에 들어오고 몇 주간 코딩을 해보며 많이 들었던 용어가 코루틴이다.

반복적인 행위와 관련된 용어란 것은 알았지만, 제대로 알아볼 기회가 없어서 일단 궁금증만 있는 상태였는데, 오늘 캠프에서 관련 특강이 있었기 때문에 한 번 정리해보려고 한다.

코루틴 특징

  1. 처리와 처리 사이에 대기 시간을 넣을 수 있다.
  2. 여러 작업을 동시에 병렬처리처럼 보이도록 처리해준다.
  3. 실제로 병렬처리가 이루어 지는 것은 아니고, 처리가 빠르게 이루어져 병렬처럼 보인다.

코루틴을 실행시키는 법

  • 필수조건
    코루틴은 IEnumerator라는 반환형으로 시작해야한다.
    - 기본적으로 StartCorouting(코루틴함수); 로 실행. Yield Return으로 반환
  1. 코루틴 함수 자체를 넣기
  2. 코루틴 함수의 이름을 string으로 넣기
  3. 코루틴 함수를 Ienumerator, Coroutine 변수에 할당하여 넣기

Yield 용법

  1. yield return null : 해당 프레임의 Update문이 끝나면 해당 라인 다음 구문 실행
  2. yield return new WaitForEndOfFram : 한 프레임이 완전히 종료될 때(화면 렌더링까지 끝났을 때 해당 라인 다음 구문 실행
  3. yield return new WaitForFixedUpdate() : 해당 프레임의 FixedUpdate문이 끝나면 해당 라인 밑 부분 실행
  4. yield return new WaitForSeconds(value): 파라미터 Value 값의 시간이 지나면 해당 라인 밑 부분이 실행
  5. yield return new WaitForSecondsRealTime(value): 파라미터 value 값의 실제 시간이 지나면 해당 라인 밑 부분 실행
  6. yield return new WaitUntil(Func): 파라미터 Func의 결과가 true가 나오면 해당 라인 밑 부분 실행
  7. yield return new WaitWhile(Func): 파라미터 Func의 결과가 false 가 나오면 해당 라인 밑 부분 실행
  8. yield return StartCoroutine(): 새로 실행시킨 코루틴이 종료되면 해당라인 밑 부분 실행

코루틴 사용처

내가 지금까지 코드를 작성할 때, 반복해서 실행되야 하는 것들은 대부분 Update문을 사용해 실행을 해왔다. 그러다보니 더 이상 반복이 필요없는 코드도 들어가있어서 너무 비효율적인가? 라는 생각을 할 때가 있었는데, 코루틴을 사용하면 Update문이 아닌 곳에서도 Update처럼 반복해서 실행이 되게 코딩을 할 수 있다.

profile
스터디 로그

0개의 댓글