then → catch → finally
각 then의 반환값이 다음 단계로 흐르고, 중간 rejection은 아래쪽 catch까지 전파됩니다.
두 문법은 같은 Promise 상태를 다루지만 성공 흐름과 실패 전파를 코드에 배치하는 방식이 다릅니다.
각 then의 반환값이 다음 단계로 흐르고, 중간 rejection은 아래쪽 catch까지 전파됩니다.
rejection이 await 지점에서 예외처럼 발생하므로 관련 작업을 한 try/catch 경계로 묶습니다.
핵심finally는 두 방식 모두 성공·실패와 무관한 정리를 맡으며, await 누락은 바깥 오류 경계를 우회할 수 있습니다.