[flutter] 플러터에서 Equatable을 사용한 데이터 필터링

플러터(Flutter) 앱을 개발할 때, 두 객체의 속성이 동일한지 확인하고 싶을 때가 있습니다. 이런 경우에 Equatable을 사용하면 편리하게 객체를 비교하고 데이터를 필터링할 수 있습니다.

Equatable이란?

Equatable은 두 객체가 동일한지 비교하기 쉽도록 도와주는 라이브러리입니다. 간단한 구현과 사용법으로 객체의 값이나 상태를 비교할 때 코드를 간결하게 유지할 수 있습니다.

Equatable 사용하기

우선 equatable 라이브러리를 pubspec.yaml 파일에 추가합니다.

dependencies:
  equatable: ^2.0.2

다음으로 Equatable을 이용해 데이터 모델을 생성합니다.

import 'package:equatable/equatable.dart';

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

  const User({required this.name, required this.age});

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

위 코드에서 User 클래스는 Equatable을 상속하고, props 메서드를 재정의하여 비교하고자 하는 속성을 포함한 리스트를 반환합니다.

Equatable을 사용한 데이터 필터링

Equatable을 사용하면 다음과 같이 두 객체를 비교할 수 있습니다.

final user1 = User(name: 'Alice', age: 30);
final user2 = User(name: 'Bob', age: 25);

if (user1 == user2) {
  print('같은 사용자입니다.');
} else {
  print('다른 사용자입니다.');
}

Equatable은 props에 정의된 속성들을 비교하여 두 객체가 동일한지 여부를 판단합니다.

마치며

Equatable을 사용하면 객체의 속성 값을 쉽게 비교하고 필터링할 수 있습니다. 코드를 간결하게 유지하면서도 객체의 동등성을 확인할 수 있어 플러터 앱 개발에 유용한 도구입니다. Equatable을 잘 활용하여 안정적이고 효율적인 애플리케이션을 개발하는 데 도움이 될 것입니다.


참고: