데이터 처리 모델
데이터 처리 모델은 데이터를 받는 방식으로, 동기식 처리와 비동기식 처리 모델이 존재
동기(Synchronous)
- 데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것. 직렬적으로 일을 처리한다. 즉, 요청이 들어오면 순차적으로 작업을 수행하고 해당 작업이 수행중일때 다른 작업은 대기.
- 사용자가 데이터를 서버에게 요청하면 그 서버가 데이터 요청에 따른 응답을 사용자에게 다시 리턴해주기 전까지 다른 활동을 할 수 없다. 한 개의 데이터 요청에 대한 서버의 응답이 이루어질 때까지 계속 대기
- 여러 요청을 동시에 처리할 수 없다.
비동기(Asynchronous)
- 동시에 일어나지 않는것. 요청과 결과가 동시에 일어나지 않을 거라는 약속이다. 하나의 요청에 따른 응답을 즉시 처리하지 않아도, 그 대기 시간동안 또 다른 요청에 대해 처리 가능한 방식.
- 병렬적으로 일을 처리한다. 즉, 요청이 들어오면 해당 요청에 의한 작업이 끝나지 않았더라도 계속 요청을 받는다. 그리고 작업이 끝났다는 이벤트가 오면 해당 요청을 처리한다.
- 여러 개의 요청을 동시에 처리할 수 있는 장점이 있다.
동기 방식은 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점이 있다.
비동기 방식은 동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점이 있다.
동기와 비동기는 어떤 작업 혹은 그와 연관된 작업을 처리하고자 하는 시각의 차이이다.
비동기는 추구하는 같은 행위(목적)가 동시에 이루어지며, 비동기는 추구하는 행위(목적)가 다를 수도 있고, 동시에 이루어지지도 않는다.
블록과 논블록
비동기 방식 예제를 통해 블록과 논 블록의 차이를 간략하게 설명하면, 학생이 시험지를 선생에게 건낸 후 가만히 앉아 채점이 끝나 시험지를 돌려받기만을 기다린다면 학생을 블록 상태이다. 하지만 학생이 시험지를 건낸 후 선생에게 채점이 완료되었다는 전송을 받기 전까지 다른 과목을 공부한다거나 게임을 한다거나 다른 일을 하게 되면 학생의 상태는 논 블록 상태이다.
https://learnjs.vlpt.us/async/
https://tlsdnjs12.tistory.com/12
'IT > CS' 카테고리의 다른 글
[CS] OOP란 (1) | 2023.11.13 |
---|---|
Coroutine, Thread 차이와 특징 (1) | 2023.11.08 |
[CS] 동기와 비동기 (0) | 2023.11.06 |
[CS] CPU 바운드, I/O 바운드 (0) | 2023.11.06 |