-
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
[IDLE-509] 크롤링 전체 조회 시, 공고가 중복 노출되는 현상 해결 #235
Conversation
Warning Rate limit exceeded@wonjunYou has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 17 minutes and 44 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. Walkthrough이 풀 리퀘스트에서는 Changes
Possibly related PRs
Suggested labels
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
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.
Actionable comments posted: 2
🧹 Outside diff range and nitpick comments (2)
idle-domain/src/main/kotlin/com/swm/idle/domain/jobposting/repository/querydsl/CrawlingJobPostingSpatialQueryRepository.kt (1)
45-49
: 중복 공고 문제를 해결하기 위한 조인 조건이 개선되었습니다.carerId를 기준으로 한 조인 조건 추가는 사용자별 즐겨찾기를 정확하게 필터링할 수 있게 해줍니다. 하지만 성능 최적화를 위해 다음 사항을 고려해보시기 바랍니다:
- 인덱스 활용 여부 확인
- 대량의 데이터 처리 시 페이징 성능
idle-application/src/main/kotlin/com/swm/idle/application/jobposting/facade/CarerJobPostingFacadeService.kt (1)
109-109
: 매개변수 변경이 적절하게 이루어졌습니다.
Carer
객체 전체 대신carerId
만 전달하도록 변경한 것은 다음과 같은 이점이 있습니다:
- 중복 공고 필터링을 위한 PR 목적에 부합
- 불필요한 데이터 전달 최소화
- 다른 서비스 레이어와의 일관성 유지
다만, carerId가 유효하지 않은 경우에 대한 명시적인 예외 처리를 추가하면 좋을 것 같습니다:
val jobPostingPreviewDtos = jobPostingService.findAllByCarerLocationInRange( carerId = carer.id, + .takeIf { it != null } + ?.let { location = location, next = next, limit = limit + 1, + } ?: throw IllegalArgumentException("유효하지 않은 carer ID입니다.")
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
📒 Files selected for processing (6)
idle-application/src/main/kotlin/com/swm/idle/application/jobposting/domain/CrawlingJobPostingService.kt
(1 hunks)idle-application/src/main/kotlin/com/swm/idle/application/jobposting/domain/JobPostingService.kt
(1 hunks)idle-application/src/main/kotlin/com/swm/idle/application/jobposting/facade/CarerJobPostingFacadeService.kt
(1 hunks)idle-application/src/main/kotlin/com/swm/idle/application/jobposting/facade/CrawlingJobPostingFacadeService.kt
(1 hunks)idle-domain/src/main/kotlin/com/swm/idle/domain/jobposting/repository/querydsl/CrawlingJobPostingSpatialQueryRepository.kt
(3 hunks)idle-domain/src/main/kotlin/com/swm/idle/domain/jobposting/repository/querydsl/JobPostingSpatialQueryRepository.kt
(3 hunks)
🔇 Additional comments (8)
idle-application/src/main/kotlin/com/swm/idle/application/jobposting/domain/CrawlingJobPostingService.kt (2)
32-36
: 메서드 시그니처 변경이 적절해 보입니다.
carerId
매개변수를 추가함으로써 사용자별 맞춤형 필터링이 가능해졌습니다. 이는 공고 중복 노출 문제를 해결하는데 도움이 될 것으로 보입니다.
Line range hint 38-42
: Repository 호출 부분이 올바르게 수정되었습니다.
findAllInRange
메서드 호출 시 carerId
를 전달하도록 변경된 것이 확인됩니다. 이는 상위 메서드의 변경사항과 일관성있게 구현되었습니다.
다음 스크립트를 실행하여 Repository 계층에서도 올바르게 구현되었는지 확인해보겠습니다:
✅ Verification successful
Repository 계층의 구현이 올바르게 되어있음을 확인했습니다.
CrawlingJobPostingSpatialQueryRepository
의 findAllInRange
메서드에서 carerId
파라미터가 다음과 같이 올바르게 처리되고 있습니다:
- 메서드 시그니처에
carerId: UUID
파라미터가 추가됨 jobPostingFavorite
테이블과의 조인 조건에서carerId
를 정확히 사용- 즐겨찾기 상태 확인 시 해당
carerId
의 데이터만 참조
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Repository 구현체에서 carerId 파라미터가 올바르게 처리되는지 확인
# Test: CrawlingJobPostingSpatialQueryRepository의 findAllInRange 메서드 구현 확인
ast-grep --pattern 'fun findAllInRange($$$carerId: UUID$$$)'
Length of output: 62
Script:
#!/bin/bash
# Repository 구현체에서 findAllInRange 메서드의 구현을 확인
rg -A 5 "fun findAllInRange" --type kotlin
# 관련 인터페이스 정의도 확인
rg -A 5 "interface.*Repository.*" --type kotlin | grep -A 5 "findAllInRange"
Length of output: 1017
Script:
#!/bin/bash
# Repository 구현체의 전체 내용을 확인하여 carerId 파라미터가 올바르게 사용되는지 검증
cat idle-domain/src/main/kotlin/com/swm/idle/domain/jobposting/repository/querydsl/CrawlingJobPostingSpatialQueryRepository.kt
# 관련 인터페이스 파일들도 확인
fd -e kt -E "test" -E "Test" . idle-domain/src/main/kotlin/com/swm/idle/domain/jobposting/repository/ -x cat {}
Length of output: 18315
idle-domain/src/main/kotlin/com/swm/idle/domain/jobposting/repository/querydsl/CrawlingJobPostingSpatialQueryRepository.kt (2)
22-25
: 메서드 시그니처 변경이 적절해 보입니다.
carerId를 파라미터로 추가한 것은 사용자별 즐겨찾기 필터링을 위한 좋은 접근 방식입니다.
68-68
: 버퍼 거리가 5000으로 증가된 이유를 확인해주세요.
버퍼 거리를 3000에서 5000으로 변경한 것이 검색 범위에 영향을 미칠 수 있습니다. 이 변경이 의도적인 것인지, 그리고 사용자 경험에 어떤 영향을 미칠지 검토가 필요합니다.
✅ Verification successful
Let me gather more information about the history of this change.
Let me check the commit message and PR description for the change from 3000 to 5000.
버퍼 거리 변경이 의도적으로 이루어졌음을 확인했습니다.
PR 설명에 따르면 공고 탐색 반경을 기존 3km에서 5km로 의도적으로 변경한 것이 확인되었습니다. 이는 PR의 Summary에 명시적으로 언급되어 있습니다.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: 버퍼 거리 변경과 관련된 이슈나 PR 설명을 검색합니다.
# Test: 버퍼 거리 관련 커밋 메시지나 PR 설명 검색
gh pr view 235 --json body | jq -r '.body' | grep -i "buffer\|distance\|5000\|범위"
# Test: 다른 파일에서도 비슷한 상수가 사용되는지 확인
rg "ST_BUFFER|5000|3000" --type kotlin
Length of output: 468
Script:
#!/bin/bash
# Check git history for changes to these files focusing on the buffer distance
git log -p -- idle-domain/src/main/kotlin/com/swm/idle/domain/jobposting/repository/querydsl/CrawlingJobPostingSpatialQueryRepository.kt idle-domain/src/main/kotlin/com/swm/idle/domain/jobposting/repository/querydsl/JobPostingSpatialQueryRepository.kt | grep -B 5 -A 5 "ST_BUFFER"
# Look for any related test files
fd "test" --type f --exec rg "ST_BUFFER|5000|3000" {}
Length of output: 2008
Script:
#!/bin/bash
# Get the commit message for the change
git log --grep="3000" --grep="5000" -i --pretty=format:"%h %s%n%b"
# Get PR description
gh pr view 235 --json title,body | jq -r '.title, .body'
Length of output: 675
idle-domain/src/main/kotlin/com/swm/idle/domain/jobposting/repository/querydsl/JobPostingSpatialQueryRepository.kt (3)
26-29
: 매개변수 변경이 적절해 보입니다.
Carer
엔티티 대신 carerId
를 사용하는 것은 다음과 같은 이점이 있습니다:
- 불필요한 엔티티 조회 방지
- 데이터베이스 조인 최소화
- 메모리 사용량 감소
59-61
: 중복 공고 문제 해결을 위한 조인 조건이 개선되었습니다.
applys.carerId.eq(carerId)
조건을 사용하여 특정 사용자의 지원 정보만 필터링하도록 수정된 것이 확인됩니다. 이는 PR의 주요 목적인 중복 공고 노출 문제를 해결하는데 도움이 될 것으로 보입니다.
88-88
: 버퍼 거리 증가에 대한 검토가 필요합니다.
버퍼 거리가 3000에서 5000으로 증가된 것이 확인됩니다. 이는 검색 범위를 확장하는 변경사항입니다.
다음 사항들을 확인해주시기 바랍니다:
- 이 변경이 의도적인 것인지
- 성능에 미치는 영향은 어떠한지
- 사용자 경험 측면에서 적절한 범위인지
idle-application/src/main/kotlin/com/swm/idle/application/jobposting/domain/JobPostingService.kt (1)
197-206
: 메서드 시그니처 변경이 적절해 보입니다.
Carer
객체 대신 carerId
를 사용하도록 변경한 것은 다음과 같은 이점이 있습니다:
- 불필요한 객체 의존성 제거
- 데이터 접근 계층과의 일관성 유지
- 중복 공고 필터링을 위한 사용자별 즐겨찾기 기능 구현 용이
아래 스크립트를 실행하여 다른 서비스들의 호출부가 새로운 시그니처와 일치하는지 확인하겠습니다:
✅ Verification successful
메서드 시그니처 변경이 올바르게 적용되었습니다.
검증 결과, 모든 호출부가 새로운 시그니처를 사용하도록 정상적으로 수정되었습니다:
CarerJobPostingFacadeService
에서carer.id
를 전달CrawlingJobPostingFacadeService
에서carer.id
를 전달CrawlingJobPostingService
에서도 동일한 시그니처로 구현
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify that all callers have been updated to use carerId
# Test: Search for method calls that might still use Carer object
rg "findAllByCarerLocationInRange.*Carer"
# Test: Verify all callers are updated to use UUID
rg "findAllByCarerLocationInRange.*UUID"
Length of output: 86
Script:
#!/bin/bash
# Search for method name in all files
rg -A 3 "findAllByCarerLocationInRange"
# Search for method definition
ast-grep --pattern 'fun findAllByCarerLocationInRange'
# Search for any references to the method name
rg "findAllByCarerLocationInRange" --type kotlin
Length of output: 3105
...rc/main/kotlin/com/swm/idle/application/jobposting/facade/CrawlingJobPostingFacadeService.kt
Show resolved
Hide resolved
...rc/main/kotlin/com/swm/idle/application/jobposting/facade/CrawlingJobPostingFacadeService.kt
Show resolved
Hide resolved
Quality Gate passedIssues Measures |
1. 📄 Summary
Summary by CodeRabbit
새로운 기능
버그 수정
문서화