[flutter] 플러터 get과 리팩토링

플러터(Flutter) 앱을 개발하다 보면 데이터를 가져오는 작업(get)과 코드를 개선하는 작업(리팩토링)은 반드시 필요합니다. 이번 글에서는 플러터에서 데이터를 가져오는 방법 및 코드 리팩토링에 대해 알아보겠습니다.

1. Get

데이터를 가져오는 작업은 전형적으로 API 호출 또는 데이터베이스 쿼리와 같은 비동기 작업을 수반합니다. 플러터에서는 http 패키지를 사용하여 API 호출을 처리하거나 sqflite 등의 패키지를 사용하여 데이터베이스 작업을 수행할 수 있습니다. 데이터를 가져오는 코드는 보통 Futureasync/await 키워드를 사용하여 비동기적으로 처리됩니다.

import 'package:http/http.dart' as http;

Future<String> fetchData() async {
  final response = await http.get('https://api.example.com/data');
  if (response.statusCode == 200) {
    return response.body;
  } else {
    throw Exception('Failed to fetch data');
  }
}

위 예제에서는 http 패키지를 사용하여 GET 요청을 보내고, 응답이 성공하면 데이터를 반환하고 실패하면 예외를 던지는 방식으로 데이터를 가져오는 과정을 보여줍니다.

2. 리팩토링

리팩토링은 기존의 코드를 다듬고 개선함으로써 가독성을 높이고 유지보수를 쉽게 만드는 작업입니다. 플러터 앱에서도 코드 리팩토링은 중요한 작업으로, 일반적으로 함수를 분리하거나 중복 코드를 제거하는 등의 작업을 포함합니다.

예를 들어, 위에서 사용한 데이터를 가져오는 코드를 별도의 함수로 분리하여 리팩토링할 수 있습니다.

Future<String> fetchData() async {
  final response = await _fetchDataFromApi();
  return _processData(response);
}

Future<String> _fetchDataFromApi() async {
  final response = await http.get('https://api.example.com/data');
  if (response.statusCode == 200) {
    return response.body;
  } else {
    throw Exception('Failed to fetch data');
  }
}

String _processData(String data) {
  // process the data here
  return data.toUpperCase();
}

위 예제에서는 fetchData 함수를 리팩토링하여 데이터를 가져오는 부분과 처리하는 부분을 각각 별도의 함수로 분리했습니다. 이를 통해 fetchData 함수가 더욱 간결해지고 가독성이 향상되었습니다.

결론

플러터에서 데이터를 가져오는 작업과 코드를 개선하는 작업은 앱 개발 과정에서 중요한 부분입니다. 적절한 get과 리팩토링을 통해 효율적이고 유지보수가 쉬운 앱을 개발할 수 있습니다. 플러터의 강력한 비동기 처리 기능과 코드 구조화 기능을 활용하여 더 나은 앱을 만들어보세요.

Flutter 공식 문서

http 패키지

sqflite 패키지