42서울 라피신을 올해 1월에 시작하고 3월에 본과정을 오니 눈 깜짝할 새 반년이 지나가버렸네요.

FU8OclDakAEU49p.jpeg

모두들 원하는 목표를 향해 열심히 달려가시던데 저도 영향을 많이 받고 있습니다. 그렇지만 아직 1서클…

이제 시작해보겠습니다!


이번에는 Dart 문법 중 비동기 처리에 대해서 알아보겠습니다.

Flutter에서는 비동기 처리를 위한 방법이 두가지가 있습니다.

바로 FutureStream입니다. 이 둘은 언제 쓰고 어떻게 쓰는지 이번에 알아보겠습니다.

비동기 방식을 사용하는 이유를 알기 위해선 먼저 동기 방식이 어떤지 알아야 합니다.

순차적으로 실행되는 동기 방식에선 어떤 동작을 실행시켰을 때 그 결과가 반환될때까지 대기합니다.

그런데 자원 사용이 많은 처리 때문에 기다리는 동안 다른 동작을 할 수 없어 자원을 효율적으로 사용하지 못했습니다.

이런 방식은 단일 프로그램인 경우에는 별 문제가 없었지만 대규모 웹서비스 같은 곳에서 하는 선착순 이벤트 같은 기능에서는 한 순간에 상당히 많은 요청이 발생했기 때문에 이로 인해 고객이 이탈하는 문제점을 해결하고자 비동기 방식 처리 각광받게 되었습니다.

왜 비동기 방식이 요청이 많아질 때 효율적인지 아래 이미지를 보면 이해가 쉬울겁니다.

동기 방식과 비동기 방식의 처리 비교

동기 방식과 비동기 방식의 처리 비교

위 이미지처럼 비동기 방식을 유용하게 쓰이는 곳은 사실 백엔드입니다.

서버를 향해 날아오는 요청들을 순차적으로 처리하기 보단, 각 요청들을 비동기 방식으로 받아들이고 처리가 끝난 이후 돌려주면 지연시간이 짧아지기 때문입니다.