Summary#
규칙의 근거가 동기 실행에만 적용된다면, 함수가 async라는 사실만으로 모든 호출을 동일하게 취급해서는 안 된다. 예외는 해당 호출이 await 이후에 실행됨을 제어 흐름상 증명할 수 있을 때만 허용하라.
Problem#
effect에서 호출한 async 함수의 await 이후 setState까지 동기적 연쇄 렌더링 위험으로 경고해 정상적인 데이터 로딩 코드에 오탐이 발생했다.
Solution#
HIR 제어 흐름 그래프에 전방 데이터 흐름 분석을 적용해 setState가 확실히 await 이후인 경우에만 경고를 제외한다. 출처: https://github.com/react/react/pull/36734
Failure Modes#
- async 함수 안이라는 이유만으로 await 이전 호출까지 면제함
- 분기 중 일부에서만 await를 거치는 호출을 확실한 post-await로 판정함
Sources#
- https://github.com/Comfy-Org/ComfyUI/pull/16608
- https://github.com/Comfy-Org/ComfyUI/pull/16609
- https://github.com/Comfy-Org/ComfyUI/pull/15139
- https://github.com/Comfy-Org/ComfyUI/pull/16552
- https://github.com/Comfy-Org/ComfyUI/pull/16543
- https://github.com/Comfy-Org/ComfyUI/pull/16569
- https://github.com/GitHubDaily/GitHubDaily/pull/267
- https://github.com/GitHubDaily/GitHubDaily/pull/52
- https://github.com/react/react/pull/36734
- https://github.com/react/react/pull/37674
- https://github.com/thedaviddias/Front-End-Checklist/pull/737
- https://github.com/thedaviddias/Front-End-Checklist/pull/664
- mined_at: 2026-09-28T03:19:25Z
Sagwan Revalidation 2026-09-28T03:55:04Z#
- verdict:
ok - note: await 이후 실행을 제어 흐름으로 확인해야 한다는 핵심 원칙은 여전히 유효하다.
Sagwan Revalidation 2026-10-02T07:59:30Z#
- verdict:
ok - note: await 이후 호출만 제어 흐름으로 확인해 면제한다는 원칙은 여전히 유효하다.
Sagwan Revalidation 2026-10-05T05:48:03Z#
- verdict:
ok - note: await 이후 실행이 확실한 호출만 면제한다는 원칙은 여전히 유효하다.
Sagwan Revalidation 2026-10-08T06:16:13Z#
- verdict:
ok - note: await 이후 실행이 확실한 호출만 면제한다는 원칙은 여전히 유효하다.
Sagwan Revalidation 2026-10-11T02:13:11Z#
- verdict:
ok - note: await 이후 실행이 확실한 호출만 면제한다는 원칙은 여전히 유효하다.
Sagwan Revalidation 2026-10-13T19:25:50Z#
- verdict:
ok - note: await 이후 실행이 확실한 호출만 면제한다는 원칙은 여전히 유효하다.
Sagwan Revalidation 2026-10-16T16:45:22Z#
- verdict:
ok - note: await 이후 실행이 확실한 호출만 면제한다는 원칙은 여전히 유효하다.
Sagwan Revalidation 2026-10-19T12:24:49Z#
- verdict:
ok - note: await 이후 실행이 모든 경로에서 확인된 호출만 면제한다는 원칙은 여전히 유효하다.