浏览代码

[REST API 수정]
- 3.1.1.6 회원 로그인 정보 조회 및 푸시 노티 토큰 수정
- 3.3.1.1 디바이스 목록 조회
- 3.6.3.1 모바일 앱 버전 정보 조회
- 테스트 로그인 추가.

aaron 9 年之前
父节点
当前提交
30e18b3332

+ 10 - 7
kneet_v2/build.gradle

@@ -24,6 +24,16 @@ android {
         javaMaxHeapSize "4g"
     }
 
+    applicationVariants.all { variant ->
+        variant.outputs.each { output ->
+            if ("${variant.buildType.name}" != "debug") {
+                def formattedDate = new Date().format("yyyyMMdd_HHmmss")
+                def apkName = "Kneet2.0_v" + variant.versionName + "_" + formattedDate + ".apk"
+                output.outputFile = new File(output.outputFile.parent, apkName)
+            }
+        }
+    }
+
     signingConfigs {
         release {
             storeFile file("../kneet_v2.jks")
@@ -42,13 +52,6 @@ android {
             debuggable false
             minifyEnabled false
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
-            applicationVariants.all { variant ->
-                variant.outputs.each { output ->
-                    def formattedDate = new Date().format("yyyyMMdd_HHmmss")
-                    def apkName = "Kneet2.0_v" + variant.versionName + "_" + formattedDate + ".apk"
-                    output.outputFile = new File(output.outputFile.parent, apkName)
-                }
-            }
         }
     }
     packagingOptions {

+ 11 - 10
kneet_v2/src/main/java/com/ntels/kneet/v2/common/Constants.java

@@ -55,15 +55,13 @@ public interface Constants {
 
     //개발일때..
 
-    //    kneet 2.0
-    final static int    KEY_URL_KNEET_V2_DEV      = 0;
-    final static String URL_KNEET_V2_DEV          = "https://dev.allofthings.com:5008";
-    final static String SMART_URL_KNEET_V2_DEV    = "https://dev.allofthings.com:5001";
-    //    final static String URL_KNEET_V2_DEV          = "http://61.40.220.132:5007";
-    //    final static String SMART_URL_KNEET_V2_DEV    = "http://61.40.220.132:5001";
-    final static String SERVICE_ID_KNEET_V2_DEV   = "20001";
-    final static String PROJECT_ID_KNEET_V2_DEV   = "439012691127";
-    final static String APP_START_ID_KNEET_V2_DEV = "ntels_kneet_v2";
+    //    kneet 3.0 개발
+    final static int    KEY_URL_KNEET_V3_DEV      = 0;
+    final static String URL_KNEET_V3_DEV          = "https://dev.allofthings.com:5018";
+    final static String SMART_URL_KNEET_V3_DEV    = "https://dev.allofthings.com:5018";
+    final static String SERVICE_ID_KNEET_V3_DEV   = "30001";
+    final static String PROJECT_ID_KNEET_V3_DEV   = "439012691127";
+    final static String APP_START_ID_KNEET_V3_DEV = "ntels_kneet_v2";
 
     //    kneet 2.0 운영
     final static int    KEY_URL_KNEET_V2      = 1;
@@ -81,7 +79,9 @@ public interface Constants {
     final static String PROJECT_ID_KNEET_V2_DEV_CUSTOM = "439012691127";
     final static String APP_START_ID_KNEET_V2_CUSTOM   = "ntels_kneet_v2";
 
-    final static int KEY_URL = KEY_URL_KNEET_V2_DEV;
+
+
+    final static int KEY_URL = KEY_URL_KNEET_V3_DEV;
     //    final static int KEY_URL = KEY_URL_KNEET_SMARTCITY;
     //    final static int KEY_URL = KEY_URL_KNEET_SMARTCITY_DEV_CUSTOM;
     //    final static int KEY_URL = KEY_URL_KNEET_V2_DEV;
@@ -410,6 +410,7 @@ public interface Constants {
     final static String SEND_TYPE_POST1              = "POST1";
     final static String SEND_TYPE_MULTIPART          = "MULTIPART";
     final static String SEND_TYPE_MULTIPART1         = "MULTIPART1";
+    final static String SEND_TYPE_PUT                = "PUT";
     /** API통신 파라미터 */
     /** 애니메이션 표현 여부 (표현했을경우 : Y / 표현하지 않았을경우 : N) */
     final static String HTTP_MORE_YN                 = "more_yn";

+ 0 - 1
kneet_v2/src/main/java/com/ntels/kneet/v2/common/gcm/service/GCMRegistrater.java

@@ -39,7 +39,6 @@ public class GCMRegistrater {
     private GcmSharedPreferences     mGcmSharedPreferences;
 
     public GCMRegistrater(Context context, onGCMRegistraterListener gcmRegistraterListener) {
-        // TODO Auto-generated constructor stub
         mContext = context;
         mGcmRegistraterListener = gcmRegistraterListener;
         mGCMService = checkPlayServices();

+ 0 - 1
kneet_v2/src/main/java/com/ntels/kneet/v2/common/gcm/service/GcmSharedPreferences.java

@@ -16,7 +16,6 @@ public class GcmSharedPreferences extends BaseDefaultSharedPreferences {
 
     public GcmSharedPreferences(Context $context) {
         super($context);
-        // TODO Auto-generated constructor stub
     }
 
     /**

+ 0 - 1
kneet_v2/src/main/java/com/ntels/kneet/v2/common/gcm/support/BaseDefaultSharedPreferences.java

@@ -13,7 +13,6 @@ public class BaseDefaultSharedPreferences {
     private SharedPreferences mSharedPreferences;
 
     protected BaseDefaultSharedPreferences(Context $context) {
-        // TODO Auto-generated constructor stub
         super();
         mSharedPreferences = PreferenceManager.getDefaultSharedPreferences($context);
     }

+ 6 - 1
kneet_v2/src/main/java/com/ntels/kneet/v2/common/http/HttpSend.java

@@ -337,7 +337,7 @@ public class HttpSend {
         ArrayList<String> alFilePath = new ArrayList<String>();
         try {
             sInterface_Id = util.getString(context, R.string.API_VERSION) + util.getString(context, R.string.SEND_G_member);
-            sSendType = Constants.SEND_TYPE_GET;
+            sSendType = Constants.SEND_TYPE_PUT;
             /** 단말 일련번호 (애플 기기 : UUID / 안드로이드 기기 : IMEI or Mac Address) */
             addParameter(alPost, Constants.HTTP_device_sn, sHTTP_device_sn);
             /** 푸시노티 토큰 (애플 기기 : device token / 안드로이드 기기 : reg id) */
@@ -3503,6 +3503,11 @@ public class HttpSend {
                 sSendTypeVal = CustomRequest.HTTP_METHOD_GET;
                 CustomRequest customRequest = new CustomRequest(bDialog, sSendTypeVal, sUriVal, appConfig.getAuth_Token(), "", CustomRequest.SEND_METHOD);
                 executeRequest(customRequest);
+            } else if ( sSendType.equals(Constants.SEND_TYPE_PUT) ) {
+                sUriVal = sUrlVal + sInterface_Id + sParam;
+                sSendTypeVal = CustomRequest.HTTP_METHOD_PUT;
+                CustomRequest customRequest = new CustomRequest(bDialog, sSendTypeVal, sUriVal, appConfig.getAuth_Token(), alPost, CustomRequest.SEND_METHOD);
+                executeRequest(customRequest);
             }
         } catch (Exception e) {
             e.printStackTrace();

+ 0 - 3
kneet_v2/src/main/java/com/ntels/kneet/v2/common/http/HttpTask.java

@@ -244,7 +244,6 @@ public class HttpTask extends AsyncTask<CustomRequest, Integer, Response[]> {
                 content = ResponseHelper.read(httpConn.getInputStream());
             } catch (IOException e1) {
                 content = ResponseHelper.read(httpConn.getErrorStream());
-                // TODO Auto-generated catch block
             }
             Dlog.v(content);
             getCookies(httpConn);
@@ -258,12 +257,10 @@ public class HttpTask extends AsyncTask<CustomRequest, Integer, Response[]> {
                 CookieManager.getInstance().setCookie(url.toString(), sTempCookies);
                 retval = new Response(httpConn.getResponseCode(), httpConn.getResponseMessage(), "");
             } catch (IOException e1) {
-                // TODO Auto-generated catch block
                 e1.printStackTrace();
             }
         } catch (Exception e) {
             CookieManager.getInstance().setCookie(url.toString(), sTempCookies);
-            // TODO Auto-generated catch block
             e.printStackTrace();
         } finally {
             if ( httpConn != null )

+ 0 - 1
kneet_v2/src/main/java/com/ntels/kneet/v2/common/security/SeedCipherSvcImpl.java

@@ -682,7 +682,6 @@ public class SeedCipherSvcImpl implements SeedCipherSvc {
     // host = req.getHeader("host");
     //
     // } catch (UnknownHostException e) {
-    // // TODO Auto-generated catch block
     // e.printStackTrace();
     // }
     //

+ 0 - 5
kneet_v2/src/main/java/com/ntels/kneet/v2/common/util/Util.java

@@ -1159,7 +1159,6 @@ public class Util {
             int getRes = context.getResources().getIdentifier(msgno, "string", context.getPackageName());
             msg = context.getResources().getString(getRes);
         } catch (Exception e) {
-            // TODO: handle exception
         }
         return msg;
     }
@@ -1170,7 +1169,6 @@ public class Util {
         try {
             getRes = context.getResources().getIdentifier(sIdVal, "id", context.getPackageName());
         } catch (Exception e) {
-            // TODO: handle exception
         }
         return getRes;
     }
@@ -1182,7 +1180,6 @@ public class Util {
             int getRes = context.getResources().getIdentifier(msgno, "array", context.getPackageName());
             msg = context.getResources().getStringArray(getRes);
         } catch (Exception e) {
-            // TODO: handle exception
         }
         return msg;
     }
@@ -2695,7 +2692,6 @@ public class Util {
                 return false;
             }
         } catch (java.text.ParseException e) {
-            // TODO Auto-generated catch block
             e.printStackTrace();
             return false;
         }
@@ -2729,7 +2725,6 @@ public class Util {
                 return false;
             }
         } catch (java.text.ParseException e) {
-            // TODO Auto-generated catch block
             e.printStackTrace();
             return false;
         }

+ 8 - 7
kneet_v2/src/main/java/com/ntels/kneet/v2/view/Intro.java

@@ -148,7 +148,8 @@ public class Intro extends CustomActivity implements CustomDialog.OnMsgAlterToRe
             alServerId.add("1");
             alServerId.add("2");
             alServerTitle.clear();
-            alServerTitle.add("Kneet2_개발\n(http://61.40.220.132:5007, 20001)");
+//            alServerTitle.add("Kneet2_개발\n(http://61.40.220.132:5007, 20001)");
+            alServerTitle.add("Kneet2_개발\n(https://dev.allofthings.com:5018, 30001)");
             alServerTitle.add("Kneet2_운영\n(https://home-api.allofthings.com, 20001)");
             alServerTitle.add("Kneet2_Custom\n(http://192.168.0.10:5007, 20001)");
 
@@ -418,12 +419,12 @@ public class Intro extends CustomActivity implements CustomDialog.OnMsgAlterToRe
 
     private void setServer(int iVal) {
 
-        if ( iVal == Constants.KEY_URL_KNEET_V2_DEV ) {
-            appConfig.setUrl(Constants.URL_KNEET_V2_DEV);
-            appConfig.setSmartUrl(Constants.SMART_URL_KNEET_V2_DEV);
-            appConfig.setService_Id(Constants.SERVICE_ID_KNEET_V2_DEV);
-            appConfig.setProject_Id(Constants.PROJECT_ID_KNEET_V2_DEV);
-            util.setPreferences(act, Constants.EXTRA_APPSTART_ID, Constants.APP_START_ID_KNEET_V2_DEV);
+        if ( iVal == Constants.KEY_URL_KNEET_V3_DEV ) {
+            appConfig.setUrl(Constants.URL_KNEET_V3_DEV);
+            appConfig.setSmartUrl(Constants.SMART_URL_KNEET_V3_DEV);
+            appConfig.setService_Id(Constants.SERVICE_ID_KNEET_V3_DEV);
+            appConfig.setProject_Id(Constants.PROJECT_ID_KNEET_V3_DEV);
+            util.setPreferences(act, Constants.EXTRA_APPSTART_ID, Constants.APP_START_ID_KNEET_V3_DEV);
         } else if ( iVal == Constants.KEY_URL_KNEET_V2 ) {
             appConfig.setUrl(Constants.URL_KNEET_V2);
             appConfig.setSmartUrl(Constants.SMART_URL_KNEET_V2);

+ 145 - 3
kneet_v2/src/main/java/com/ntels/kneet/v2/view/Login.java

@@ -271,7 +271,9 @@ public class Login extends CustomActivity implements View.OnClickListener,
 
         @Override public boolean handleMessage(Message msg) {
 
-            iType = msg.what;
+            // TODO : 테스트 끝나면 주석 해제.
+            test_login();
+            /*iType = msg.what;
             switch (msg.what) {
                 case MSG_COM_P_MEMBER_LOGIN:
                     send_P_member_login();
@@ -281,7 +283,7 @@ public class Login extends CustomActivity implements View.OnClickListener,
                     break;
                 default:
                     break;
-            }
+            }*/
             return true;
         }
     }
@@ -320,6 +322,147 @@ public class Login extends CustomActivity implements View.OnClickListener,
         }
     }
 
+    /**
+     * 로그인 시 토큰이 변경되는 문제로 임시 사용
+     *
+     */
+    private void test_login() {
+        try {
+            //회원 번호
+            String sMEMBER_ID = "24";
+            //이메일 ID
+            String sEMAIL_ID = "super810910@gmail.com";
+            //서비스 ID
+            String sSERVICE_ID = "30001";
+            //국가 코드 (ex: KR)
+            String sCOUNTRY_CODE = "KR";
+            //타임존 ID
+            String sTIMEZONE_ID = "210";
+            //타임존 시간 (ex: +09:00)
+            String sTIMEZONE = "+09:00";
+            //언어 코드 (ex: en)
+            String sLANG = "ko";
+            //인증 토큰
+            String sAUTH_TOKEN = "EAEAihAcWyP9GN1hRz6x72EjIi5CnCZWsJrPhz0uLt5ltNjbqglfbeTEWzj4YgGXz/Jru/8uQQfVP5DvIiwr8qYOscQVwR98";
+
+            //회원이미지 추가
+            /*String sIMAGE_FILE_NAME = "";
+            if ( joResult.has(Constants.HTTP_image_file_name) ) {
+                sIMAGE_FILE_NAME = util.null2string(joResult.get(Constants.HTTP_image_file_name));
+                appConfig.setMy_Image_Url(sIMAGE_FILE_NAME);
+            }*/
+            //회원명
+            String sNICKNAME = "최낙훈";
+            /*if ( joResult.has(Constants.HTTP_nickname) ) {
+                sNICKNAME = util.null2string(joResult.get(Constants.HTTP_nickname));
+                appConfig.setNickname(sNICKNAME);
+            }*/
+
+            String sHTTP_NEW_EMAIL_ID = "";
+            /*if ( joResult.has(Constants.HTTP_new_email_id) ) {
+                sHTTP_NEW_EMAIL_ID = util.null2string(joResult.get(Constants.HTTP_new_email_id));
+            }*/
+
+            String sHTTP_TEMP_PASSWORD_YN = "N";
+            /*if ( joResult.has(Constants.HTTP_temp_password_yn) ) {
+                sHTTP_TEMP_PASSWORD_YN = util.null2string(joResult.get(Constants.HTTP_temp_password_yn));
+            }*/
+            appConfig.setTemp_Password_Yn(sHTTP_TEMP_PASSWORD_YN);
+
+            String sPUSH_TYPE_MODE_CHG_YN = "Y";
+            String sPUSH_TYPE_PRSNC_CHG_YN = "Y";
+
+            String sHTTP_invitations_count = "0";
+            /*if ( joResult.has(Constants.HTTP_invitations_count) ) {
+                sHTTP_invitations_count = util.null2string(joResult.get(Constants.HTTP_invitations_count));
+            }*/
+
+            String sHTTP_homegrp_id = "1";
+            /*if ( joResult.has(Constants.HTTP_homegrp_id) ) {
+                sHTTP_homegrp_id = util.null2string(joResult.get(Constants.HTTP_homegrp_id));
+            }*/
+
+            /*String sHTTP_homegrp_image_file_name = "";
+            if ( joResult.has(Constants.HTTP_homegrp_image_file_name) ) {
+                sHTTP_homegrp_image_file_name = util.null2string(joResult.get(Constants.HTTP_homegrp_image_file_name));
+            }*/
+
+            String sHTTP_homegrp_name = "나의집";
+            /*if ( joResult.has(Constants.HTTP_homegrp_name) ) {
+                sHTTP_homegrp_name = util.null2string(joResult.get(Constants.HTTP_homegrp_name));
+            }*/
+
+            String sHTTP_grade_code = "MAS";
+            /*if ( joResult.has(Constants.HTTP_grade_code) ) {
+                sHTTP_grade_code = util.null2string(joResult.get(Constants.HTTP_grade_code));
+            }*/
+
+            String sHTTP_homehub_device_id = "D00000000001";
+            /*if ( joResult.has(Constants.HTTP_homehub_device_id) ) {
+                sHTTP_homehub_device_id = util.null2string(joResult.get(Constants.HTTP_homehub_device_id));
+            }*/
+
+            String sHTTP_homehub_online_state = "ON";
+            /*if ( joResult.has(Constants.HTTP_homehub_online_state) ) {
+                sHTTP_homehub_online_state = util.null2string(joResult.get(Constants.HTTP_homehub_online_state));
+            }*/
+
+            appConfig.setLogin_Member_Id(sMEMBER_ID);
+            appConfig.setLogin_Id(sEMAIL_ID);
+            if ( sHTTP_TEMP_PASSWORD_YN.equals("Y") ) {
+                appConfig.setLogin_Pass(sPass);
+            } else {
+                appConfig.setLogin_Pass("");
+            }
+            appConfig.setAutoLogin(bAutoLogin);
+            appConfig.setLogin(true);
+
+            //공통 변수 입력
+            appConfig.setAuth_Token(sAUTH_TOKEN);
+
+            //db 입력작업
+            SQLiteDatabase db = DatabaseOpenHelper.getInstance(act).getWritableDatabase();
+            String sSql = "";
+            sSql = "";
+            sSql = sqlManager.QryDelLoginInfo();
+            db.execSQL(sSql);
+
+            sSql = "";
+            Dlog.v("bAutoLogin =" + bAutoLogin);
+            sSql = sqlManager.QryInsertLoginInfo(sEMAIL_ID, sAUTH_TOKEN, bSaveId, bAutoLogin, appConfig.getManualNotView(), appConfig.getPush());
+            db.execSQL(sSql);
+            db.close();
+
+            appConfig.setPush_Type_Mode_Chg_Yn(sPUSH_TYPE_MODE_CHG_YN);
+            appConfig.setPush_Type_Prsnc_Chg_Yn(sPUSH_TYPE_PRSNC_CHG_YN);
+            appConfig.setInvitations_Count(sHTTP_invitations_count);
+            appConfig.setSelect_Homegrp_Id(sHTTP_homegrp_id);
+//            appConfig.setSelect_Homegrp_Icon(sHTTP_homegrp_image_file_name);
+            appConfig.setSelect_Homegrp_Name(sHTTP_homegrp_name);
+            appConfig.setSelect_Homegrp_Grade_Code(sHTTP_grade_code);
+            appConfig.setSelect_Homegrp_Homehub_Device_Id(sHTTP_homehub_device_id);
+            appConfig.setSelect_Homegrp_Homehub_Online_State(sHTTP_homehub_online_state);
+
+            if ( util.str2int(sHTTP_invitations_count) > 0 ) {
+                Intent intent = new Intent(act, Invitation_List.class);
+                util.callActivityForResultNoAnim(act, intent, Constants.ACT_INVITATION_LIST);
+                return;
+            }
+
+            setFinish();
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            util.getView(act, R.id.llRoot).setVisibility(View.VISIBLE);
+            customDialog.MsgAlert(act, Constants.MSG807);
+        }
+
+        try {
+            util.getButton(act, R.id.btnLogin).setEnabled(true);
+        } catch (Exception ex) {
+
+        }
+    }
+
     private void result_P_member_login(Response rpResult) {
 
         try {
@@ -344,7 +487,6 @@ public class Login extends CustomActivity implements View.OnClickListener,
                 String sLANG = util.null2string(joResult.get(Constants.HTTP_lang));
                 //인증 토큰
                 String sAUTH_TOKEN = util.null2string(joResult.get(Constants.HTTP_auth_token));
-
                 //회원이미지 추가
                 String sIMAGE_FILE_NAME = "";
                 if ( joResult.has(Constants.HTTP_image_file_name) ) {

+ 0 - 1
kneet_v2/src/main/java/com/ntels/kneet/v2/view/dialog/CommonProgressDialog.java

@@ -43,7 +43,6 @@ public class CommonProgressDialog extends AlertDialog {
     public CommonProgressDialog(Context context) {
 
         super(context);
-        // TODO Auto-generated constructor stub
         initFormats();
     }
 

+ 0 - 2
kneet_v2/src/main/java/com/ntels/kneet/v2/view/homemember/Fragment_HomeMember_Adapter.java

@@ -198,7 +198,6 @@ public class Fragment_HomeMember_Adapter extends RecyclerView.Adapter<RecyclerVi
         public vhFooter(View itemView) {
 
             super(itemView);
-            // TODO Auto-generated constructor stub
 
             llFooterProgress = (LinearLayout) itemView.findViewById(R.id.llFooterProgress);
             llFooterRoot = (LinearLayout) itemView.findViewById(R.id.llFooterRoot);
@@ -318,7 +317,6 @@ public class Fragment_HomeMember_Adapter extends RecyclerView.Adapter<RecyclerVi
             holder.itemView.setTag(hmItem);
         } catch (Exception e) {
             e.printStackTrace();
-            // TODO: handle exception
         }
     }
 

+ 0 - 2
kneet_v2/src/main/java/com/ntels/kneet/v2/view/rules/Fragment_Rules_Adapter.java

@@ -197,7 +197,6 @@ public class Fragment_Rules_Adapter extends RecyclerView.Adapter<RecyclerView.Vi
         public vhFooter(View itemView) {
 
             super(itemView);
-            // TODO Auto-generated constructor stub
 
             llFooterProgress = (LinearLayout) itemView.findViewById(R.id.llFooterProgress);
             llFooterRoot = (LinearLayout) itemView.findViewById(R.id.llFooterRoot);
@@ -331,7 +330,6 @@ public class Fragment_Rules_Adapter extends RecyclerView.Adapter<RecyclerView.Vi
             }
             holder.itemView.setTag(hmItem);
         } catch (Exception e) {
-            // TODO: handle exception
         }
     }
 

+ 0 - 2
kneet_v2/src/main/java/com/ntels/kneet/v2/view/things/Fragment_Things_Adapter.java

@@ -224,7 +224,6 @@ public class Fragment_Things_Adapter extends RecyclerView.Adapter<RecyclerView.V
         public vhFooter(View itemView) {
 
             super(itemView);
-            // TODO Auto-generated constructor stub
 
             llFooterProgress = (LinearLayout) itemView.findViewById(R.id.llFooterProgress);
             llFooterRoot = (LinearLayout) itemView.findViewById(R.id.llFooterRoot);
@@ -671,7 +670,6 @@ public class Fragment_Things_Adapter extends RecyclerView.Adapter<RecyclerView.V
             holder.itemView.setTag(hmItem);
         } catch (Exception e) {
             e.printStackTrace();
-            // TODO: handle exception
         }
     }
 

+ 5 - 5
kneet_v2/src/main/res/values/strings_send_url.xml

@@ -5,7 +5,7 @@
 
 <resources>
 
-    <string name="API_VERSION" translatable="false">/v2</string>
+    <string name="API_VERSION" translatable="false">/v3</string>
 
 
     <!--10 회원/홈그룹   -->
@@ -21,9 +21,9 @@
     <string name="SEND_P_member_new_mobile_device" translatable="false">/member/new_mobile_device</string>
     <!--10.6 비밀번호 찾기 (재설정) POST /v2/member/password 입력된 이메일 ID 정보로 비밀번호 찾기를 위한 메일 발송을 처리한다.-->
     <string name="SEND_P_member_password" translatable="false">/member/password</string>
-    <!--10.7 회원 로그아웃 GET /v2/member/logout 회원 로그아웃을 처리한다. (인증 토큰 무효화)-->
+    <!--10.7 회원 로그아웃 GET /v3/member/logout 회원 로그아웃을 처리한다. (인증 토큰 무효화)-->
     <string name="SEND_G_member_logout" translatable="false">/member/logout</string>
-    <!--10.8 회원 로그인 정보 조회 및 푸시 토큰 등록/수정 GET /v2/member 인증 토큰을 기준으로 회원의 로그인 정보를 조회하고 푸시 토큰을 등록/수정한다.-->
+    <!--10.8 회원 로그인 정보 조회 및 푸시 토큰 등록/수정 PUT /v3/member 인증 토큰을 기준으로 회원의 로그인 정보를 조회하고 푸시 토큰을 등록/수정한다.-->
     <string name="SEND_G_member" translatable="false">/member</string>
     <!--10.9 단말(장치) 제한 도달시 새 단말(장치) 인증 메일 발송 POST /v2/member/replace_device 이미 보유 단말(장치) 제한에 도달된 상태에서 새 단말(장치) 로그인을 시도하는 경우, 해당 단말(장치)에 대한 인증 메일을 발송한다. (그 후 10.5로 진행)-->
     <string name="SEND_P_member_replace_device" translatable="false">/member/replace_device</string>
@@ -229,8 +229,8 @@
     <string name="SEND_P_push_token" translatable="false">/push_token</string>
     <!--60.4 [폐기] 공통 코드 목록 조회 GET /v1/common/codes/:common_code_list_id common_code_list_id 로 해당 공통코드 목록을 조회한다.-->
     <string name="SEND_G_common_codes_common_code_list_id" translatable="false">/common/codes/:common_code_list_id</string>
-    <!--60.6 앱 버전 정보 조회 GET /v2/app_version 서비스 이용이 가능한 앱 버전 정보를 조회한다.-->
-    <string name="SEND_G_app_version" translatable="false">/app_version</string>
+    <!--60.6 앱 버전 정보 조회 GET /v3/mobile_app/version 서비스 이용이 가능한 앱 버전 정보를 조회한다.-->
+    <string name="SEND_G_app_version" translatable="false">/mobile_app/version</string>
     <!--61.1 야후날씨 지역코드 목록 조회 GET /v2/common/weather_location_codes 야후 날씨에 사용할 지역코드목록을 조회한다.-->
     <string name="SEND_G_common_weather_location_codes" translatable="false">/common/weather_location_codes</string>
     <!--61.2 알림 수신 여부 설정 POST /v2/member/push_noti 알림 수신 여부를 설정 한다. (예 : 홈모드가 바뀔 때, 집이 빌 때)-->