개요 도서 인사이트 공유 프로젝트 `지성인`에는 베스트셀러 도서를 매일 최신화하는 로직이 존재한다.매일 오전 4시에 베스트셀러 상위 100권 정보를 크롤링하여 서버에 저장한다.처음에는 동기적인 방식으로 코드를 작성하여 작업을 수행했다.하지만 이 방법은 많은 시간이 소요되어 효율성에 문제가 있었다. 그래서 이 문제를 해결하기 위해 CompletableFuture를 활용한 비동기 처리와 병렬 프로그래밍으로 개선을 시도했다.이 글에서는 기존 동기적인 접근 방식에서 겪었던 지연 문제를 어떻게 해결했는지, 그리고 새로운 방법으로 얼마나 개선됐는지 공유해본다. 문제 상황@Component@RequiredArgsConstructorpublic class Yes24Crawler implements Crawler { ..