동기 / 비동기

이민석·2022년 3월 13일
0

동기 / 비동기

개발을 공부하다 보면 동기 방식으로 동작하도록 설계된 언어라는 말을 접하게 된다. 프론트 개발자에게 어깨 너머로 듣기로는 동기는 우선적으로 실행되는 함수고, 비동기는 동시에 실행되는 함수라는 표현을 했다. 프로젝트 기간이어서 그렇게 이해하고 넘어갔지만, fastapi를 배우려다 보니 동기, 비동기 개념을 다시 만나게 됐다. 이번 기회에 개념을 정리하고 넘어가자.

'동기, 비동기'란 무엇일까?

일반적으로 함수를 호출하게 되면 시작부터 함수가 종료되거나 return을 해야 호출권이 돌아가게 된다. 한 마디로, 직전 함수가 종료되지 않는다면 다른 작업은 진행되지 않는다. 이러한 방식을 동기 함수라고 한다.


반면에 비동기f는 함수가 호출되고 난 후 종료되지 않아도 호출 제어권을 다시 넘겨주는 동작 방식이다. 돌려받은 제어권으로 다음 함수를 호출하면서, 직전에 호출된 함수는 백그라운드 환경에서 작업을 진행하고 완료된 작업은 처리 결과를 콜백(callback)호출하여 통보받는다. 이러한 특성으로 인해 비동기 함수는 결과를 보장받지 못한다.

출처
비동기 함수- asynsio
비동기 프로그래밍 동작 원리

profile
오늘은 무엇을 배울까

0개의 댓글