[flutter] Equatable을 활용한 플러터 앱의 성능 개선

플러터(Flutter) 앱을 개발하다 보면 동일한 데이터 모델의 여러 객체를 비교하는 작업이 빈번히 발생합니다. 일반적으로 == 연산자를 오버라이딩하여 객체 간의 동등성 여부를 확인하곤 합니다. 그러나 이 방법은 코드를 반복하고 실수할 여지가 있어 성능상의 이슈를 야기할 수 있습니다.

이 문제를 해결하기 위해 Equatable 라이브러리를 활용하여 플러터 앱의 성능을 개선할 수 있습니다. Equatable은 객체의 내용이 동일한지를 비교하는 데에 특화된 라이브러리로, 설치와 활용이 매우 간편합니다.

Equatable 라이브러리 세팅

먼저, pubspec.yaml 파일에 Equatable 라이브러리를 추가합니다.

dependencies:
  equatable: ^2.0.1

그런 다음, 터미널에서 아래 명령어를 실행하여 의존성을 설치합니다.

flutter pub get

Equatable 활용하기

Equatable을 활용하려면 비교할 데이터 모델에 Equatable 클래스를 상속하고, props 메서드를 오버라이딩하여 비교하고자 하는 속성을 배열로 반환하면 됩니다. 예를 들어, 다음과 같이 사용할 수 있습니다.

import 'package:equatable/equatable.dart';

class User extends Equatable {
  final String name;
  final int age;

  const User(this.name, this.age);

  @override
  List<Object?> get props => [name, age];
}

위 예제에서는 User 클래스에 Equatable을 적용하여 nameage 속성을 비교 대상으로 지정하였습니다.

Equatable의 장점

Equatable을 사용하면 == 연산자를 오버라이딩하여 직접 비교하는 번거로움을 덜 수 있습니다. 또한 Equatable은 각 속성들의 동등성을 자동으로 확인하여 성능상의 이점을 제공합니다.

또한, Equatable은 toString, hashCode 메서드도 자동으로 생성해 줍니다. 이렇게 되면 객체를 로그에 출력하거나 HashMap에 사용하는 등의 작업을 할 때 유용합니다.

결론

Equatable은 플러터 앱의 성능을 향상시키는 데에 유용한 도구입니다. 간단한 설정만으로도 동등성 비교와 해시코드 생성을 효율적으로 처리할 수 있으므로, Equatable을 적극 활용하여 플러터 앱의 성능을 개선하고 개발 생산성을 높이는 데에 기여할 수 있습니다.

참고 자료

이상으로 Equatable을 활용한 플러터 앱의 성능 개선에 대해 알아보았습니다. 부족한 부분이 있더라도 언제든지 제안해주세요.