백엔드
코틀린 코루틴 예외 처리, 어떻게 해야 할까?
두줄요약
코틀린 코루틴의 예외가 부모-자식 관계를 따라 전파되며 전체 취소로 이어지는 과정을 설명했습니다. 실무에서는 발생 지점 처리와 supervisorScope 같은 방법으로 전파 범위를 조절하는 방식이 필요합니다.
핵심 내용
- 코틀린 코루틴에서 예외가 부모-자식 관계를 따라 전파되며 전체 계층 취소로 이어질 수 있는 동작 원리
- 구조화된 동시성 관점에서 예외 전파와 취소의 영향 범위 분석
- 예외 처리 방식별 적합성 비교와 실무 적용 가능성 검토
주의할 점
- CoroutineExceptionHandler는 로깅 용도에 가깝고 전파 차단에는 한계
- launch를 감싼 try-catch는 생성 시점 예외만 다루고 실행 중 예외는 막지 못함
- Job으로 부모 관계를 끊으면 취소 범위는 줄지만 구조화된 동시성이 약화될 수 있음
적용해볼 점
- 개별 코루틴 내부의 예외는 발생 지점에서 직접 처리
- 독립적 실패 허용이 필요하면 supervisorScope 활용
- SupervisorJob 적용 시에는 전체 스코프 구조와 전파 범위 점검
