개발자기본지식

#15강. 컴퓨터는 멍청이 ! 비동기란

JJJAEOoni 2021. 12. 22. 22:23
반응형

동기와 비동기의 개념에 대해 알아보자.

동기 프로그래밍을 이해할 때 '동기'라는 단어에 대해 구분이 필요하다.

프로그래밍을 할 때 동기와 데이터 영역에서의 동기는 의미가 다르다.

 

데이터 영역에서의 동기는 데이터가 일치하는 것을 말한다.

 

휴대폰에 사진 1, 사진 2 두장의 사진이 있다.

내 클라우드에 사진1만 업로드되어있으면 동기화되지 않은 상태를 말한다. 

동기화되지 않았다는 것은 데이터가 일치하지 않았다는 말이다.

 

프로그래밍을 할 때의 동기는 일의 순서가 있다는 말이다.

 

* 예를 들어 학교 가기 알고리즘이 있다고 치자.

① 일어나기

② 세수, 양치하기

③ 아침밥먹기

④ 스쿨버스 타기

 

이 알고리즘은 ②를 먼저 할 수 없고 ①번이 끝나야 ②를 할 수 있다.

이렇게 일의 순서가 존재하는 것이 동기이다.

 

반대로 일의 순서가 존재하지 않는 것이 비동기 프로그래밍이다.

 

* 하루 일과 알고리즘이 있다.

① 빨래하고 널기

② 청소하기

③ 공부하기

 

세탁기가 빨래를 할 때 1시간이 걸린다.

동기 프로그램의 경우 빨래를 시작 후 끝날 때까지 아무것도 못하고 멍 때리게 된다.

비동기 프로그램의 경우 세탁기가 돌아가는 1시간 동안 ② 청소하기를 할 수 있다.

청소가 끝나고 ③ 공부를 하는 도중에 빨래가 끝나면 하고 있는 공부를 중단하고

빨래를 널고 다시 돌아와 공부를 한다.

 

이게 비동기 프로그래밍이다.

 

* 초당 10개의 처리를 하는 cpu가 있다.

 

① 10개 처리

② 10개 처리 후 처리한 기록 하드디스크에 저장

③ 10개 처리

 

①을 하는데 1초가 걸리고

②를 처리하는 동안 1초가 걸리는데 하드디스크에 저장하는 시간이 1분이 걸린다고 한다면

동기 프로그램은 cpu의 할 일은 끝났는데 하드디스크에 저장하는 동안 멍 때리게 된다.

하드디스크에 저장하는 동안 cpu가 ③을 처리하고 다른 일을 하는 게 비동기 프로그램이다.

 

이게 바로 비동기 프로그래밍을 써야 하는 이유이다.

cpu의 노는 시간이 줄어들어 퍼포먼스가 좋아지기 때문이다.

 

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형