본문 바로가기
Flutter

플러터에서 비동기 처리: Return, then, 그리고 try-catch 사용법

by Maccrey Coding 2024. 7. 31.
728x90
반응형

 

비동기 프로그래밍은 Flutter 애플리케이션 개발에서 매우 중요한 개념입니다.

비동기 작업을 통해 네트워크 요청이나 파일 입출력과 같은 시간이 오래 걸리는 작업을 처리할 수 있습니다.

이 블로그에서는 Flutter에서 비동기 처리를 위한 return, then, 그리고 try-catch의 사용법과 사용 이유에 대해 초보자도 쉽게 이해할 수 있도록 설명하겠습니다.

 

비동기 프로그래밍이란?

비동기 프로그래밍은 특정 작업이 완료될 때까지 기다리지 않고 다른 작업을 계속 수행할 수 있도록 하는 프로그래밍 방식입니다. Dart에서는 Future와 async/await 키워드를 사용하여 비동기 프로그래밍을 쉽게 구현할 수 있습니다.

Future와 async/await

Future는 비동기 작업의 결과를 나타내는 객체입니다. async/await 키워드는 비동기 작업을 동기 코드처럼 읽기 쉽게 만들어 줍니다.

예제 코드: 기본적인 async/await 사용법

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: AsyncExample(),
    );
  }
}

class AsyncExample extends StatefulWidget {
  @override
  _AsyncExampleState createState() => _AsyncExampleState();
}

class _AsyncExampleState extends State<AsyncExample> {
  String _data = "Loading...";

  @override
  void initState() {
    super.initState();
    fetchData();
  }

  Future<void> fetchData() async {
    // 비동기 작업 시뮬레이션 (예: 네트워크 요청)
    await Future.delayed(Duration(seconds: 2));
    setState(() {
      _data = "Data loaded!";
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Async Example'),
      ),
      body: Center(
        child: Text(_data),
      ),
    );
  }
}

then 사용법

then 메서드는 Future가 완료된 후 실행할 코드를 정의하는 데 사용됩니다. 콜백 함수 형태로 작성됩니다.

예제 코드: then 사용법

Future<void> fetchData() {
  return Future.delayed(Duration(seconds: 2)).then((_) {
    setState(() {
      _data = "Data loaded with then!";
    });
  });
}

try-catch 사용법

try-catch는 비동기 작업 중 발생할 수 있는 예외를 처리하는 데 사용됩니다. await와 함께 사용하여 예외를 안전하게 처리할 수 있습니다.

예제 코드: try-catch 사용법

Future<void> fetchData() async {
  try {
    await Future.delayed(Duration(seconds: 2));
    setState(() {
      _data = "Data loaded with try-catch!";
    });
  } catch (e) {
    setState(() {
      _data = "Error occurred: $e";
    });
  }
}

왜 비동기 처리를 사용할까요?

  1. 사용자 경험 개선: 네트워크 요청이나 파일 입출력 작업이 완료될 때까지 기다리지 않고 UI를 반응성 있게 유지할 수 있습니다.
  2. 앱 성능 향상: 메인 스레드가 블록되지 않아 애플리케이션이 더 빠르고 부드럽게 동작합니다.
  3. 에러 처리: 비동기 작업 중 발생할 수 있는 에러를 효과적으로 처리할 수 있습니다.

결론

Flutter에서 비동기 프로그래밍은 애플리케이션의 성능과 사용자 경험을 향상시키는 중요한 기술입니다.

return, then, 그리고 try-catch를 사용하여 비동기 작업을 효과적으로 처리하고, 예외를 안전하게 관리할 수 있습니다.

이번 블로그를 통해 비동기 처리의 기본 개념과 실용적인 사용법을 이해하셨길 바랍니다.

 

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

728x90
반응형