아래 화면을 구성하기 위해서
내가 작성한 공고 데이터 전체 조회 API → 각 공고에 대해서 지원자 조회 API를 호출해야한다.
이 때 공고 데이터는 15개씩 불러오도록 페이징이 적용되어있고,
화면을 보여주기 위해서는 15개의 데이터에 각각 지원자 조회 API 를 순차적으로 호출해야했다.
기존 : 공고 데이터 전체 조회 API 호출 → 각 공고에 대한 지원자 API 하나씩 순차적 호출
결과 : 905ms
class GetJobPostingsInProgressUseCase @Inject constructor(
private val jobPostingRepository: JobPostingRepository,
) {
suspend operator fun invoke() = coroutineScope {
val jobPostingResult = jobPostingRepository.getJobPostingsInProgress()
jobPostingResult.mapCatching { jobPostings ->
jobPostings.map { jobPosting ->
val applicantCount = jobPostingRepository.getApplicantsCount(jobPosting.id).getOrThrow()
jobPosting.copy(applicantCount = applicantCount)
}
}
}
}