AdxConsts - 광고 단위 ID를 정의하는 클래스
ADX_TEST_UNIT_ID_BANNER
: 광고 테스트를 위한 배너 광고 단위 ID입니다.ADX_UNIT_ID_BANNER
: 배너 광고에 사용될 실제 광고 단위 ID입니다.ADX_UNIT_ID_NATIVE_CLOSE
: 네이티브 광고의 종료(close) 이벤트에 사용될 광고 단위 ID입니다. (해당 주석이 적혀있으나 주석이 비활성화되어 있습니다.)이 클래스는 광고 ID를 중앙에서 관리하여 코드의 유지보수 및 변경이 쉽도록 하는 목적으로 사용될 것입니다.
DableApi - 광고 서비스와 관련된 설정 정보를 정의하는 클래스
SERVICE_NAME
: Dable 서비스의 이름을 나타내는 문자열입니다. 현재 "pnj.app.memog.com%2ftg"로 설정되어 있습니다.HOST_CONTENT
: Dable 서비스에 대한 기본 URL을 나타내는 문자열입니다. **SERVICE_NAME
**을 사용하여 완전한 서비스 URL을 만들어냅니다. 예를 들어, "http://sp-api.dable.io/services/pnj.app.memog.com%2Ftg/"와 같은 형태입니다.HOST_LOG_CONTENT
: 로그에 대한 호스트를 나타내는 문자열 변수입니다. 현재는 빈 문자열로 초기화되어 있습니다.이 클래스는 Dable API에 필요한 기본 설정 값을 제공하고, 서비스 URL을 동적으로 생성할 수 있도록 구현되어 있습니다. 해당 정보를 중앙에서 관리하여 코드의 유지보수와 변경이 편리하도록 도와줍니다.
DableLogAsyncTask - 비동기 작업을 수행하는 AsyncTask를 사용하여 Dable 서버에 HTTP 요청을 보내가 응답을 받아오는 작업을 수행하는 클래스
doInBackground
: 백그라운드 스레드에서 실행되는 메소드로, 주어진 URL에 HTTP 요청을 보내고 응답을 받아오는 역할을 합니다.
strings[0]
: AsyncTask에 전달된 URL 문자열입니다.HttpURLConnection
**을 사용하여 서버에 연결하고, 응답 코드를 확인한 후에 HTTP_OK(200)이면 InputStream을 읽어와 문자열로 변환합니다.server_response
변수에 저장됩니다.onPostExecute
: **doInBackground
**가 실행된 후에 호출되는 메소드로, 주로 UI 업데이트 등을 담당합니다. 여기서는 현재는 주석처리되어 있습니다.
server_response
**에 저장된 응답 데이터를 가지고 어떤 작업을 수행할지 정의할 수 있습니다.readStream
: InputStream을 받아와서 문자열로 변환하는 유틸리티 메소드입니다.
BufferedReader
**를 사용하여 InputStream에서 데이터를 읽어와서 **StringBuffer
**에 추가합니다.이 코드는 비동기적으로 네트워크 요청을 처리하고, 서버 응답을 문자열로 받아오는 간단한 코드입니다.
DableManager - Dable 서비스와 관련된 기능을 담당하는 매니저 클래스
getDableContent
: Dable 컨텐츠를 가져오는 메소드로, 먼저 로컬에 저장된 데이터를 확인하고 오늘 날짜와 저장된 날짜를 비교하여 데이터를 가져올지 결정합니다. 만약 오늘 날짜와 저장된 날짜가 다르다면 네트워크를 통해 새로운 데이터를 가져옵니다.getNetworkDable
: Dable 서버로부터 컨텐츠를 가져오는 메소드로, Retrofit을 사용하여 HTTP 요청을 보내고 응답을 처리합니다. 응답 데이터는 로컬에 저장하고, 가져온 데이터 중에서 지정된 인덱스의 컨텐츠를 콜백을 통해 전달합니다.saveLocalDable
: 서버에서 가져온 Dable 컨텐츠를 로컬에 저장하는 메소드로, 파일에 직렬화된 형태로 저장합니다.getLocalDable
: 로컬에 저장된 Dable 컨텐츠를 가져오는 메소드로, 파일에서 역직렬화하여 데이터를 읽어옵니다.getAdvertId
: 광고 ID(AdID)를 얻어오는 메소드로, Google Play 서비스를 통해 광고 ID를 가져옵니다. 이후에는 해당 ID를 이용하여 Dable 서버로부터 컨텐츠를 가져옵니다.getPublicKey
: Dable 서버에 요청 시 사용할 공개 키를 반환하는 메소드입니다.deleteLocalDable
: 로컬에 저장된 Dable 데이터를 삭제하는 메소드로, 파일과 함께 저장된 업데이트 날짜도 초기화합니다.이 코드는 Dable 서비스와의 상호 작용을 관리하고, 네트워크 통신, 로컬 데이터 관리, 광고 ID 얻기 등 다양한 기능을 수행합니다.
DablePreference - Dable 서비스와 관련된 설정에 사용되는 키 값을 정의하는 클래스
KEY_DABLE_UPDATE_DATE
: Dable 컨텐츠를 업데이트한 날짜를 저장하기 위한 키입니다. 이 키를 사용하여 마지막으로 데이터를 업데이트한 날짜를 추적합니다.KEY_DABLE_SETTING
: Dable 서비스와 관련된 기타 설정 정보를 저장하기 위한 키입니다. 코드에서는 정확한 내용이 제공되지 않았지만, 이 키를 통해 설정 정보를 관리할 수 있을 것입니다.이 클래스는 주로 SharedPreferences 또는 기타 설정 관리 도구를 사용하여 앱의 설정을 저장하고 관리하는 데 사용될 것입니다.
DableRetroService - Retrofit을 사용하여 Dable 서버와 통신하기 위한 인터페이스인 ‘DableRetroService’를 정의한다. 주로 Dable 서비스에 대한 API 엔드 포인트와 관련된 메서드가 포함되어 있다.
dableRetrofit
: Retrofit 객체를 생성하는 빌더를 정의합니다. 이 객체는 Dable 서버와의 통신을 위한 기본 설정, URL 등을 설정합니다.@GET("users/{userId}/multi?")
: HTTP GET 메서드를 나타내며, **users/{userId}/multi
**는 API의 엔드포인트를 나타냅니다. **{userId}
**는 동적으로 지정될 사용자 ID를 나타냅니다.repoDable
: Dable 서버로부터 데이터를 가져오기 위한 Retrofit 메서드입니다. 다음과 같은 파라미터를 사용합니다:
@Path("userId") String userId
: 동적으로 지정되는 사용자 ID를 나타냅니다.@Query("public_key") String publid_key
: API 호출에 필요한 공개 키(public_key)를 나타냅니다.@Query("size") int page
: 페이지 크기를 지정하는데 사용됩니다.@Query("nolog") int flag
: 로그를 남기지 않는 옵션을 나타냅니다.Call<ResultDable>
: Retrofit에서 비동기적으로 API 호출을 처리하고 결과를 처리하기 위한 Call
객체를 반환합니다. **ResultDable
**은 API 호출의 응답을 나타내는 모델 클래스로 사용됩니다.이 인터페이스는 Dable 서버 API와의 통신을 위한 Retrofit 설정을 제공하며, 해당 API의 엔드포인트와 메서드를 정의하여 사용합니다.
IDableListener - Dable 서비스에서 비동기적으로 데이터를 받아오거나 처리한 후의 결과를 처리하기 위한 콜백 메서드를 정의한다.
onDableSucceed(ResultDableContent content, int viewPosition)
: Dable 서비스로부터 데이터를 성공적으로 받아온 경우 호출되는 메서드입니다. 이 메서드는 두 개의 파라미터를 받습니다.
content
: Dable 서버에서 받아온 데이터를 나타내는 모델 클래스(ResultDableContent
) 객체입니다.viewPosition
: Dable 서버에서 받아온 데이터를 어떤 뷰(또는 위치)에 표시할지 나타내는 정수값입니다.onDableFailed(int viewPosition)
: Dable 서비스에서 데이터를 받아오는 데 실패한 경우 호출되는 메서드입니다. 이 메서드는 실패한 뷰(또는 위치)를 나타내는 정수값(viewPosition
)을 받습니다.이 인터페이스를 구현하는 클래스에서는 이 두 메서드를 구현하여 데이터를 받아왔을 때와 실패했을 때의 동작을 정의할 수 있습니다. 예를 들어, UI 업데이트나 오류 메시지 출력 등을 처리할 때 활용될 수 있습니다.
ResultDable - Dable 서버에서 받아오는 데이터의 구조를 정의하는 클래스
@SerializedName("result")
: Gson 라이브러리에게 해당 멤버 변수가 JSON에서 "result"라는 이름의 필드에 매핑되어야 한다고 알려줍니다.public ArrayList<ResultDableContent> result;
: Dable 서버에서 받아온 데이터의 목록을 담을 ArrayList입니다. 이 데이터는 ResultDableContent
클래스의 객체로 이루어진 리스트입니다.public ArrayList<ResultDableContent> getResult()
: 결과 데이터 목록을 반환하는 메서드입니다.public void setRows(ArrayList<ResultDableContent> rows)
: Gson 라이브러리에서 자동으로 호출되는 메서드로, 결과 데이터 목록을 설정합니다. 하지만 메소드 이름이 **setRows
**로 되어 있지만, 실제로는 result
필드에 값을 설정하고 있습니다.이 클래스는 Dable 서버에서 받아온 JSON 데이터를 자바 객체로 변환하기 위한 용도로 사용됩니다. 반환된 데이터는 ResultDableContent
클래스의 객체로 이루어진 ArrayList 형태로 저장되어 있습니다.
ResultDableContent - Dable 서버에서 받아온 컨텐츠에 대한 정보를 담는 클래스
Serializable
인터페이스를 구현하고 있으므로, 이 클래스의 객체는 직렬화될 수 있습니다.campaign_id
: 캠페인 IDcontent_id
: 컨텐츠 IDtitle
: 제목subtitle
: 부제목description
: 설명thumbnail
: 섬네일 이미지 URLpublisher
: 발행자(출판자)is_native
: 네이티브 광고 여부 (정수값)is_timeboard
: 타임보드 광고 여부 (부울값)link
: 광고에 연결된 링크 URLmethod
: HTTP 메서드ad_mark
: 광고 표시 여부를 나타내는 표시 문자열custom_request_logs
: 사용자 정의 요청 로그 배열custom_expose_logs
: 사용자 정의 노출 로그 배열native_ad_url_pattern
: 네이티브 광고 URL 패턴이 클래스는 Dable 서버에서 받아온 컨텐츠 정보를 담기 위한 데이터 클래스로 사용됩니다. 데이터의 각 속성을 쉽게 다루기 위해 각각의 속성에 대한 getter 및 setter 메서드가 제공되어 있습니다.
HouseManager - House 서버에서 광고 컨텐츠를 가져오고 처리하는 클래스 / 여러 Retrofit을 사용한 HTTP 통신 및 비동기적인 데이터처리가 이루어지는 부분을 주요로 봐야함
HouseManager
클래스는 **AdDownCompleteListener
**를 구현한 리스너 객체를 생성자를 통해 받습니다. 이 리스너를 통해 광고 데이터를 다운로드한 후의 처리를 알립니다.getHouseContent
메서드: House 서버에서 광고 컨텐츠를 가져오기 위한 메서드입니다. Retrofit을 사용하여 비동기적으로 HTTP GET 요청을 수행합니다.Call<ResultHouse>
객체를 통해 비동기적인 서버 응답을 처리합니다. onResponse
메서드에서는 성공적으로 응답을 받았을 때의 동작을 정의하고, onFailure
메서드에서는 요청이 실패했을 때의 동작을 정의합니다.AdItem
객체들을 생성하여 리스트에 추가합니다. 이후에는 리스너를 통해 완료된 광고 아이템 리스트를 전달합니다.AdItem
객체: 광고에 대한 각 항목을 표현하는 모델 클래스로, appName
, pkgName
, bannerImg
, iconImg
, bandImg
, appDesc
, pkgLink
, recommendAppNumString
, score
등의 속성을 가지고 있습니다.이 코드는 House 서버에서 광고 컨텐츠를 비동기적으로 가져오고, 해당 데이터를 처리하여 완료되면 리스너를 통해 완료를 알리는 역할을 수행합니다.