Skip to content

[GMSS-129] 진행중인 대화 검색 - #22

Open
seunghee17 wants to merge 10 commits into
developfrom
feature/conversation-room-search
Open

[GMSS-129] 진행중인 대화 검색#22
seunghee17 wants to merge 10 commits into
developfrom
feature/conversation-room-search

Conversation

@seunghee17

@seunghee17 seunghee17 commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

작업 개요

현재 진행중인 채팅방 검색 기능을 신규 구현. 키워드 기반 채팅방 검색 API 연동과 Paging 3 기반 무한 스크롤 검색 결과 화면을 추가

작업 유형

  • feat: 새 기능
  • fix: 버그 수정
  • refactor: 리팩토링 (동작 변경 없음)
  • build: 빌드/의존성 설정
  • chore: 기타 (문서, 설정 등)
  • test: 테스트 추가/수정

변경 사항

  • feature:chat-search 모듈 신설: 검색어 입력 → 결과 리스트를 보여주는 SearchChattingScreen 구현
  • domain 계층에 ChattingRoomSearch, SearchChattingRoomsUseCase, ChattingRoomSearchRepository 추가
  • data 계층에 ChattingRoomSearchService(Retrofit), ChattingRoomSearchRepositoryImpl, DI 모듈(SearchConversationModule) 추가
  • Paging 3 적용: ChattingSearchPagingSource + Pager로 페이지네이션 데이터 로딩 구현, 검색어 변경 시 flatMapLatest로 기존 Paging 스트림 취소
  • 초기 로딩/추가 로딩 실패 시 재시도 가능한 에러 UI 추가
  • 검색어 2글자 미만 입력 시 검색 API 호출 차단
  • ChattingSearchPagingSourceTest 추가: MockWebServer로 실제 서버 응답 포맷을 모사해 페이지 파싱·연결, 마지막 페이지에서 무한 스크롤 정지 여부 검증
  • 디버그 빌드에서 확인용 ChatSearchDebugActivity 및 관련 매니페스트 항목 추가
  • Paging 3 라이브러리(androidx-paging-common, androidx-paging-compose) 및 kotlinx-serialization-json 의존성 추가

관련 이슈

  • Closes #

관련 작업 (Notion)

스크린샷 / 동작 화면

체크리스트

  • base 브랜치가 develop으로 설정되어 있다
  • 로컬 빌드 및 실행을 확인했다
  • 커밋 메시지가 컨벤션(feat:, fix: 등)을 따른다
  • 불필요한 로그/주석/디버그 코드를 제거했다
  • 리뷰어가 이해할 수 있도록 설명을 작성했다

리뷰 요청 사항

  • 검색 결과에 Paging 3를 도입했는데(PagingSource + Pager + LazyPagingItems), 검색 결과 규모나 서버 페이지네이션 방식을 고려했을 때 이 복잡도가 적합한지 검토 부탁드립니다.

  - PagingSource와 Pager 기반 검색 데이터 로딩 구현
  - 검색어 변경 시 기존 Paging 스트림 취소
  - 초기 및 추가 로딩 실패 재시도 UI 추가
- 구성 변경(회전) 시 스크롤 위치가 초기화되던 버그 수정
- 검색어 2글자 미만 입력 시 INVALID_INPUT 사이드 이펙트로 안내      - 빈 상태 메시지를 미검색/결과없음으로 분리
- 채팅방 검색 디버그 액티비티 exported=false로 변경
- ChattingRoomSearchPolicy/ChattingRoomSearchException 추가
- SearchChattingRoomsUseCase가 키워드를 자체 검증해 AppResult<Flow<PagingData<T>>>로 반환
- SearchChattingViewModel.search()가 AppResult 성공/실패를 분기해 상태 갱신 또는 SearchFailure 사이드 이펙트 발행
- SearchChattingState의 canSearch/MIN_SEARCH_KEYWORD_LENGTH 제거
- 검색 버튼 상시 활성화로 변경 (실패 시 Toast로 안내하는 방식으로 통일)
- SearchChattingRoomsUseCaseTest, SearchChattingViewModelTest 추가
@seunghee17
seunghee17 marked this pull request as ready for review August 9, 2026 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant