코루틴 빌더, 컨텍스트, 잡과 자식 코루틴 기다리기 (Coroutine DEEP DIVE)
취소 기본적인 취소 코루틴을 취소하기 위해 사용되는 예외(exception)은 or 이 예외의 서브 타입이어야 한다. Job 인터페이스는 취소하기 위한 메소드를 가지고 있다. 이 메소드를 호출할 때 호출 시점에 잡을 끝낸다. 잡이 자식을 가지고 있다면, 자식들도 취소된다. 부모는 영향받지 않는다. 취소된 잡은 더이상 코루틴의 부모로 사용될 수 없다. 취소된 잡은 상태가 되었다가 상태로 바뀐다. 메소드도 알고 넘어가자.
이 호출된 뒤, 다음 작 업을 진행하기 전에 을 호출하면 취소 과정이 완료되는걸 기다리게 된다. 우리는 명시적인 시점을 핸들링 하기 위해 을 사용하는 사례가 많을거다.
그래서 이 둘을 세트로 호출할 수 있는 확장 함수 를 잘 활용하자. 하위에 생성된 수많은 자식 잡을 한 번에 취소할 수 있다는 점도 알고 가자. 취소는 어떻게 작동하는가? 이 취소되면 상태로 바뀐다. 상태가 바뀐 뒤, 첫 번 째 중단점에서 예외를 던진다. 예외는 로 잡을 수도 있…