[android] 안드로이드에서 네트워크 요청하기

안드로이드 앱에서 네트워크 요청을 수행하는 것은 매우 일반적입니다. 이를 통해 서버에서 데이터를 가져와 앱에 표시하거나, 사용자 입력을 서버에 보내는 등의 작업을 수행할 수 있습니다. 안드로이드에서 네트워크 요청을 하는 방법을 살펴보겠습니다.

1. AndroidManifest.xml 파일에서 권한 추가

안드로이드 앱이 네트워크를 사용하려면 인터넷 권한이 필요합니다. 따라서 먼저 AndroidManifest.xml 파일에 다음과 같이 인터넷 권한을 추가해야 합니다.

<uses-permission android:name="android.permission.INTERNET" />

2. 네트워크 라이브러리 선택

안드로이드에서는 네트워크 요청을 보다 쉽게 처리하기 위해 여러 라이브러리를 제공합니다. 그 중에서 주목할 만한 것은 Retrofit, Volley, OkHttp 등이 있습니다. 각 라이브러리는 각각의 특징과 장단점을 가지고 있으니 프로젝트에 맞게 적합한 라이브러리를 선택하시면 됩니다.

3. 네트워크 요청 수행

Retrofit 사용하기

Retrofit은 강력하고 세련된 HTTP 클라이언트 라이브러리로, 안드로이드 앱에서 네트워크 요청을 쉽게 처리할 수 있도록 도와줍니다. 다음은 Retrofit을 사용하여 GET 요청을 보내는 예제 코드입니다.

// Retrofit 인터페이스 정의
public interface MyApiService {
    @GET("data")
    Call<DataModel> getData();
}

// Retrofit 객체 생성 및 요청 보내기
Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("http://example.com/")
    .addConverterFactory(GsonConverterFactory.create())
    .build();

MyApiService service = retrofit.create(MyApiService.class);
Call<DataModel> call = service.getData();
call.enqueue(new Callback<DataModel>() {
    @Override
    public void onResponse(Call<DataModel> call, Response<DataModel> response) {
        if (response.isSuccessful()) {
            DataModel data = response.body();
            // 데이터 처리
        } else {
            // 오류 처리
        }
    }

    @Override
    public void onFailure(Call<DataModel> call, Throwable t) {
        // 네트워크 오류 처리
    }
});

Volley 사용하기

Volley는 Google에서 제공하는 HTTP 라이브러리로, 안드로이드 앱에서 네트워크 요청을 쉽게 처리할 수 있도록 도와줍니다. 다음은 Volley을 사용하여 GET 요청을 보내는 예제 코드입니다.

// 요청 큐 생성
RequestQueue queue = Volley.newRequestQueue(context);

// 요청 생성
String url = "http://example.com/data";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
    new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            // 응답 처리
        }
    },
    new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            // 오류 처리
        }
    });

// 요청 추가
queue.add(stringRequest);

마무리

안드로이드 앱에서 네트워크 요청을 하는 방법은 다양하지만, 위에 소개된 Retrofit 또는 Volley를 사용하는 것이 가장 일반적입니다. 프로젝트의 요구에 맞게 적절한 라이브러리를 선택하여 네트워크 요청을 보다 편리하게 처리할 수 있습니다.


참고 문헌: