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