[flutter] 플러터 get과 데이터 처리

플러터(Flutter) 앱을 개발하다보면 인터넷을 통해 데이터를 가져와야 하는 경우가 많습니다. 이때 http 패키지를 사용하여 HTTP 통신을 수행하고, 가져온 데이터를 처리할 수 있습니다. 이번 글에서는 플러터에서 get 함수를 사용하여 HTTP GET 요청을 보내고, 가져온 데이터를 처리하는 방법에 대해 살펴보겠습니다.

1. HTTP 통신

먼저, http 패키지를 사용하기 위해 pubspec.yaml 파일에 다음과 같이 의존성을 추가합니다.

dependencies:
  http: ^0.13.3

의존성을 추가한 뒤에는 pub get 명령어를 실행하여 패키지를 다운로드 받습니다. 이제 http 패키지를 사용하여 HTTP 통신을 수행할 수 있습니다.

2. 데이터 가져오기

가장 간단한 형태의 HTTP GET 요청을 보내고, 데이터를 가져오는 방법은 다음과 같습니다.

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

void fetchData() async {
  var url = Uri.parse('https://api.example.com/data');
  var response = await http.get(url);
  if (response.statusCode == 200) {
    // 데이터 가져오기
    var data = response.body;
    // 데이터 처리
    processData(data);
  } else {
    // 요청 실패 처리
    print('Failed to load data: ${response.statusCode}');
  }
}

void processData(String data) {
  // 데이터 처리 로직 구현
}

위 코드에서 fetchData 함수는 지정된 URL로 GET 요청을 전송하고, 가져온 데이터를 처리하는 예제입니다. http.get 함수를 사용하여 GET 요청을 보내고, 응답으로 받은 데이터는 response.body를 통해 가져올 수 있습니다. 이후에는 가져온 데이터를 처리하는 processData 함수를 정의하여 데이터를 활용할 수 있습니다.

3. 데이터 모델링

가져온 데이터를 효율적으로 처리하기 위해서는 데이터의 구조에 맞는 모델을 만들어야 합니다. 예를 들어 JSON 형식의 데이터를 다룰 때는 해당 데이터 구조에 맞는 모델 클래스를 정의하여 사용하게 됩니다.

class DataModel {
  final int id;
  final String title;

  DataModel({required this.id, required this.title});

  factory DataModel.fromJson(Map<String, dynamic> json) {
    return DataModel(
      id: json['id'],
      title: json['title'],
    );
  }
}

위 코드는 JSON 데이터의 구조에 맞게 DataModel을 정의하는 예시입니다. fromJson 팩토리 메서드를 통해 JSON 데이터를 모델로 변환할 수 있습니다.

4. 데이터 처리

모델 클래스를 활용하여 가져온 데이터를 처리할 때는 다음과 같이 처리할 수 있습니다.

import 'dart:convert';

void processData(String data) {
  var jsonData = json.decode(data);
  var dataList = (jsonData['list'] as List).map((item) => DataModel.fromJson(item)).toList();
  // 데이터 리스트 처리
  processList(dataList);
}

void processList(List<DataModel> dataList) {
  // 데이터 리스트 처리 로직 구현
}

위 코드에서 processData 함수는 가져온 JSON 데이터를 파싱하여 모델 객체의 리스트로 변환하고, 이를 processList 함수를 통해 처리하는 예시입니다.

마무리

이렇게 플러터에서는 http 패키지를 활용하여 HTTP 통신 및 데이터 처리를 간단하게 수행할 수 있습니다. 데이터를 가져오고, 모델링한 다음에는 실제 앱에서 필요로 하는 형태로 데이터를 가공하여 활용할 수 있을 것입니다.

많은 어플리케이션에서는 가져온 데이터가 반응성 있는 방식으로 표시되어야 하므로, 상태 관리나 뷰 업데이트에 대해서도 고려해야 합니다.

더 많은 정보와 예제는 플러터 공식 문서에서 확인할 수 있습니다.