패스잇
모바일 개발 · 중급

Dart 언어에서 `Future`와 `Stream`의 차이점을 설명하고, Flutter 앱에서 각각 어떤 상황에 활용될 수 있는지 실제 코드 예시와 함께 설명해주세요.

힌트 · Future는 단일 비동기 결과를 처리하는 반면, Stream은 시간의 흐름에 따라 여러 비동기 이벤트를 처리합니다. 네트워크 요청에는 Future, 실시간 데이터(채팅, 센서 데이터)에는 Stream이 적합합니다.

비동기단일 값다중 값awaitasync*

모범답안

면접관님, Dart에서 Future와 Stream은 모두 비동기 프로그래밍을 위한 도구이지만, 처리하는 데이터의 성격에 차이가 있습니다.

Future는 미래에 완료될 작업의 결과를 나타냅니다. 단 한 번의 값을 반환하죠. 예를 들어, 서버에 데이터를 요청하고 응답을 받는 경우에 Future를 사용합니다. await 키워드를 사용하여 결과를 기다릴 수 있습니다.

반면 Stream은 시간의 흐름에 따라 여러 개의 데이터를 순차적으로 방출하는 비동기 데이터의 흐름입니다. 실시간으로 업데이트되는 데이터, 예를 들어 센서 데이터나 채팅 메시지를 처리할 때 유용합니다. async* 키워드를 사용하여 Stream을 생성할 수 있습니다.

Flutter 앱에서 Future는 HTTP 요청, 데이터베이스 쿼리 등 한 번만 실행되는 비동기 작업에 사용되고, Stream은 Firebase의 실시간 데이터베이스 변경 감지, WebSocket을 통한 실시간 데이터 수신 등에 활용될 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Flutter / Dart 면접 질문

← Flutter / Dart 면접 질문 전체 보기