동기 / 비동기

Now, Sophia·2021년 12월 12일
1

TIL_JAVASCRIPT

목록 보기
15/15
post-thumbnail

▶︎ 동기 (Synchronous)

요청과 그 결과가 동시에 일어난다는 약속.
서버에 요청을 하고 시간이 얼마나 걸리던지 응답이 돌아와야 다음 동작을 하는 방식

console.log('a')
console.log('b')
console.log('c')

순서대로 a -> b -> c 로 출력된다.

▶︎ 비동기 (Asynchronous)

서버에 요청을 하고 난 후, 결과를 기다리지 않고 다음 동작을 하는 방식.
결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 하여 효율적으로 시간을 활용

console.log('a')
setTimeout(()=> console.log('b'),2000)
console.log('c')

a -> c -> b 가 출력된다.

🧐How and Why?

setTimeout(), setInterval() 등 해당 method는 비동기처리 함수로써 2개의 인자를 받는다.

첫번째 인자는 실행할 함수나 로직, 두번째 인자는 시간이다.

해당 함수가 호출되면, 지정된 시간을 지난 후에 다음 로직이 실행되는 것이다.
그리고 지정된 시간 동안에는 다음 작업을 진행한다.

따라서 setTimeout이 호출되고서 b는 2초 후에 출력되는 동안 다음 작업을 기다리지 않고 c가 출력된 것이다.

이러한 흐름을 비동기라고 한다.

비동기는 결과가 주어지는데 시간이 걸려도 그 시간동안 다른 작업을 할 수 있어서 보다 효율적일 수 있다.

비동기 관련 코드는 실시간구현 에서 확인 해 주세요!

profile
Whatever you want

0개의 댓글