AsyncTask는 메인쓰레드 -> 백그라운드 쓰레드 -> 메인쓰레드 이렇게 쓰레드 전환을 가능하게 해주는 비교적 짧은 작업에 사용되었습니다. 그리고 말씀하신대로 Android 11에서 deprecated되어서 더이상 지원이 안됩니다.
정확히 말씀드리자만 Volley는 AsyncTask의 대체가 아니고 HttpURLConnection의 대체입니다. 즉 Http networking을 도와주는 라이브러이 입니다. 이런 종류의 라이브러리로 업계 표준처럼 쓰이는 것은 Retrofit입니다. 주로 OkHttp3과 혼합해서 사용합니다.
그리고 AsyncTask처럼 백그라운드 작업을 도와줄 수 있는 대표주자로는 RxJava+RxAndroid, Kotlin Coroutines가 있습니다. 자바를 사용하신다면 RxJava, Kotlin을 사용하시다면 Kotlin Corountines를 사용하시면 되는데, 두가지다 런닝커브가 상당합니다.
하지만 RxJava같은 경우는 웬만한 랭귀지에서도 다 지원되는 ReactiveX라는 방식의(간단하게 말하면 Observable-Observer Pattern) 프로그래밍이기 때문에, 범용적으로 사용 가능한 방법이기도 합니다. Netflix가 최초로 발표를 했고, 자신들의 백엔드로 녹아들어가 있는 기술이기도 합니다. 상당히 안정적이고 쓸만한 기술이긴 한데, 안드로이드에서는 좀 무거운 편입니다. 무엇보다, 정확하게 사용하려면 굉장히 많은 공부를 요구합니다. 하지만 전 세계의 안드로이드 개발자라면 거의 모두다 사용하기 때문에 활용도도 높은 편이죠.
Kotlin Coroutines는 Kotlin에서만 지원되는 기능입니다. RxJava가 써드파티라면 이건 랭귀지에 탑재된 기능이기 때문에 Kotlin 으로 된 프로젝트라면 Coroutines가 자연스러운 선택이 될겁니다. 그리고 RxJava보다 가볍습니다. 아직 비교적 초창기 버전이라 계속 발전하고 있긴한데, RxJava만큼은 아니어도 배우는데 시간이 좀 걸리고, 개인적으로는 디버깅이 완전하게 지원되지 않아서 좀 짜증이 날 때가 있더라구요.