Skip to content

Conversation

@pinocchio22
Copy link
Contributor

📌 이슈

✅ 작업 사항

  • 검색결과 count 순서 수정
  • 북마크 아이콘 교체
  • 검색시 키보드 엔터 사용 가능
  • 리스트 북마크 아이콘 추가
  • 검색화면 진입시 텍스트필드 포커싱
  • 셀 재사용문제 해결
  • 도감 리스트 탑 마진 수정
  • PinchMapView 이미지 연결
  • 몬스터 태그뷰 중첩 이슈 수정
  • 퀘스트 상세 Lv 텍스트 수정
  • 맵 이미지 및 출현맵 텍스트 간격 수정
  • 맵 상세 이미지 로딩 이미지 사이즈 수정
  • 퀘스트 메인 텍스트 제약 수정
  • 아이템 상세 페이지 공격속도 데이터 추가
  • 상점판매가 number 포맷으로 수정
  • CardView 내부 가로 제약 수정

@pinocchio22 pinocchio22 self-assigned this Dec 4, 2025
@pinocchio22 pinocchio22 added fix 버그 수정, 잔잔바리 수정, 병합 시 충돌 해결 refactor 프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링 labels Dec 4, 2025
@pinocchio22 pinocchio22 linked an issue Dec 4, 2025 that may be closed by this pull request
@gemini-code-assist
Copy link

Summary of Changes

Hello @pinocchio22, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 풀 리퀘스트는 내부 테스트 피드백을 반영하여 사용자 경험을 전반적으로 개선하고 여러 버그를 수정하는 데 중점을 두었습니다. 검색 기능의 편의성을 높이고, 북마크 아이콘을 교체하여 시각적 일관성을 확보했으며, 리스트 뷰의 레이아웃과 셀 재사용 문제를 해결하여 성능을 최적화했습니다. 또한, 아이템 및 맵 상세 정보 표시를 강화하고, 몬스터 태그뷰의 중첩 문제를 해결하는 등 다양한 영역에서 앱의 완성도를 높였습니다.

Highlights

  • UI/UX 개선: 검색 결과 정렬 순서, 북마크 아이콘, 검색 화면 키보드 포커싱, 맵 이미지 로딩 및 간격, 몬스터 태그뷰 중첩 등 다양한 UI/UX 요소가 개선되었습니다.
  • 성능 및 안정성 향상: 셀 재사용 문제 해결, RxGesture 라이브러리 추가, 이미지 로딩 로직 개선 등을 통해 앱의 성능과 안정성이 향상되었습니다.
  • 상세 정보 표시 강화: 아이템 상세 페이지에 공격 속도 데이터가 추가되었고, 상점 판매가가 숫자 형식으로 포맷팅되어 가독성이 높아졌습니다.
  • 레이아웃 및 제약 조건 조정: 리스트 뷰의 상단 마진, 카드 뷰 내부 가로 제약, 맵 이미지 사이즈 등 여러 레이아웃 관련 제약 조건이 수정되었습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

내부 테스트에서 발견된 다양한 피드백을 반영한 수정 사항들이 인상적입니다. 특히 UICollectionViewCell의 재사용 문제를 해결하기 위해 indexPath를 확인하는 로직을 추가하고 prepareForReuse를 구현한 점은 매우 훌륭한 개선입니다. 전반적으로 코드 품질을 높이는 좋은 변경들이 많습니다. 몇 가지 '매직 넘버' 사용과 접근 제어 수준에 대한 사소한 개선점을 제안드렸으니 확인해 보시면 좋겠습니다. 수고하셨습니다!


// MARK: - Components
private let imageView = ItemImageView(image: nil, cornerRadius: Constant.imageRadius, inset: Constant.imageInset, backgroundColor: .listMap)
public let imageView = ItemImageView(image: nil, cornerRadius: Constant.imageRadius, inset: Constant.imageInset, backgroundColor: .listMap)

Choose a reason for hiding this comment

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

medium

imageView의 접근 제어 수준을 public으로 변경하셨는데, 캡슐화를 위해 private으로 유지하는 것이 좋습니다. imageView의 속성을 외부에서 직접 변경하기보다는, CardList에 필요한 기능을 수행하는 메서드를 추가하여 노출하는 방식(예: setMapImage)을 사용하는 것이 더 안전하고 유지보수하기 좋은 코드 구조입니다. 외부에서 imageView에 직접 접근해야 하는 특별한 이유가 없다면 private으로 되돌리는 것을 고려해 보세요.

Suggested change
public let imageView = ItemImageView(image: nil, cornerRadius: Constant.imageRadius, inset: Constant.imageInset, backgroundColor: .listMap)
private let imageView = ItemImageView(image: nil, cornerRadius: Constant.imageRadius, inset: Constant.imageInset, backgroundColor: .listMap)

setImage(image: image, backgroundColor: backgroundColor)
imageView.snp.remakeConstraints { make in
make.center.equalToSuperview()
make.size.equalTo(40)

Choose a reason for hiding this comment

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

medium

setMapImage 메서드 내에서 이미지 크기를 40으로 고정하고 있습니다. 이 값을 '매직 넘버'로 사용하기보다는, 의미를 명확히 하고 재사용성을 높이기 위해 상수로 정의하는 것이 좋습니다. 예를 들어, ItemImageView 내에 private enum Constant { static let mapImageSize: CGFloat = 40 }와 같이 상수를 선언하고 make.size.equalTo(Constant.mapImageSize)와 같이 사용하는 것을 고려해 보세요.

imageView.snp.makeConstraints { make in
make.center.equalToSuperview()
make.size.equalTo(Constant.imageSize)
make.width.equalTo(imageContentView.snp.width).multipliedBy(0.42)

Choose a reason for hiding this comment

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

medium

imageView의 너비를 imageContentView 너비의 0.42 배로 설정하셨습니다. 이 0.42라는 값은 '매직 넘버'로, 코드의 의도를 파악하기 어렵게 만듭니다. 이 값의 의미를 설명하는 주석을 추가하거나, Constant에 의미 있는 이름의 상수로 정의하여 사용하는 것이 좋겠습니다.
또한, 너비만 제약하고 높이를 제약하지 않으면 이미지의 비율에 따라 레이아웃이 의도치 않게 변경될 수 있습니다. 이미지 뷰의 비율을 유지하기 위해 높이 제약도 추가하는 것을 고려해 보세요. 예를 들어, 정사각형을 유지하려면 make.height.equalTo(imageView.snp.width)와 같은 제약을 추가할 수 있습니다.

ImageLoader.shared.loadImage(stringURL: imageUrl) { [weak self] image in
if image == DesignSystemAsset.image(named: "connectionError") {
self?.mapImageView.snp.remakeConstraints { make in
make.size.equalTo(165)

Choose a reason for hiding this comment

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

medium

연결 오류 이미지의 크기를 165로 설정하셨습니다. 이 값은 '매직 넘버'로 코드의 가독성을 해칠 수 있습니다. Constant 열거형에 errorImageSize와 같이 의미 있는 이름의 상수로 정의하여 사용하는 것을 권장합니다. 예를 들어, private enum Constant { static let errorImageSize: CGFloat = 165 } 와 같이 상수를 정의하고 사용할 수 있습니다.

@pinocchio22 pinocchio22 merged commit 43df2b3 into dev Dec 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix 버그 수정, 잔잔바리 수정, 병합 시 충돌 해결 refactor 프로덕션 코드 리팩토링, 파일 삭제, 네이밍 수정 및 폴더링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

내부 테스트 피드백 수정

2 participants