Skip to content

feat: 9주차 미션_우가#63

Open
sua710 wants to merge 8 commits into
mainfrom
wooga-m9
Open

feat: 9주차 미션_우가#63
sua710 wants to merge 8 commits into
mainfrom
wooga-m9

Conversation

@sua710

@sua710 sua710 commented May 27, 2026

Copy link
Copy Markdown
Collaborator

📌 PR 제목

feat: 9주차 미션_우가

🔗 관련 이슈

Closes #이슈번호

✨ 변경 사항

  • week9 프로젝트 추가
  • ReqRes API를 사용해 1번 유저 프로필 정보 연동
  • LaunchedEffect를 활용한 비동기 프로필 데이터 로딩 구현
  • Coil AsyncImage를 사용한 프로필/팔로잉 이미지 로딩 구현
  • 마이페이지 UI 구현
  • 팔로잉 리스트를 HorizontalPager로 구현
  • 프로필 화면 로딩/실패/재시도 상태 처리
  • 주문, 패스, 이벤트, 설정 아이콘 리소스 추가
  • 위시리스트 초기 더미데이터 제거
  • 홈 화면 배너 레이아웃 조정

🔍 테스트

  • 테스트 완료
  • 에러 없음

📸 스크린샷 (선택)

🚨 추가 이슈

  • ReqRes API 호출을 위해 INTERNET 권한을 추가했습니다.
  • ReqRes API Key가 필요해 발급받은 키를 사용했습니다.

Comment on lines +30 to +32
private val Black = Color(0xFF111111)
private val GrayText = Color(0xFF767676)
private val White = Color.White

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요 색깔들도 color에 따로 정리하는게 재사용이나 통일성 쪽으로도 좋을 것 같아요.

@@ -0,0 +1,59 @@
package com.example.nike.data.model

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 더미를 쓸 줄 모르는데,서버에서 진짜 데이터를 받아오기 전이나, 화면이 내 생각대로 예쁘게 잘 그려지는지 테스트 및 UI 확인용으로 더미를 사용하시는 것이 인상적입니다

@jeongkyueun jeongkyueun left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ReqResUserClient.kt를 통해 1번 유저의 프로필 정보를 안정적으로 파싱할 수 있는 네트워킹 구조를 잘 짜신 거 같아요!

@kimdoyeon1234 kimdoyeon1234 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전체적인 화면 분리와 최신 Type-safe Navigation을 활용해 구조를 깔끔하게 잘 짜주셨습니다!
상태 끌어올리기(State Hoisting)를 통해 Shop, Wishlist, ProductDetail 화면 간의 위시리스트 상태 동기화도 매끄럽게 잘 구현하셨고, rememberSaveable로 디테일을 챙기신 점도 좋았습니다!

다만 현재는 최상위 UI 컴포저블인 Week9App이 상태 저장과 변경 로직을 모두 가지고 있습니다. 미션의 핵심인 비동기 작업(API 호출, 데이터 로딩 등)이나 데이터 수집 등의 Side Effect 관리가 추가될 때 UI 코드가 비대해지는 것을 막기 위해, 다음 단계에서는 이 로직들을 별도의 ViewModel로 통합 관리하시면 완성도가 훨씬 올라갑니다!

또한, 탭 전환 시 미션 핵심 체크리스트였던 HorizontalPager와 pagerState.targetPage를 연동한 부드러운 스와이프 인터랙션이나 AsyncImage 사용 시 접근성(contentDescription = null) 고려 등 UI/UX 디테일도 함께 점검해 보시면 더욱 좋습니다! 수고하셨습니다! 화이팅

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지금은 수정하지 않아도 됩니다!

지금 프로젝트는 단순한 List 형태라 괜찮지만, 향후 비즈니스 로직이 복잡해지거나 API 통신/로컬 DB(DataStore 등) 연동이 추가된다면 최상위 UI 컴포저블의 비대화를 막기 위해 이 상태 관리 로직을 별도의 ViewModel(예: MainViewModel 또는 SharedViewModel)로 이관하는 것을 추천합니다. UI 레이어와 비즈니스 로직 레이어를 분리하면 테스트 코드 작성과 유지보수가 훨씬 수월해집니다!

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.

5 participants