박정하 박정하 04-14
250414 박정하 콘솔 제거
@aeb0e4775590bc536a84dd273b8085398656ad17
client/resources/api/index.js
--- client/resources/api/index.js
+++ client/resources/api/index.js
@@ -6,19 +6,19 @@
     try {
         const token = store.state.authorization;
         if (!token) return true;
-        
+
         // JWT 토큰 디코딩
         const base64String = token.split('.')[1];
         const base64 = base64String.replace(/-/g, '+').replace(/_/g, '/');
         const jsonPayload = decodeURIComponent(atob(base64).split('').map(c => {
             return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
         }).join(''));
-        
+
         const payload = JSON.parse(jsonPayload);
         // exp는 토큰 만료 시간(Unix timestamp)
         const expTime = payload.exp * 1000; // 밀리초 단위로 변환
         const currentTime = new Date().getTime();
-        
+
         // 토큰 만료 5분 전부터는 미리 갱신
         return currentTime > (expTime - 5 * 60 * 1000);
     } catch (e) {
@@ -37,10 +37,9 @@
         });
 
         if (res.status === 200) {
-            console.log("토큰 재발급 성공! 굿~");
             // 새로 발급 받은 AccessToken 저장
             store.commit('setAuthorization', res.headers.authorization);
-            
+
             // JWT 토큰 디코딩
             const base64String = store.state.authorization.split('.')[1];
             const base64 = base64String.replace(/-/g, '+').replace(/_/g, '/');
@@ -50,10 +49,10 @@
             const mbr = JSON.parse(jsonPayload);
             store.commit("setUserNm", mbr.userNm); // 사용자 이름 저장
             store.commit('setRoles', mbr.roles); // 사용자 역할 저장
-            
+
             return true;
         }
-        
+
         throw new Error("토큰 재발급 요청 실패");
     } catch (error) {
         console.error("토큰 재발급 중 오류:", error);
@@ -127,24 +126,24 @@
             }
 
             // 401 에러 처리 (토큰 만료)
-            if (error.response && 
-                error.response.status === 401 && 
-                error.response.data.message === '로그인 시간이 만료되었습니다.' && 
+            if (error.response &&
+                error.response.status === 401 &&
+                error.response.data.message === '로그인 시간이 만료되었습니다.' &&
                 !originalReq._retry) {
-                
+
                 originalReq._retry = true; // 재시도 플래그 설정
-                
+
                 try {
                     // 토큰 재발급
                     await refreshToken();
-                    
+
                     // 새 토큰으로 헤더 업데이트
                     originalReq.headers.Authorization = store.state.authorization;
-                    
+
                     // multipart/form-data 요청 처리를 위한 특별 처리
-                    if (originalReq.headers['Content-Type'] && 
+                    if (originalReq.headers['Content-Type'] &&
                         originalReq.headers['Content-Type'].includes('multipart/form-data')) {
-                        
+
                         // 완전히 새로운 요청 생성
                         return axios({
                             ...originalReq,
@@ -156,7 +155,7 @@
                             transformRequest: [(data) => data]
                         });
                     }
-                    
+
                     // 일반 요청은 기존 client 사용하여 재시도
                     return client(originalReq);
                 } catch (refreshError) {
client/views/App.vue
--- client/views/App.vue
+++ client/views/App.vue
@@ -36,7 +36,6 @@
 
         if (res.status === 200) {
           // 새로 발급 받은 AccessToken 저장
-          console.log("토큰 재발급 성공! 굿~");
           this.store.commit('setAuthorization', res.headers.authorization);
           // JWT 토큰 디코딩
           const base64String = res.headers.authorization.split('.')[1];
@@ -52,7 +51,6 @@
           this.$router.push('/login.page');
         }
       } catch (error) {
-        console.error("Refresh token error:", error);
         alert('세션이 종료되었습니다.\n로그인을 새로 해주세요.');
         this.store.commit("setStoreReset");
         this.$router.push('/login.page'); // 로그인 페이지로 리다이렉트
client/views/component/SearchFormComponent.vue
--- client/views/component/SearchFormComponent.vue
+++ client/views/component/SearchFormComponent.vue
@@ -209,18 +209,16 @@
         const response = await findAllByNullProc();
         if (response.data && response.data.data && response.data.data.ctgry) {
           this.categoryList = response.data.data.ctgry;
-          console.log("카테고리 조회 성공:", this.categoryList);
         } else {
-          console.error("카테고리 데이터 형식이 잘못되었습니다:", response.data);
           this.categoryList = [];
         }
       } catch (error) {
         this.categoryList = []; // 카테고리 목록 초기화
-        console.error("카테고리 조회 실패:", error);
 
         if (error.response) {
           alert(error.response.data.message);
         }
+
         console.error(error.message);
       }
     },
client/views/layout/Header.vue
--- client/views/layout/Header.vue
+++ client/views/layout/Header.vue
@@ -8,47 +8,24 @@
         <div class="nav-wrap">
           <nav>
             <ul v-if="$store.state.roles.length > 0">
-              <li @click="updateMenuStats('MENU_00000001')" 
-                @mouseover="showSubmenu('MENU_00000001')" @mouseleave="hideSubmenu('MENU_00000001')" :class="{ 'active-menu': isActiveMenu('MENU_00000001') }">
-                기록물
-                <div class="submenu" v-if="submenuVisible['MENU_00000001']"
-                   @mouseover="showSubmenu('MENU_00000001')" @mouseleave="hideSubmenu('MENU_00000001')">
-                  <p>• <router-link :to="{ path: '/PicHistorySearch.page' }"
-                      @click.native="hideSubmenu('MENU_00000001')">
-                      사진 기록물
-                    </router-link>
+              <li @click="updateMenuStats('MENU_00000001')" @mouseover="showSubmenu('MENU_00000001')" @mouseleave="hideSubmenu('MENU_00000001')" :class="{ 'active-menu': isActiveMenu('MENU_00000001') }"> 기록물 <div class="submenu" v-if="submenuVisible['MENU_00000001']" @mouseover="showSubmenu('MENU_00000001')" @mouseleave="hideSubmenu('MENU_00000001')">
+                  <p>• <router-link :to="{ path: '/PicHistorySearch.page' }" @click="hideSubmenu('MENU_00000001')"> 사진 기록물 </router-link>
                   </p>
                   <div class="hr"></div>
-                  <p>• <router-link :to="{ path: '/VideoHistorySearch.page' }"
-                      @click.native="hideSubmenu('MENU_00000001')" >
-                      영상 기록물
-                    </router-link>
+                  <p>• <router-link :to="{ path: '/VideoHistorySearch.page' }" @click="hideSubmenu('MENU_00000001')"> 영상 기록물 </router-link>
                   </p>
                 </div>
               </li>
-
-              <li @click="updateMenuStats('MENU_00000004')" 
-                @mouseover="showSubmenu('MENU_00000004')" @mouseleave="hideSubmenu('MENU_00000004')" :class="{ 'active-menu': isActiveMenu('MENU_00000004') }">
-                언론에서 바라본 구미시
-                <div class="submenu" v-if="submenuVisible['MENU_00000004']"
-                   @mouseover="showSubmenu('MENU_00000004')" @mouseleave="hideSubmenu('MENU_00000004')">
-                  <p>• <router-link :to="{ path: '/MediaVideoSearch.page' }"
-                      @click.native="hideSubmenu('MENU_00000004')">
-                      미디어 영상
-                    </router-link>
+              <li @click="updateMenuStats('MENU_00000004')" @mouseover="showSubmenu('MENU_00000004')" @mouseleave="hideSubmenu('MENU_00000004')" :class="{ 'active-menu': isActiveMenu('MENU_00000004') }"> 언론에서 바라본 구미시 <div class="submenu" v-if="submenuVisible['MENU_00000004']" @mouseover="showSubmenu('MENU_00000004')" @mouseleave="hideSubmenu('MENU_00000004')">
+                  <p>• <router-link :to="{ path: '/MediaVideoSearch.page' }" @click="hideSubmenu('MENU_00000004')"> 미디어 영상 </router-link>
                   </p>
                   <div class="hr"></div>
-                  <p>• <router-link :to="{ path: '/NewsReleaseSearch.page' }"
-                      @click.native="hideSubmenu('MENU_00000004')">
-                      보도자료
-                    </router-link>
+                  <p>• <router-link :to="{ path: '/NewsReleaseSearch.page' }" @click="hideSubmenu('MENU_00000004')"> 보도자료 </router-link>
                   </p>
                 </div>
               </li>
-              <li v-if="$store.state.roles[0]?.authority === 'ROLE_ADMIN'"><router-link
-                  :to="{ path: '/MemberManagement.page' }" @click.native="onMemberManagementClick"  exact-active-class="active-menu">회원관리</router-link></li>
-              <li v-if="$store.state.roles[0]?.authority === 'ROLE_ADMIN'"><router-link
-                  :to="{ path: '/CategoryManagement.page' }" @click.native="onCategoryManagementClick"  exact-active-class="active-menu">카테고리 관리</router-link></li>
+              <li v-if="$store.state.roles[0]?.authority === 'ROLE_ADMIN'"><router-link :to="{ path: '/MemberManagement.page' }" @click="onMemberManagementClick" exact-active-class="active-menu">회원관리</router-link></li>
+              <li v-if="$store.state.roles[0]?.authority === 'ROLE_ADMIN'"><router-link :to="{ path: '/CategoryManagement.page' }" @click="onCategoryManagementClick" exact-active-class="active-menu">카테고리 관리</router-link></li>
             </ul>
           </nav>
         </div>
@@ -135,7 +112,7 @@
     showSubmenu(menuId) {
       this.submenuVisible[menuId] = true;  // Directly mutate the reactive object
     },
-    
+
     // Hide the submenu for the given menu ID
     hideSubmenu(menuId) {
       this.submenuVisible[menuId] = false;  // Directly mutate the reactive object
@@ -159,9 +136,6 @@
       try {
         this.activeMenu = menuId;
         const response = await updateStatsByMenuId(menuId);
-        if (response.status === 200) {
-          console.log(`메뉴 ID ${menuId} 통계 업데이트 성공`);
-        }
       } catch (error) {
         console.error(`메뉴 ID ${menuId} 통계 업데이트 중 오류:`, error);
       }
@@ -170,7 +144,6 @@
       // 백엔드 로그아웃 API 호출
       logOutProc()
         .then(() => {
-          console.log('로그아웃 성공 - 서버 측 쿠키 삭제 완료');
           this.$store.commit('setStoreReset'); // 로그아웃 성공 후 스토어 초기화
           this.$router.push({ path: '/Login.page' }); // 로그인 페이지로 리다이렉트
         })
client/views/pages/AppRouter.js
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
@@ -160,9 +160,8 @@
   if (menuId) {
     try {
       await updateStatsByMenuId(menuId);
-      console.log(`메뉴 통계 업데이트 성공: ${menuId}`);
     } catch (error) {
-      console.log(`메뉴 통계 업데이트 실패: ${menuId}`, error);
+      console.error(`메뉴 통계 업데이트 실패: ${menuId}`, error);
     }
   }
 
client/views/pages/bbsDcry/photo/PicHistoryInsert.vue
--- client/views/pages/bbsDcry/photo/PicHistoryInsert.vue
+++ client/views/pages/bbsDcry/photo/PicHistoryInsert.vue
@@ -226,8 +226,6 @@
       if (thumbFile) {
         this.selectedThumb = thumbFile.fileNm;
       }
-
-      console.log(this.requestDTO);
     },
 
     // 카테고리 모달 열기/닫기
client/views/pages/bbsDcry/video/VideoHistoryInsert.vue
--- client/views/pages/bbsDcry/video/VideoHistoryInsert.vue
+++ client/views/pages/bbsDcry/video/VideoHistoryInsert.vue
@@ -199,8 +199,6 @@
 
       this.multipartFiles = [];
       this.selectedCtgries = dcry.ctgrys.length > 0 ? dcry.ctgrys : [];
-
-      console.log(this.requestDTO);
     },
 
     // 카테고리 모달 열기/닫기
client/views/pages/bbsNesDta/NewsReleaseInsert.vue
--- client/views/pages/bbsNesDta/NewsReleaseInsert.vue
+++ client/views/pages/bbsNesDta/NewsReleaseInsert.vue
@@ -184,8 +184,6 @@
 
       this.multipartFiles = [];
       this.selectedCtgries = nesDta.ctgrys.length > 0 ? nesDta.ctgrys : [];
-
-      console.log(this.requestDTO);
     },
 
     // 카테고리 모달 열기/닫기
client/views/pages/ctgry/CategoryManagement.vue
--- client/views/pages/ctgry/CategoryManagement.vue
+++ client/views/pages/ctgry/CategoryManagement.vue
@@ -160,7 +160,6 @@
                 const response = await findAllCategoryProc(this.searchReqDTO);
                 if (response.status === 200) {
                     this.selectedCategories = response.data.data.ctgry; // API 응답에서 카테고리 목록을 가져옴
-                    console.log("가져온 카테고리들 ", this.searchCategories);
                 }
             } catch (error) {
                 console.error("검색 중 오류 발생:", error);
@@ -183,8 +182,6 @@
                 useAt: item.useAt,
                 dc: item.dc
             };
-
-            console.log("선택 된 카테고리", this.selectedCategory);
         },
         // 삭제 또는 복구 로직
         async updateByUseAtCategory() {
@@ -251,7 +248,7 @@
                                 window.location.reload();
                             }
                         } catch (error) {
-                            // HTTP 오류가 발생한 경우 
+                            // HTTP 오류가 발생한 경우
                             const errorMessage = error.response?.data?.message || "등록이 실패하였습니다.";
                             alert(errorMessage); // 오류 메시지 표시
                             this.searchCategories();
@@ -269,7 +266,7 @@
                                     this.searchCategories();
                                 }
                             } catch (error) {
-                                // HTTP 오류가 발생한 경우 
+                                // HTTP 오류가 발생한 경우
                                 const errorMessage = error.response?.data?.message || "수정이 실패하였습니다.";
                                 alert(errorMessage); // 오류 메시지 표시
                                 this.searchCategories();
@@ -284,7 +281,7 @@
                                     this.searchCategories();
                                 }
                             } catch (error) {
-                                // HTTP 오류가 발생한 경우 
+                                // HTTP 오류가 발생한 경우
                                 const errorMessage = error.response?.data?.message || "수정이이 실패하였습니다.";
                                 alert(errorMessage); // 오류 메시지 표시
                                 this.searchCategories();
client/views/pages/login/Login.vue
--- client/views/pages/login/Login.vue
+++ client/views/pages/login/Login.vue
@@ -65,8 +65,6 @@
                     },
                 });
 
-                console.log(response); // 응답 확인
-
                 if (response.status === 200) {
                     const newToken = response.headers.authorization;
                     this.store.commit("setAuthorization", newToken);
client/views/pages/main/Main.vue
--- client/views/pages/main/Main.vue
+++ client/views/pages/main/Main.vue
@@ -183,7 +183,7 @@
       ];
       const isAutoplay = ref(true); // Tracks the autoplay state
       let swiperInstance = null;
-      
+
     onMounted(() => {
       // Main Swiper with Fraction Pagination
       const mainSwiper = new Swiper(swiperContainer.value, {
@@ -216,7 +216,6 @@
       pagingSwiper.controller.control = mainSwiper;
     });
     const toggleAutoplay = () => {
-      console.log(toggleAutoplay)
       if (isAutoplay.value) {
         swiperInstance.autoplay.stop(); // Stop autoplay
       } else {
@@ -290,7 +289,7 @@
           routeName: 'NewsReleaseSearch',
         },
       ],
-    
+
       currentSlide: 1,   // To track the current slide
       totalSlides: 3,
 
client/views/pages/member/MemberManagement.vue
--- client/views/pages/member/MemberManagement.vue
+++ client/views/pages/member/MemberManagement.vue
@@ -176,7 +176,7 @@
             passwordCheck: null,
             // 비밀번호 유효성 체크를 위한 변수
             isPasswordValid: false,
-            // 비밀번호 초기화 
+            // 비밀번호 초기화
             passwordResetAt: {
                 oldPassword: "qwer1234!",
                 newPassword: "qwer1234!",
@@ -191,7 +191,7 @@
                     { authorCode: "ROLE_ADMIN" }
                 ]
             },
-            // 선택된 사용자 복사 
+            // 선택된 사용자 복사
             copySelectedUser: {
                 userNm: null,
                 useAt: null,
@@ -270,7 +270,7 @@
 
                                 }
                             } catch (error) {
-                                // HTTP 오류가 발생한 경우 
+                                // HTTP 오류가 발생한 경우
                                 const errorMessage = error.response?.data?.message || "회원가입이 실패하였습니다.";
                                 alert(errorMessage); // 오류 메시지 표시
                                 this.searchUsers();
@@ -290,7 +290,7 @@
                                     this.searchUsers();
                                 }
                             } catch (error) {
-                                // HTTP 오류가 발생한 경우 
+                                // HTTP 오류가 발생한 경우
                                 const errorMessage = error.response?.data?.message || "수정이 실패하였습니다.";
                                 alert(errorMessage); // 오류 메시지 표시
                                 this.searchUsers();
@@ -306,7 +306,7 @@
                                     this.searchUsers();
                                 }
                             } catch (error) {
-                                // HTTP 오류가 발생한 경우 
+                                // HTTP 오류가 발생한 경우
                                 const errorMessage = error.response?.data?.message || "수정이 실패하였습니다.";
                                 alert(errorMessage); // 오류 메시지 표시
                                 this.searchUsers();
@@ -336,7 +336,6 @@
                 const response = await findAllUsers(this.searchReqDTO);
                 if (response.status === 200) {
                     this.selectedUsers = response.data.data.users;
-                    console.log("가져온 사용자들 ", response);
                 }
             } catch (error) {
                 console.error("검색 중 오류 발생:", error);
@@ -360,8 +359,6 @@
 
             // 깊은 복사를 통해 copySelectedUser를 설정
             this.copySelectedUser = JSON.parse(JSON.stringify(this.selectedUser));
-
-            console.log("선택 된 카테고리", this.selectedUser.authorList[0]);
         },
         // 스위치 사용여부
         toggleUseAt() {
@@ -405,7 +402,7 @@
                 }
             }
         },
-        // 비밀번호 초기화 
+        // 비밀번호 초기화
         async restPassword() {
             if (confirm("비밀번호 초기화를 하시겠습니까?")) {
                 if (this.userId == null || this.userId == '') {
@@ -418,7 +415,7 @@
                             this.searchUsers();
                         }
                     } catch (error) {
-                        // HTTP 오류가 발생한 경우 
+                        // HTTP 오류가 발생한 경우
                         const errorMessage = error.response?.data?.message || "비밀번호 초기화에 실패하였습니다.";
                         alert(errorMessage); // 오류 메시지 표시
                         this.searchUsers();
client/views/pages/user/MyInfo.vue
--- client/views/pages/user/MyInfo.vue
+++ client/views/pages/user/MyInfo.vue
@@ -113,12 +113,9 @@
                     // 사용자 정보를 업데이트하는 API 호출
                     const response = await updateUsers(this.$store.state.userId, this.userInfo);
 
-                    console.log(response); // 응답 확인
-
                     if (response.status === 200) {
                         logOutProc()
                             .then(() => {
-                                console.log('로그아웃 성공 - 서버 측 쿠키 삭제 완료');
                                 this.$store.commit('setStoreReset'); // 로그아웃 성공 후 스토어 초기화
                                 this.$router.push({ path: '/Login.page' }); // 로그인 페이지로 리다이렉트
                             })
@@ -160,7 +157,7 @@
                             window.location.reload(); // 페이지 새로 고침
                         }
                     } catch (error) {
-                        // HTTP 오류가 발생한 경우 
+                        // HTTP 오류가 발생한 경우
                         const errorMessage = error.response?.data?.message || "비밀번호 변경이 실패하였습니다.";
                         alert(errorMessage); // 오류 메시지 표시
                         window.location.reload(); // 페이지 새로 고침
@@ -185,7 +182,7 @@
                                         window.location.reload(); // 페이지 새로 고침
                                     }
                                 } catch (error) {
-                                    // HTTP 오류가 발생한 경우 
+                                    // HTTP 오류가 발생한 경우
                                     const errorMessage = error.response?.data?.message || "회원정보 변경이 실패하였습니다.";
                                     alert(errorMessage); // 오류 메시지 표시
                                     window.location.reload(); // 페이지 새로 고침
@@ -212,7 +209,7 @@
                                         window.location.reload(); // 페이지 새로 고침
                                     }
                                 } catch (error) {
-                                    // HTTP 오류가 발생한 경우 
+                                    // HTTP 오류가 발생한 경우
                                     const errorMessage = error.response?.data?.message || "비밀번호 변경이 실패하였습니다.";
                                     alert(errorMessage); // 오류 메시지 표시
                                     window.location.reload(); // 페이지 새로 고침
@@ -237,7 +234,7 @@
                                     window.location.reload(); // 페이지 새로 고침
                                 }
                             } catch (error) {
-                                // HTTP 오류가 발생한 경우 
+                                // HTTP 오류가 발생한 경우
                                 const errorMessage = error.response?.data?.message || "비밀번호 변경이 실패하였습니다.";
                                 alert(errorMessage); // 오류 메시지 표시
                                 window.location.reload(); // 페이지 새로 고침
Add a comment
List