42서울 라피신을 올해 1월에 시작하고 3월에 본과정을 오니 눈 깜짝할 새 반년이 지나가버렸네요.
모두들 원하는 목표를 향해 열심히 달려가시던데 저도 영향을 많이 받고 있습니다. 그렇지만 아직 1서클…
이제 시작해보겠습니다!
이번에는 Dart 문법 중 비동기 처리에 대해서 알아보겠습니다.
Flutter에서는 비동기 처리를 위한 방법이 두가지가 있습니다.
바로 Future와 Stream입니다. 이 둘은 언제 쓰고 어떻게 쓰는지 이번에 알아보겠습니다.
비동기 방식을 사용하는 이유를 알기 위해선 먼저 동기 방식이 어떤지 알아야 합니다.
순차적으로 실행되는 동기 방식에선 어떤 동작을 실행시켰을 때 그 결과가 반환될때까지 대기합니다.
그런데 자원 사용이 많은 처리 때문에 기다리는 동안 다른 동작을 할 수 없어 자원을 효율적으로 사용하지 못했습니다.
이런 방식은 단일 프로그램인 경우에는 별 문제가 없었지만 대규모 웹서비스 같은 곳에서 하는 선착순 이벤트 같은 기능에서는 한 순간에 상당히 많은 요청이 발생했기 때문에 이로 인해 고객이 이탈하는 문제점을 해결하고자 비동기 방식 처리 각광받게 되었습니다.
왜 비동기 방식이 요청이 많아질 때 효율적인지 아래 이미지를 보면 이해가 쉬울겁니다.
동기 방식과 비동기 방식의 처리 비교
위 이미지처럼 비동기 방식을 유용하게 쓰이는 곳은 사실 백엔드입니다.
서버를 향해 날아오는 요청들을 순차적으로 처리하기 보단, 각 요청들을 비동기 방식으로 받아들이고 처리가 끝난 이후 돌려주면 지연시간이 짧아지기 때문입니다.