본문 바로가기
Nodejs

[Node js]간단하게 배우는 동기, 비동기의 차이

by ★☁︎♣︎♥︎ 2022. 3. 2.
728x90
반응형
안녕하세요! CodingLog의 우동이입니다.
이번 시간에는 Passport를 아주 쉽게 사용하는 방법을 알려드리겠습니다!

1. 동기, 비동기가 무엇일까요?

  • 동기(Synchronous) : 요청과 그 결과가 동시에 일어난다는 약속입니다.
  • 비동기(Asynchronous) : 요청과 그 결과가 동시에 일어나지 않을 거라는 약속입니다.

2. 동기와 비동기의 장단점

  • 동기(Synchronous) : 설계가 매우 간단합니다. 하지만 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점이 있습니다.
  • 비동기(Asynchronous) : 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 호율적으로 사용하지만, 단점으로는 설계가 동기보다 복잡합니다.

동기 방식을 쓰는 것도 있고, 비동기 방식을 사용하는 것도 있습니다. 무조건 비동기가 좋은 게 아니에요!!

3.  동기, 비동기 처리

3-1) 동기 처리

console.log("test : 1")
console.log("test : 2")
console.log("test : 3")

위의 코드를 실행하게 되면 아래처럼 출력하게 됩니다.

test : 1
test : 2
test : 3

위에서 설명했듯이 동기는 하나가 끝나면 다음 코드가 실행되기 때문에 순서대로 출력이 됩니다.

 

3-2) 비동기 처리

console.log("test : 1")
setTimeout(()=>{
    console.log("test : 2")
},0)
console.log("test : 3")

 

여기서 setTimeout()은 콜백 함수입니다.

setTimeout()에서 숫자 0 은 지연시간입니다. 0초라면 당연히 test : 1, test : 2, test : 3이 출력이 되어야 합니다.

하지만 출력은

test : 1
test : 3
test : 2

일단 setTimeout()은 비동기적 메서드이기 때문에 다른 console부터 출력을 한 뒤에 setTimeout()의 console을 출력하게 됩니다.

 

이상으로 동기, 비동기의 차이를 배워보았습니다. 고생하셨습니다.

728x90
반응형

댓글