Repository navigation
[GMSS-325]네트워크 에러 공통 컴포넌트 추가 및 홈, 채팅 적용 - #71
Merged
seunghee17 merged 10 commits intoSep 30, 2026
Merged
Conversation
seunghee17
requested changes
Sep 26, 2026
…k-error-component-GMS-325 # Conflicts: # feature/chat/src/main/java/com/gamss/android/feature/chat/component/ChattingSearchContent.kt
seunghee17
approved these changes
Sep 30, 2026
soyeonLee126
deleted the
feature/add-network-error-component-GMS-325
branch
September 30, 2026 15:44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
작업 개요
네트워크 에러를 보여 주는 공통 UI가 없어서 화면마다 따로 처리하고 있었습니다. 채팅 검색은 자체 문구와 재시도 버튼을 썼고, 홈은 사용자 정보 조회에 실패해도 아무것도 표시하지 않았습니다. 채팅 리스트는 오프라인이면 빈 상태 문구가 떠서, 대화가 없는 것처럼 보였습니다.
디자인 시안(네트워크오류, Figma 5051:9711)에 맞춘 공통 컴포넌트를
core/designsystem에 추가했습니다. 홈, 채팅 리스트, 채팅 검색에서 첫 로드가 네트워크로 실패하면 이 화면을 보여 줍니다.작업 유형
변경 사항
GamssNetworkErrorContent(onRefresh, modifier)core/designsystem에 두었습니다.img_network_error,img_network_error_tape)으로 나눴습니다. VectorDrawable은 그룹 알파를 지원하지 않습니다. 그래서 겹친 두 도형인 테이프에 도형마다 투명도를 주면 겹친 테두리가 진해집니다. 이를 피하려고 테이프를 따로 그려 한 레이어로 합성했습니다.isLoading과nickname을 sealedUserInfoState(Loading,Loaded,NetworkError)로 합쳤습니다.nickname,isUserInfoLoading,isNetworkError)을HomeState의 파생값으로 옮겼습니다. 동작은 바뀌지 않습니다.ChattingListPhase.NetworkError를 추가했습니다.neverLoaded값 때문에 나중 요청의 성공 상태가NetworkError로 바뀔 수 있었습니다. 목록 조회는Mutex.tryLock으로 한 번에 하나만 실행하고, 조회가 진행 중일 때 들어온load호출은 무시합니다. 요청이 진행 중인지는 상태에서 파생할 수 없어Mutex로 관리했습니다.Loading,Browsing,NetworkError일 때만 단계를 바꿉니다. 선택 모드는 유지하고, 새 목록에서 사라진 방은 선택에서 제외합니다. 고를 방이 하나도 남지 않으면 선택 모드를 종료합니다.loadMutex.withLock으로 감싸서, 응답을 기다리는 조회가 있으면 그 조회가 끝난 뒤에 실행되도록 했습니다.관련 이슈
관련 작업 (Notion)
스크린샷 / 동작 화면
GamssNetworkErrorContentLight/Dark Preview와HomeScreen의Home - Network errorPreview에서 확인할 수 있습니다.체크리스트
develop으로 설정되어 있다feat:,fix:등)을 따른다테스트 내용
HomeViewModelTest: 32개 모두 통과했습니다. 네트워크 첫 로드 실패, 재시도, 피커 닫힘, 전송 네트워크 실패 케이스를 추가했습니다.ChattingListLoadTest: 새로 추가했고 13개 모두 통과했습니다. 조회 중 연속 호출, 조회 중 선택 유지(성공, 실패), 사라진 방 제외, 빈 목록에서 선택 종료, 삭제 후 늦게 도착한 조회 케이스가 들어 있습니다. 이 중 빈 목록 케이스를 제외한 5개는 수정 전 코드로 돌리면 실패하는 것을 확인했습니다.:feature:chat,:feature:home단위 테스트 114개가 모두 통과했습니다.:core:designsystem,:feature:home,:feature:chat의 detekt와:app:assembleDebug가 모두 통과했습니다.리뷰 요청 사항
ChattingSearchContent.kt의 import 한 곳이었고, 더 이상 쓰지 않는GamssIconsimport를 지웠습니다.