-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix [#166] 페이징 2개씩 쌓이는 오류사항 해결 완료 #167
Conversation
for content in data { | ||
tempArrayData.append(content) | ||
} | ||
self.postData = tempArrayData | ||
postDatas.append(contentsOf: postData) | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 코드 패치에 대한 간단한 코드 리뷰를 제공하겠습니다.
-
버그 위험:
self.postDatas
와postData
가 혼용되고 있습니다. 잘못된 변수명 사용으로 데이터 소실 및 불일치 문제가 발생할 수 있습니다.postDatas.append(contentsOf: postData)
에서postData
는 실제로self.postData
입니다. 기존postDatas
에postData
대신tempArrayData
를 추가해야 합니다.
-
개선 제안:
- 반복문 대신
self.postData = data
를 직접 사용하여 데이터 복사 및 할당을 줄일 수 있습니다. - 중복 코드들을 피하기 위해 공통 함수나 메서드를 활용하는 것이 좋습니다.
- 코드 구성을 단순화하여 가독성을 개선할 수 있습니다.
- 반복문 대신
개선된 코드 예시:
if let data = result?.data {
var tempArrayData: [PostDataResponseDTO] = []
for content in data {
tempArrayData.append(content)
}
if cursor == -1 {
self.postDatas = []
}
self.postData = tempArrayData
self.postDatas.append(contentsOf: self.postData)
}
위 코드가 주어진 목적에 맞게 수정되었으며, 데이터의 일관성을 유지하면서 코드를 더 깔끔하게 만들 수 있습니다.
} | ||
self.myPageCommentData = tempArrayData | ||
myPageCommentDatas.append(contentsOf: myPageCommentData) | ||
} | ||
return result | ||
} catch { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-
getMemberContentAPI
에 대한 호출 후print("getMemberContentAPI \(self.contentCursor)")
구문이 불필요하므로 제거할 수 있습니다. -
extension MyPageViewModel
내의 코드에서 중복된 부분이 많습니다. 각각의 경우에 대해 조건이 달라지는 것은 명백하지만, 이를 더 효율적으로 처리할 수 있는 방법을 고려할 필요가 있습니다. -
반복되는 코드를 줄이기 위해 조건문 내부의 로직을 하나로 통합할 수 있습니다. 조건부 시작 전에
myPageContentDatas
,myPageContentData
,myPageCommentDatas
,myPageCommentData
를 초기화하는 작업을 조건문 밖에서 수행하거나 중복 코드를 함수로 추출할 수 있습니다. -
에러 처리 부분인
catch
블록에서 예외 처리는 너무 범위가 클 수 있습니다. 가능하다면 실패 유형에 따라 세심하게 처리할 수 있는 방안을 고려할 필요가 있습니다.
bindViewModel() | ||
DispatchQueue.main.async { | ||
self.notificationTableView.reloadData() | ||
} | ||
} | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여러 가지 지적 사항이 있습니다:
- 12번째 줄에서
viewModel.notificationLists.count > 15
를viewModel.notificationLists.count >= 15
로 수정한 것은 올바른 것으로 보입니다. - 옵셔널 체이닝 연산자
??
를 사용하여 마지막 알림 ID를 가져오는 부분에서viewModel.notificationList.last??
가 아니라viewModel.notificationLists.last??.notificationId
로 수정해야 합니다. lastNotificationId != -1
조건을 추가하여 -1인 경우에만 cursor를 설정하게 함으로써 오류 리스크를 감소시킬 수 있습니다.bindViewModel()
및self.notificationTableView.reloadData()
호출 부분을 비동기로 처리하는 것이 좋습니다.
전체적으로 코드 품질을 향상시키기 위해 위의 수정사항을 고려할 것을 권장드립니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P3
와우 ~~ !!! 이 문제였군요,, 찾아내서 해결해준 상우 짱짱 !! 👻🔥
👻 PULL REQUEST
💻 작업한 내용
📟 관련 이슈