스프링 데이터 Common 6. 비동기 쿼리 메소드 - KwangtaekJung/inflearn-spring-data-jpa-keesun GitHub Wiki
-
@Async Future findByFirstname(String firstname);
<=Java 5
-
@Async CompletableFuture findOneByFirstname(String firstname);
<=Java 8
-
@Async ListenableFuture findOneByLastname(String lastname);
- 해당 메소드를 스프링 TaskExecutor에 전달해서 별도의 쓰레드에서 실행함.
- Reactive랑은 다른 것임
-
권장하지 않는 이유
- 테스트 코드 작성이 어려움.
- 코드 복잡도 증가.
- 성능상 이득이 없음.
- DB 부하는 결국 같고.
- 메인 쓰레드 대신 백드라운드 쓰레드가 일하는 정도의 차이.
- 단, 백그라운드로 실행하고 결과를 받을 필요가 없는 작업이라면 @Async를 사용해서 응답 속도를 향상 시킬 수는 있다.