검색 기능 구현 — 키워드로 빠르게 메모 찾기

2025. 5. 28. 16:39·Flutter/Flutter 메모 앱 만들기
728x90
반응형

메모가 많아질수록, 필요한 메모를 찾는 시간이 늘어난다.
검색 기능은 사용자의 시간을 아끼는 가장 강력한 도구다.

이번 글에서는 Flutter 메모 앱에 키워드 기반의 검색 기능을 구현하는 방법을 정리한다.
실시간 필터링부터 DB 쿼리 기반 검색까지 두 가지 방식으로 살펴보자.


🔍 기본 구조: 실시간 검색

가장 직관적인 방식은 전체 메모 리스트 중에서 텍스트로 필터링하는 방식이다.

✅ 상태 변수 정의

List<Memo> _allMemos = [];
List<Memo> _filteredMemos = [];
String _keyword = "";

✅ 검색어 입력 필드

TextField(
  decoration: InputDecoration(
    hintText: '메모 검색',
    prefixIcon: Icon(Icons.search),
  ),
  onChanged: (value) {
    setState(() {
      _keyword = value;
      _filteredMemos = _allMemos.where((memo) =>
        memo.content.toLowerCase().contains(_keyword.toLowerCase())
      ).toList();
    });
  },
)

✅ 리스트 출력

ListView.builder(
  itemCount: _filteredMemos.length,
  itemBuilder: (context, index) {
    return MemoCard(memo: _filteredMemos[index]);
  },
)

사용자가 검색어를 입력할 때마다 메모를 필터링해 _filteredMemos로 업데이트한다.


📦 DB에서 바로 검색하는 방식

메모가 많아지고 앱 재시작 시 초기화되는 문제를 방지하려면 DB 쿼리에서 직접 검색하는 방식이 더 효율적이다.

Future<List<Memo>> searchMemos(String keyword) async {
  final db = await MemoDatabase.database;
  final result = await db.query(
    'memos',
    where: 'content LIKE ?',
    whereArgs: ['%$keyword%'],
    orderBy: 'id DESC',
  );
  return result.map((e) => Memo.fromMap(e)).toList();
}

📌 사용 예시

onChanged: (value) async {
  final results = await searchMemos(value);
  setState(() {
    _filteredMemos = results;
  });
}

이 방식은 앱이 커지더라도 성능 유지에 유리하고, isPinned, tags까지 조건 검색이 가능하다.


🧱 검색 UI 개선 팁

  • 최근 검색어 자동 완성
  • 검색어 하이라이트 표시
  • 검색 결과 없을 때 안내 메시지 출력

사용자 경험을 고려한 작은 개선이 검색 기능의 만족도를 높여준다.


🧘 마무리하며

기록은 찾을 수 있어야 가치가 있다.
Flutter 메모 앱에 검색 기능을 더한다는 것은 사용자가 기억을 더 빠르게 꺼낼 수 있게 돕는 일이다.

검색은 기능이 아니라, 기억의 지도다.

✍️ 이 글은 터미널 밖으로 나온 개발자의 Flutter 메모 앱 만들기 여정입니다.

728x90
반응형

'Flutter > Flutter 메모 앱 만들기' 카테고리의 다른 글

클라우드 동기화 — Firebase로 메모 백업/복원하기  (2) 2025.05.28
이미지 첨부 기능 — 사진과 함께 기억하기  (0) 2025.05.28
음성 메모 녹음 기능 추가하기  (0) 2025.05.28
다크 모드와 배경 커스터마이징 — 메모에 감성 더하기  (0) 2025.05.28
메모 태그 분류 — 주제별로 필터링하는 법  (4) 2025.05.28
'Flutter/Flutter 메모 앱 만들기' 카테고리의 다른 글
  • 클라우드 동기화 — Firebase로 메모 백업/복원하기
  • 이미지 첨부 기능 — 사진과 함께 기억하기
  • 음성 메모 녹음 기능 추가하기
  • 다크 모드와 배경 커스터마이징 — 메모에 감성 더하기
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백엔드개발
    북마크기능
    Firebase
    RubyOnRails
    개발블로그
    날씨앱
    flutter앱개발
    코드를걷는사람
    fluttertips
    모바일앱개발
    Flutter
    flutter개발
    flutterui
    flutter게시판
    다크모드
    rails보안
    Nextjs
    UIUX
    ActiveRecord
    table_calendar
    정적사이트
    flutter기초
    캘린더앱
    UI디자인
    openweather
    flutter디자인
    메모앱
    감성앱
    뉴스앱
    flutter상태관리
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
검색 기능 구현 — 키워드로 빠르게 메모 찾기
상단으로

티스토리툴바