Skip to content

Conversation

@kkh725
Copy link
Collaborator

@kkh725 kkh725 commented Nov 19, 2025

1. ⭐️ 변경된 내용

  • 단일매칭으로 이루어지던 로직 -> 다중매칭으로 변경
  • 무료로만 이루어지던 매칭 -> 유료 재화 소비 부분 추가
  • Enum으로만 이루어져있던 DialogType -> Sealed interface 방식으로 변경

2. 🖼️ 스크린샷(선택)

image

3. 💡 알게된 부분

4. 📌 이 부분은 꼭 봐주세요!

  • MatchingState
  • MatchingViewModel.kt 의 다중 타이머 로직
  • MatchingRepositoryImpl.kt 의 getMatchInfoList() 함수 ( 매칭 조회 api 3개 결합 )
  • MatchingCard.kt 의 UI 구성

참고

현재 다중매칭 Api가 제대로 나오지않은 상태라 주석처리 해놓은 함수가많고 코드가 중구난방일 확률이 매우높습니다..
위에 요청드린 부분 위주로 봐주시면 감사하겠습니다.

kkh725 added 30 commits October 28, 2025 21:05
- 레포에서 조회 시 예외를 처리하지 못함. (3개 중 한개만 에러나도 3개가 전부 예외처리)
- 메인화면 진입 마다 matchInfo를 api를 통해 갱신하고 있기 때문에 필요
remainMatchingUpdateTimeInSec 파라미터 제거
.collect { remainTimeInSec ->
setState { copy(remainWaitingTimeInSec = remainTimeInSec) }

if (remainTimeInSec == 0L) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

TimerImpl 로직을 보면 0은 emit되지 않고 바로 TIMEOUT_FLAG(-1)이 방출되는 것으로 보입니다.
그래서 0을 기준으로 동작하는 내부 로직이 있다면 수행되지 않을 것 같은데...
혹시 이 부분 한 번만 확인 가능하실까요?

Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

image 0L 로 돌리니 -1에서 진행 안되는 것 확인했어요. 수정했습니다~ 4a14e83

Copy link
Collaborator

@comst19 comst19 Nov 26, 2025

Choose a reason for hiding this comment

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

이렇게 했을 때 타이밍 이슈는 괜찮았나요? -1초가 잠깐 보이는 문제가 생길 수도 있을 거 같아요

val dialogType: PurchaseDialogType = PurchaseDialogType.InsufficientPuzzle
) : UiState {
val formattedRemainWaitingTime: String = formatTimeToHourMinuteSecond(remainWaitingTimeInSec)
val formattedRemainingTimeMap =
Copy link
Collaborator

Choose a reason for hiding this comment

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

state에서 한 카드만 갱신되더라도 전체 카드의 포맷팅이 함께 일어나는 것 같아, 혹시 이렇게 두신 이유가 있으신지 궁금합니다.
(ex: 카드가 3개이고 각각 초마다 갱신된다면, 결과적으로 1초에 9번 정도 포맷팅이 반복될 수 있을 것 같습니다.)

다른 방법으로는 raw 값을 넘기고 MatchingUserCard 내부에서 포맷팅하는 방법이 있을 거 같아요

Copy link
Member

@tgyuuAn tgyuuAn left a comment

Choose a reason for hiding this comment

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

민수님이 작성해주신 코멘트 저거 하나만 봐주시고,
PR도 커서 부담스러우실테니 일단 Approved 눌려놓겠습니다~
저거만 봐주시고 머지해주시길..
CI 깨진 것도 픽스해주세욥

Copy link
Member

Choose a reason for hiding this comment

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

👍👍👍

.collect { remainTimeInSec ->
setState { copy(remainWaitingTimeInSec = remainTimeInSec) }

if (remainTimeInSec == 0L) {
Copy link
Member

Choose a reason for hiding this comment

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

@tgyuuAn tgyuuAn added 머지 해도될듯염🌟 현재 코드를 기존 코드에 합쳐도 될 것 같다라고 판단..! 🌟 and removed 수정 요청 👀 코드 리뷰 완! 그런데 수정 요청을 곁들인 labels Nov 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ㄱㅎ근형 🌙 머지 해도될듯염🌟 현재 코드를 기존 코드에 합쳐도 될 것 같다라고 판단..! 🌟

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants