마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안녕하세요 volley에 대해서 질문있습니다.

0 추천

안드로이드 volley사용 시에 검색해보니 싱글톤 패턴을 사용해서

파일을 따로 생성한 뒤에 그곳에 RequestQueue를 만들어서 사용한다고 배웟는데요.

그런데 이렇게 queue를 열어 두고 사용할 때 다른 주소로 요청을 보내려면 어떻게 해야할까요?

예를 들어 지금 검색해서 사용해본 코드는 아래와 같은데

binding.button.setOnClickListener {
            var stringRequest = StringRequest(Request.Method.GET, url,
                    Response.Listener<String> { response ->
                        binding.textView.text = "Response is : ${response}"
                    },
                    Response.ErrorListener{
                        binding.textView.text = "That didn't work!"
                    })
            queue.add(stringRequest)
        }

여기서 url을 "http://123.123.123.123/"라고 가정하면

"http://123.123.123.123/ex/"에 요청을 보내려면 어떻게 해야할까요?

url마다 queue를 새로 만들어야 하나요?

아직 미숙해서 설명을 잘 못한 것 같은데, 답변해주시면 감사하겠습니다.

사용중인 언어는 코틀린입니다!

bonon (620 포인트) 님이 2021년 1월 19일 질문

1개의 답변

+1 추천
 
채택된 답변
Volley 보다는 Retrofit으로 하라고 말씀드리고 싶네요.
구조는 거의 비슷합니다만, API를 일목 요연하게 Interface로 빼서 쓰니까 보기에 좋아요.
Volley도 그렇게 할 수 있을텐데요,

Retrofit2가 나오기 전에는 Volley가 대세이긴 했죠.
Retrofit2 MVVM이 대세가 되어 버린 것 같습니다.

queue.add는 그냥 실행명령 같은 겁니다.
url마다 queue를 만드는게 아니라,
url 마다 Request를 만들고, queue는 어떤 리퀘스트던지 실행하는 놈입니다.

API 마다 Request가 다르고 Response도 다르죠. (물론 같을 수도 있지만, 대부분 다릅니다)
따라서 Request와 Response는 다 정의해야 합니다.
Model 들도 재활용 할 수 있게 다 정리해야 하고요...

아 retrofit2 샘플 github에 올린다고 만들어 놨다가 이것 저것 코드 다 넣어놔서 못올리네요...
아무튼, 시간나면 올리겠지만,
retrofit2. MVVM 이라고 검색하면 엄청나게 많은 강좌가 있을 겁니다.

Good luck 2 u~!
Will Kim (43,170 포인트) 님이 2021년 1월 19일 답변
bonon님이 2021년 1월 19일 채택됨
책에는 volley만 나와있어서 retrofit은 있는줄도 몰랏네요
좋은 정보 감사합니다!
will kim님 말씀처럼 Retrofit + OkHttp + Gson 거의 업계의 표준같은 거죠.
보통은 백그라운드 쓰레딩과 서버 응답후 데이터변환 등의 중간 동작은 RxJava+RxAndroid나 Coroutine(Kotlin 전용)을 Retrofit과 함께 많이 사용합니다.
@spark 님 말에 100% 동감입니다.
공부하실 시간이 있다면, retrofit2, okhttp, gson,
viewmodel의 MutableLiveData 까지 한번 훑어 보시길 바래요.
...