본문 바로가기

Spring이론

retrofit2

반응형

저번 글에서는 REST API에 대하여 알아봤다면

이번 글에서는 안드로이드와 서버간의 REST API 통신을 도와주는 retrofit이라는 라이브러리에 대해 알아보겠습니다.

 

retrofit은 통신 라이브러리 중 하나로 AsyncTask와 Volley 와 같은 다른 라이브러리보다 더 많이 이용됩니다.

 

그 이유를 알아보자면 

타 라이브러리보다 확연하게 빠른 성능을 자랑합니다.

 

하지만 저 같은 안드로이드와 spring 개발에 초보자에게 무엇보다 중요한 장점이 많습니다.
그건 바로 인터넷에 자료가 정말 많습니다. 

 

처음 앱 개발을 준비할 때도 '안드로이드 서버 통신 = retrofit2' 이렇게 공식처럼 되있더라구요.

 

더 자세한 내용은 https://square.github.io/retrofit/ 해당 사이트를 참조하시면 좋을 것 같습니다.

 

이렇게 끝내면 아쉬우니 제가 현재 진행하고 있는 프로젝트에서 retrofit2를 어떻게 사용하는지 이야기 해보겠습니다.

 

1. 의존성 부여

implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'

우선 retrofit2를 프로젝트에서 사용하기 위해서 android studio의 build gradle에 의존성을 부여합니다.

 

2. 퍼미션 설정

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

해당 코드는 retrofit2를 사용할 때만이 아닌 네트워크 통신에서는 항상 사용합니다.

이 코드는 android studio의 AndroidManifast.xml에 작성합니다.

 

3. object 생성

object PinlibObject {
    private const val BASE_URL = "http://사용할 localhost주소"

    private val getRetrofitPinlib by lazy {
        Retrofit.Builder()
            .baseUrl(PinlibObject.BASE_URL)
            //.addConverterFactory(GsonConverterFactory.create())
            .addConverterFactory(GsonConverterFactory.create(GsonBuilder().setLenient().create()))
            .build()
    }
    val getRetrofitPinlibService : PinlibAPI by lazy { getRetrofitNotice.create(PinlibAPI::class.java) }


    fun getInstance(): PinlibAPI? {
        return getRetrofitPinlibService
    }
}

 

사실 이건 필수는 아닌데 네트워크 통신을 할 때마다 선언하는게 너무 번잡스러워서 object file을 따로 생성해서 코드의 번잡성을 줄이기 위해 작성했습니다. 

여기서 point는 localhost의 주소의 경우 spring 서버를 개설하면 이용할 주소를 적어주시면 됩니다.

 

더욱 자세한 내용은 spring 실습에서 이야기하겠습니다.

반응형

'Spring이론' 카테고리의 다른 글

DAO생성해서 간단한 CRUD 구현하기  (0) 2023.03.28
Spring 개념 부족을 해결하기 위해서  (0) 2023.03.28
안드로이드에서 서버와 DB연동을 위한 Spring boot 구조  (0) 2023.02.26
MVC 패턴  (0) 2023.02.25
REST API  (0) 2023.02.21