Skip to content

feat: 상점 아이템 목록 구현#15

Merged
aksworns22 merged 14 commits into
developfrom
feat/store
Jan 19, 2026
Merged

feat: 상점 아이템 목록 구현#15
aksworns22 merged 14 commits into
developfrom
feat/store

Conversation

@aksworns22

Copy link
Copy Markdown
Collaborator

📝 작업 내용

  • 상점 아이템 목록 구현했습니다.

    • ui 관련 정보 없는 순수 아이템 객체를 만들었습니다.
    • 아이템 상태에 따라 요구사항에 맞도록 출력했습니다.(초록색 테두리: 임시)
  • 사용한 임시 데이터

CustomItem("1", ItemType.BACK, Price(100), ItemStatus.PURCHASABLE),
CustomItem("2", ItemType.BACK, Price(50), ItemStatus.PURCHASED),
CustomItem("3", ItemType.BACK, Price(40), ItemStatus.PURCHASABLE),
CustomItem("4", ItemType.BACK, Price(150), ItemStatus.SUBSCRIBE_ONLY),
CustomItem("5", ItemType.BACK, Price(30), ItemStatus.PURCHASABLE),
CustomItem("6", ItemType.BACK, Price(10), ItemStatus.PURCHASED),
CustomItem("7", ItemType.BACK, Price(190), ItemStatus.SUBSCRIBE_ONLY),
CustomItem("8", ItemType.BACK, Price(200), ItemStatus.PURCHASED),
CustomItem("9", ItemType.BACK, Price(300), ItemStatus.SUBSCRIBE_ONLY),
CustomItem("10", ItemType.DECO_1, Price(590), ItemStatus.SUBSCRIBE_ONLY),
CustomItem("11", ItemType.DECO_2, Price(600), ItemStatus.PURCHASED),
CustomItem("12", ItemType.SKIN, Price(700), ItemStatus.SUBSCRIBE_ONLY),
CustomItem("13", ItemType.BACKGROUND, Price(222), ItemStatus.PURCHASABLE),
CustomItem("14", ItemType.BACKGROUND, Price(444), ItemStatus.PURCHASABLE),

📸 스크린샷

10042.mp4

✅ 체크리스트

  • 관련 없는 변경사항 삭제 했는가? (불필요한 주석, 로그 등)
  • 테스트 여부 (Unit Test 등)

@se05503 se05503 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

피드백 내용

좋은 점

  • 상태 관리 명확함 (ItemType, ItemStatus)
  • Adapter holder에서 상태에 따라 동적으로 UI를 변경한 로직

아쉬운 점/개선할 점

  • [P2] ItemAdapter 코드 위치
  • 내용: ItemAdapter 에서 UI 바인딩 코드를 onBindViewHolder 내부에다가 작성하셨는데, ItemViewHolder 클래스로 옮기는걸 고려해봐도 좋을것 같아요
  • 이유: onBindViewHolder는 holder에다가 특정 위치의 아이템을 제공하는게 일반적이고, UI 연결은 보통 뷰홀더 클래스 내부에서 하는 편이에요

궁금한 점

  • price 변수를 Int나 Float가 아닌 Price 객체 타입으로 선언한 이유가 궁금해요. 음수 예외처리가 필요해서 그런걸까요??

총평

  • 깔끔한 UI, 명확한 상태 관리, 예외 처리, 테스트까지 정말 수고하셨습니다!

@aksworns22

Copy link
Copy Markdown
Collaborator Author

@se05503

말씀하신대로 어댑터가 모든 것을 관리하기 보다 뷰 홀더가 UI 관리 책임을 가지는 것이 더 좋은 것 같습니다.

Price 객체는 value class를 사용해 성능 저하 없이 필요한 로직을 캡슐화하려고 만들었습니다. Int 만 사용할 때보다 코드의 의미를 명확히 전달할 수 있다는 점도 고려했습니다.

@aksworns22 aksworns22 merged commit a266e0c into develop Jan 19, 2026
1 check passed
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