최대 1 분 소요

데이터 동기 처리

기존의 동기적(Synchronous) 프로그래밍은 하나의 요청이 처리 완료 되어야 다음 요청이 처리가 가능했다.

하나의 요청이 처리 되는 동안 다른 요청은 처리되지 못하며 기존의 요청이 처리 완료 될때까지 다른 요청은 기다려야만 한다.

이는 동시에 다른일을 함께 처리할 수 없다는 것이다.



데이터 비동기 처리

Node.js는 데이터를 비동기적(asynchronous)으로 처리한다. 동시에 두가지 일을 할 수 있다는 뜻이다.

Node.js의 setTimeout() 함수를 통해 Node.js의 비동기 데이터 처리를 확인해 볼 수 있다.

console.log("test1")

setTimeout(function(){
    console.log("test2")
}, 5000)

console.log("test3")


위의 코드를 동기적으로 해석해보자.

1. test1 출력
2. test2 출력
3. 5000ms 정지
4. test3 출력


하지만, Node.js는 비동기적 처리를 하기 때문에 다음과 같이 해석된다.

1. test1 출력
2. setTimeut 5000ms 정지하는 동안 test3 출력
3. setTimeout 내의 함수 실행 (test2 출력)


Node.js가 5000ms 를 기다리라는 뜻은, setTimeout() 내 함수를 실행 후 5초를 기다리라는 뜻이 아니다.

setTimeout() 내 함수(test2 출력) 를 5초후 실행하며, 5초를 기다리는 동안 다음 요청을 처리한다는 뜻이다.


그렇기 때문에 아래와 같이 출력된다.

test1
test3
test2

댓글남기기