Skip to content

Rhedi/week8 미션#86

Open
hajinmn-stack wants to merge 6 commits into
UMC-10th:mainfrom
hajinmn-stack:Rhedi/week8
Open

Rhedi/week8 미션#86
hajinmn-stack wants to merge 6 commits into
UMC-10th:mainfrom
hajinmn-stack:Rhedi/week8

Conversation

@hajinmn-stack

@hajinmn-stack hajinmn-stack commented May 24, 2026

Copy link
Copy Markdown

📌 PR 제목

해당 pr에 대한 내용을 요약해주세요

#️⃣ 연관된 이슈

closes #(issue_num)


✅ 변경 사항

이번 PR에서 변경된 내용을 간략히 정리해주세요.

  • items() 함수를 사용하여 동일한 리스트 데이터 표시
  • 아이템 레이아웃을 Composable 함수로 새로 작성
  • 각 아이템에 고유한 key를 지정하여 상태 안정성 확보

📷 영상 및 스크린샷

week8.webm

작업 내용을 스크린샷 또는 영상 형태로 올려주세요.

🔗 알게 된 사항

워크북과 과제를 하며 알게 된 점을 작성해주세요
복잡한 어댑터 코드 없이 LazyColumn과 LazyVerticalGrid를 사용해 간결하게 리스트와 격자 UI를 구현할 수 있다!

DSL 활용과 성능 최적화: 레이아웃 중첩을 피하기 위해 items() 블록을 사용하고, 아이템마다 고유 key를 지정하면 된다.

📝 질문 사항

워크북과 과제를 하며 궁금했던 점을 작성해주세요

@hajinmn-stack hajinmn-stack requested a review from hw4nx02 May 24, 2026 15:02
@hajinmn-stack hajinmn-stack self-assigned this May 24, 2026
@hajinmn-stack hajinmn-stack requested a review from a team May 24, 2026 15:02

@hw4nx02 hw4nx02 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

8주차 피드백

안녕하세요, 레디🎤! 서서히 종강이 다가오는 게 느껴집니다... 조금 더 파이팅해봅시다!!

총평

이번 주에는 Compose에서의 리스트 구현에 대해 학습했는데요. 이는 성능과 안정성에 직접적인 영향을 미치는 요소입니다. 때문에 불필요한 Recomposition을 방지하고, 스크롤 가능한 컴포넌트의 올바른 사용에 대한 고민이 항상 필요한 지점이라고 볼 수 있겠습니다!
LazyVerticalGrid를 활용하여 리스트 UI를 구현하려는 노력이 엿보입니다. 특히, LazyColumn에서 아이템에 고유 키를 지정하는 등 모범 사례를 적용하려는 시도가 긍정적입니다. 전반적으로 프로젝트의 학습 목표에 부합하며, Compose 리스트의 기본 개념을 잘 이해하고 적용하고 있는 것으로 평가됩니다.

리뷰

Good!

1. LazyColumn 아이템에 고유 키 지정

LazyColumnitems 함수에서 key = { it.id }를 사용하여 각 아이템에 고유한 키를 지정한 것은 매우 훌륭합니다. 이는 리스트의 아이템이 추가, 삭제, 이동될 때 Compose가 각 아이템의 상태를 안정적으로 추적하고 불필요한 Recomposition을 방지할 수 있게 합니다.

2. LazyListScope DSL의 올바른 사용

LazyColumn 내에서 items() 함수를 사용하여 리스트 데이터를 효율적으로 표시한 것은 LazyListScope DSL을 올바르게 활용한 좋은 예시입니다. 이는 수동으로 for 루프를 사용하는 것보다 Compose의 Recomposition 최적화에 도움을 줍니다.

To Improve

1. 불필요한 Recomposition 검토

현재 HomeScreen.kt에서 LazyColumnkey 사용은 Recomposition 최적화에 기여하지만, ProductCard 내부 구현이나 HomeScreen의 다른 부분에서 상태 관리 방식에 따라 불필요한 Recomposition이 발생할 여지가 있습니다. 예를 들어, ProductCard에 전달되는 product 객체가 변경되지 않았음에도 불구하고 상위 Composable의 Recomposition으로 인해 ProductCard가 불필요하게 Recomposition될 수 있습니다. 이를 방지하기 위해 ProductCardStable 또는 Immutable 객체를 받도록 하거나, rememberderivedStateOf를 적절히 활용하여 상태 변경에 따른 Recomposition 범위를 최소화하는 방법을 고려해볼 수 있습니다.

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.

2 participants