본문 바로가기

좋아하는 것_매직IT/20.android

안드로이드 Retrofit: 네트워크 통신 라이브러리 사용하기

반응형

안드로이드 앱을 개발하면서 서버와의 통신은 중요한 부분 중 하나입니다. 
Retrofit은 안드로이드에서 네트워크 통신을 간편하게 처리할 수 있게 해주는 라이브러리라고 머릿속에 넣어두시면 될것 같은데요.
이 글에서는 Retrofit을 사용하는 방법을 예시와 함께 살펴보려고 합니다.

우선, Retrofit 라이브러리란 무엇일까요?
Retrofit은 HTTP API에 데이터를 쉽게 요청하고 응답을 처리할 수 있게 해주는 안드로이드와 자바용 라이브러리입니다.
주로 RESTful API를 사용하는 앱 개발에 적합합니다.

기존에는 AndroidHttpClient나 HttpURLConnection 등을 사용해서 네트워크 통신을 구현해야 했는데요.
이 라이브러리를 사용하면 이러한 작업을 간편하게 할 수 있습니다.

Retrofit 설정하기
안드로이드 프로젝트에서 Retrofit을 사용하기 위해 먼저 Gradle 파일에 Retrofit 의존성을 추가합니다

implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0' // JSON 파싱을 위한 Gson 컨버터

인터페이스 정의하기
Retrofit을 사용하여 API를 호출하려면 먼저 API의 엔드포인트와 요청 메서드를 정의해야 합니다. 
예를 들어, 사용자 정보를 가져오는 API를 사용하려면 다음과 같이 인터페이스를 정의할 수 있습니다

public interface UserService { 
    @GET("users/{user}") 
    Call getUser(@Path("user") String username); 
}

위의 코드에서 @GET은 HTTP GET 요청을 나타내며, {user}는 동적으로 변하는 값입니다.

Retrofit 객체 생성하기
Retrofit을 사용하기 위해 Retrofit 객체를 생성해야 합니다.
Retrofit 객체는 API 엔드포인트와 HTTP 클라이언트를 구성합니다.

Retrofit retrofit = new Retrofit.Builder() 
    .baseUrl("https://api.magic.com/") // API 엔드포인트의 기본 URL 
    .addConverterFactory(GsonConverterFactory.create()) // JSON 파싱을 위해 Gson 컨버터 사용 
    .build();

API 호출하기
Retrofit을 통해 API를 호출하려면 해당 인터페이스의 구현체를 생성하고 호출합니다.

UserService userService = retrofit.create(UserService.class); 
Call call = userService.getUser("octocat"); 
call.enqueue(new Callback() { 
    @Override public void onResponse(Call call, Response response) { 
        if (response.isSuccessful()) { 
            User user = response.body(); 
            // 성공적으로 응답을 받았을 때 처리 
        } else { 
            // 오류 응답을 받았을 때 처리 
        }
    } 
    
    @Override 
    public void onFailure(Call call, Throwable t) { 
        // 네트워크 오류나 예외 처리 
    } 
});

비동기 처리
Retrofit은 네트워크 요청과 응답 처리를 비동기적으로 처리합니다. 
enqueue() 메서드를 사용하여 백그라운드 스레드에서 작업을 수행하고 메인 스레드에서 UI 업데이트를 할 수 있습니다.
예외 처리 네트워크 오류나 API 오류에 대한 예외 처리가 중요합니다. 

onFailure 메서드에서 네트워크 오류를 처리하고, API 응답이 성공했지만 데이터 처리 중 오류가 발생한 경우 onResponse에서 처리합니다.
이제 Retrofit을 사용하여 안드로이드 앱에서 서버와의 통신을 간편하게 처리할 수 있습니다. 
Retrofit은 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 지원하며, Gson 또는 다른 컨버터를 사용하여 JSON 응답을 객체로 파싱할 수 있습니다.

Retrofit을 활용하면 네트워크 통신 코드를 간소화하고 유지 보수를 쉽게 할 수 있어 개발 생산성을 향상시킬 수 있습니다.

728x90
300x250