
1. 들어가며
이번 글은 실제로 현업에게 설명할 때 사용하여 쉽게 이해가 되었다는 예로 작성 해 보겠습니다.
많이 사용되는 단어는 아니지만 "그건 비동기식으로 처리하는게 나을 것 같아요."라던지,
"비동기 요청의 결과에 따라..."라는 말을 들었을 때 뉘앙스만 캐치할 수 있도록 설명 해 보겠습니다.
2. 동기
동기사랑 나라사람의 그 동기가 아닙니다.
요청과 처리결과가 동시에 일어난다는 의미인데,
요청을 하면 시간이 얼마가 걸리던지 처리 결과가 나올 때 까지 기다린다는 의미입니다.
동기 방식은 방망이 깎던 노인을 생각하면 됩니다.
상대방의 현재 상황이 바쁘건, 어떠하건 일이 끝날 때 까지 기다리라고 합니다.
서버는 "처리해야 할 것은 다 처리해야 결과가 나오지, 요청이 재촉한다고 결과가 되나."라고 합니다.
아무리 요청자가 "요청한 사람이 좋다는데 무얼 더 처리한다는 말이오? 서버, 외고집이시구먼."이라고 해도
서버는 "다른데 가...지는 말고 조금만 더 기다리시오. 처리중이니"이라고 할 것입니다.
처리 결과를 보니 정확한 결과라고 야단입니다. 수작업이었다면 밤샘 작업을 했을 것이라는 것입니다.
다음 요청을 넣고 또 기다립니다.
방망이 깎던 노인의 주인공은 다른 곳을 갈 수도, 다른 일을 하고 있었을 수도 있습니다.
하지만 노인 앞에 앉아 일의 처리가 끝나기만을 기다립니다.
방망이가 완성되고나서야 다음 일인 귀가를 한 것, 이러한 처리방식이 동기방식입니다.
3. 비동기
비동기는 요청과 처리결과가 동시에 일어나지 않는다는 의미입니다.
이마트에 갔을 때를 예로 들어보겠습니다.
장을 보다가 피자코너에 피자를 주문을 합니다.
"30분 정도 뒤에 오세요."라고 점원이 이야기 합니다.
기다리는 동안 시식코너에서 고기도 먹고,
운동용품 코너에서 아령도 들어보고,
라면을 장바구니에 담고...
여기저기 기웃기웃 거리다가 30분이 지나 피자코너에서 제가 주문한 피자가 나옵니다.
피자 주문이라는 요청을 넣었지만, 요청자는 그동안 온갖일을 다 할 수 있습니다.
동기 방식에 예를 들었던 방망이 깎던 노인의 요청자가, 방망이를 주문하고 앞에서 기다리는 동안 신문을 읽고 있었다면 비동기 처리방식일 것입니다.
4. 각 방식의 장단점
동기 방식은 한번에 한 작업을 시키니, 처리가 빠르고, 설계 및 구조가 간단하여 이해하기 쉽다는 장점이 있습니다.
하지만 처리가 매우 오래 걸리는 작업의 경우 웹페이지는 하얀 화면을 봐야 할 것입니다.
10분이건, 20분건 기다려야 합니다.
비동기 방식의 장점은 클라이언트가 무한정 기다리는 현상을 방지해 준다는 장점이 있습니다.
하지만 구조가 복잡해질 수 있고, 부하가 생성될 수 있다는 단점이 있습니다.
만약 반드시 순서대로 처리되어야 하는 일, 처리 결과에 따라 다른 처리방식이 적용되어야 하는 일이 있다면 동기 방식으로 처리 해야 할 것이고,
결과와 무관하게 다른 일이 처리되어도 된다면 비동기 방식으로 처리해야 할 것입니다.
5. 마치며
두 방식은 사용하는 곳이 다르기 때문에 요소마다 알맞게 사용된다면 좋은 경험을 사용자에게 줍니다.
이 글은 정확한 지식을 전달하기 위한 글이 아니며, 각 단어의 뉘앙스만 전달하기 위한 글입니다.
제 글이 도움이 되셨기를 바랍니다.
이전 글은 아래 링크!
웹개발자와 대화하기 위한 단어 사전 #2. 서버/클라이언트
'정보' 카테고리의 다른 글
웹개발자와 대화하기 위한 단어사전 #6. 죽이다/살리다, 내리다/올리다 (0) | 2020.08.29 |
---|---|
웹개발자와 대화하기 위한 단어 사전 #4 데이터베이스 (0) | 2020.08.27 |
웹개발자와 대화하기 위한 단어사전 #3. GET, POST (0) | 2020.08.26 |
웹개발자와 대화하기 위한 단어 사전 #2. 서버/클라이언트 (0) | 2020.08.25 |
웹개발자와 대화하기 위한 단어 사전 #1. HTTP (0) | 2020.08.24 |