그냥 코드를

{A작업

3초후 B 작업

C작업} 이렇게 쓰면 결과로

A
C
B 이렇게 나오는데 이게 "기본적으로는 비동기식"인 언어인거 맞지?


근데 async랑 await 쓰면 "기본은 비동기식인데 이 구문을 쓰면 그 부분은 동기식으로 작업해줌" 이거 맞음?


내가 보는 책에서 표현을 어떤 식으로 했냐면


프로그램을 개발하다보면, Future 나 stream 으로 명시된 클래스의 객체를 리턴하는 경우가 여럿 있다.

이들은 비동기작업을 지원하기 위한 목적으로 만들어졌다. (이 부분이 이해가 안감. 기본이 비동기식 아닌가?) 

간단히 생각해서 두 개 이상의 작업이 동시에 수행된다고 보면 된다.
await는 Future 혹은 Stream을 리턴하는 함수나 메서드에만 쓸 수 있다.


라고 써져있는데


Future 나 Stream이나 쓰면 얘네도 기본적으로 비동기식으로 작동하는데, async랑 await 구문과 같이 쓰면 동기식으로 쓸 수 있다. 


라고 해석하면 맞음?