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 통신 및 비동기적인 데이터처리가 이루어지는 부분을 주요로 봐야함