본문으로 바로가기

동기 처리와 비동기 처리

category 기초지식/컴퓨터 공학 2018. 12. 24. 21:19

참고: 생활코딩, 파이썬과 함께하는 자료구조의 이해



동기 처리와 비동기 처리


 

동기 처리(Synchronous)

- 순서대로 처리

 비동기 처리(Asynchronous)

- 동적으로 처리하여 응답에 초점을 맞춤

기본개념(비유)

100명에게 이메일을 보내면

1 ~ 100까지 순서대로 메일 발송

100명에게 이메일을 한꺼번에 발송하여

발송 순서에 상관없이 메일 발송에 대한 응답만 받음

속도

프로세스가 순서대로 하나씩 처리하여 속도가 빠르다.

프로세스 컨텍스트 스위칭이 자주 발생하기 때문에 비교적 느리다

N번째 코드의

데이터가 많을 경우

만약 N번째 작업이 오래 걸릴 경우

브라우저가 멈춰 있는 것처럼 보인다.

처리되는 코드들은 백그라운드에서 계속 작업하며

클라이언트에게 서서히 보여지기 때문에 멈춰있는 것처럼 보이진 않는다.


구글링도 해보고 유투브 영상도 찾아봤는데 웹 서비스에서는 비동기 처리 방식으로 데이터를 핸들링한다고 한다.


아마 컴퓨터 사양이 과거에 비해 비약적으로 좋아졌기 때문이기도 하고 일반적으로 핸들링하는 데이터의 크기가 커도 감당할 수준이기 떄문이지 싶다.



추가(2018-12-25)


네이버TV 에서 { TOP100 // 추천재생목록 // 테마별 인기영상 } 등의 카테고리가 있는데 각각 서버에서 클라이언트로 보내주는 코드는 분리되어 동작할 것이다.


스터디카페의 인터넷이 느린 덕분(?)에 알게 된.....그러나 정확하진 않지만 개념은 맞는 것 같다.



TOP100 의 동영상 클립들은 이미지까지 모두 Response 되었지만


최신 테마별 인기영상의 중간 중간 몇개의 동영상 클립은 뒤늦게 Response 가 완료되는 것을 보았다.



비동기 처리로 코드를 구현하게 되면 유저의 이탈 확률이 적어지는 것도 하나의 장점이 아닐까 싶다.