본문 바로가기
프로그래밍

프로그래밍 동기와 비동기

by 지나팩 2022. 1. 12.

동기와 비동기에 대해선 프로그래밍을 배워본 사람이라면 그 개념을 잘 모르더라도 한번쯤은 들어봤을 단어일 것입니다. 저 역시도 계속 들어왔던 단어지만 그 개념은 아예 모르고 있었으니 말이죠. 그래서 동기와 비동기에 대해 정리해 보았습니다.

 

자 먼저 동기와 비동기는 프로그램에서 데이터를 받는 방식입니다. 쉽게는 데이터를 동시에 처리하느냐 아니냐에 따라서 나뉩니다.

출처 : https://webclub.tistory.com/605

동기 : synchronous

동기는 데이터를 동시에 처리한다고 했지만 그보단 데이터를 순차적으로 처리한다고 보는게 맞을것 같습니다. 만약에 서버에 데이터를 요청하면 그 데이터가 올 때까지 다른 작업은 수행하지 않는 것이죠. 데이터가 서버로부터 온다면 그 다음 작업들을 처리하게 됩니다. 개념은 아주 쉽죠??

 

장점의 경우 설계도 쉽고 직관적이지만 요청한 데이터가 오지 않는다면 무한정 기다려야겠죠??

비동기 : Asynchronous

비동기는 병렬적으로 데이터를 처리합니다. 앞선 작업이 종료가 되지 않았어도 다음 작업을 처리합니다. 만약 서버에 데이터를 요청 후 그 데이터가 오지않더라도 다음 작업을 수행합니다. 다른 작업을 수행 중 서버에 요청한 데이터가 온다면 데이터가 도착했다는 이벤트가 발생하게 됩니다. 그러면 중단했던 작업을 마무리하게 됩니다. 

 

장점은 요청한 데이터가 오지 않더라도 다른 작업을 수행할 수가 있다는 것이겠죠. 다만 설계가 복잡하기에 경험이 필요합니다. 그리고 설계를 할 수 있다고해도 무조건 좋은 건 아니겠죠. 상황에 따라 동기와 비동기를 적절히 활용해야 합니다.

 

지금까지 동기와 비동기에 대해서 알아보았습니다. 물론 이벤트에 대해서 공부를 좀 해야 더 이해가 쉽겠지만 동기와 비동기라는 개념이 이렇다 정도만 알아도 실제 작업시에 이해하기가 좀 더 쉬울수도 있겠네요.  

댓글