방선주 방선주 03-13
250313 방선주 menu 폴더내 파일 throws 제거 및 주석 적용
@9bdce2e1b490bed9cb661dcff86b9d037c28ea56
src/main/java/com/takensoft/cms/menu/dao/MenuAuthorDAO.java
--- src/main/java/com/takensoft/cms/menu/dao/MenuAuthorDAO.java
+++ src/main/java/com/takensoft/cms/menu/dao/MenuAuthorDAO.java
@@ -9,29 +9,38 @@
 /**
  * @author  : 박정하
  * @since   : 2024.05.07
+ * @modification
+ *     since    |    author    | description
+ *  2024.05.07  |    박정하     | 최초 등록
+ *  2024.04.15  |    박정하     | 메뉴별 권한 등록
+ *  2024.05.02  |    박정하     | 메뉴 권한 수정
+ *  2024.05.08  |    박정하     | 메뉴 권한 조회
  *
  * 메뉴 권한 정보 관련 Mapper
  */
 @Mapper("menuAuthorDAO")
 public interface MenuAuthorDAO {
     /**
-     * @author takensoft
-     * @since 2024.04.15
+     * @param menuAuthorVO - 메뉴별 권한 정보 객체
+     * @return int - 등록 성공 여부
+     *
      * 메뉴별 권한 등록
      */
-    public int menuAuthrtSave(MenuAuthorVO menuAuthorVO);
+    int menuAuthrtSave(MenuAuthorVO menuAuthorVO);
 
     /**
-     * @author 박정하
-     * @since 2024.05.02
+     * @param params - 메뉴별 권한 정보 객체
+     * @return int - 수정 성공 여부
+     *
      * 메뉴 권한 수정
      */
-    public int updateMenuAuthrt(HashMap<String, Object> params) throws Exception;
+    int updateMenuAuthrt(HashMap<String, Object> params);
 
     /**
-     * @author 박정하
-     * @since 2024.05.08
+     * @param authorVO - 메뉴 권한 정보 객체
+     * @return List<HashMap<String, Object>> - 메뉴 권한 정보 목록
+     *
      * 메뉴 권한 조회
      */
-    public List<HashMap<String, Object>> findAll(AuthorVO authorVO) throws Exception;
+    List<HashMap<String, Object>> findAll(AuthorVO authorVO);
 }
(No newline at end of file)
src/main/java/com/takensoft/cms/menu/dao/MenuDAO.java
--- src/main/java/com/takensoft/cms/menu/dao/MenuDAO.java
+++ src/main/java/com/takensoft/cms/menu/dao/MenuDAO.java
@@ -11,137 +11,170 @@
 import java.util.List;
 
 /**
- * @author  : takensoft
- * @since   : 2024.04.01
+ * @author takensoft
+ * @since 2024.04.01
+ * @modification
+ *     since    |    author    | description
+ *  2024.04.01  |  takensoft   | 최초 등록
+ *  2024.04.08  |  takensoft   | findTopMenu, findChildMenus, save, findByMenu, findByMenuGrd, findByMenuSn, saveMenuStsfdg 추가
+ *  2024.04.15  |  takensoft   | findExceptTopMenu, update 추가
+ *  2024.04.24  |  takensoft   | findChildNode 추가
+ *  2024.04.25  |  takensoft   | findByTopNode 추가
+ *  2024.04.29  |    박정하     | deleteMenu 추가
+ *  2024.05.02  |    박정하     | findUpMenuId 추가
+ *  2024.05.09  |    박정하     | findByMenuWithRouter 추가
+ *  2024.05.10  |    박정하     | menuUpdateByHierachy, updateByContsId 추가
+ *  2024.06.07  |    방선주     | bbsMngMenuDelete 추가
+ *  2024.07.18  |    박정하     | findAllCnt 추가
  *
- * 메뉴 정보 관련 Mapper
+ * 메뉴 정보 관련 DAO
  */
 @Mapper("menuDAO")
 public interface MenuDAO {
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param
+     * @return List<MenuVO> - 최상위 메뉴 목록
+     *
      * 최상위 메뉴 조회
      */
     List<MenuVO> findTopMenu();
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param menuId - 상위 메뉴 ID
+     * @return List<MenuVO> - 하위 메뉴 목록
+     *
      * 하위 메뉴 조회
      */
     List<MenuVO> findChildMenus(String menuId);
 
     /**
-     * @author takensoft
-     * @since 2024.04.15
+     * @param
+     * @return List<MenuVO> - 메뉴 목록
+     *
      * 메뉴 전체 조회(최상위 메뉴 제외-> grd:0)
      */
     List<MenuVO> findExceptTopMenu();
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param menuVO - 메뉴 정보
+     * @return int - 등록 성공 여부
+     *
      * 메뉴 등록
      */
     int save(MenuVO menuVO);
 
     /**
-     * @author takensoft
-     * @since 2024.04.15
+     * @param menuVO - 메뉴 정보
+     * @return int - 수정 성공 여부
+     *
      * 메뉴 수정
      */
     int update(MenuVO menuVO);
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param menuId - 메뉴 ID
+     * @return MenuVO - 메뉴 정보
+     *
      * 메뉴 상세 조회
      */
     MenuVO findByMenu(String menuId);
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param upMenuId - 상위 메뉴 ID
+     * @return int - 상위 메뉴 깊이
+     *
      * 메뉴 깊이 조회
      */
     int findByMenuGrd(String upMenuId);
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param upMenuId - 상위 메뉴 ID
+     * @return int - 메뉴 순서 max 값
+     *
      * 메뉴 순서 조회
      */
     int findByMenuSn(String upMenuId);
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param menuStsfdgVO - 메뉴 만족도 정보
+     * @return int - 등록 성공 여부
+     *
      * 메뉴별 만족도 등록
      */
     int saveMenuStsfdg(MenuStsfdgVO menuStsfdgVO);
 
     /************************************** Hierachy 전용 **************************************/
+
     /**
-     * @author takensoft
-     * @since 2024.04.25
+     * @param
+     * @return List<HierachyVO> - 부서 목록
+     *
      * 최상위 부서 조회
      */
     List<HierachyVO> findByTopNode();
+
     /**
-     * @author takensoft
-     * @since 2024.04.24
+     * @param id - 상위 부서 ID
+     * @return List<HierachyVO> - 하위 부서 목록
+     *
      * 하위 부서 조회
      */
     List<HierachyVO> findChildNode(String id);
     /************************************** Hierachy 전용 **************************************/
 
     /**
-     * @author 박정하
-     * @since 2024.04.29
+     * @param menuVO - 메뉴 정보
+     * @return int - 삭제 성공 여부
+     *
      * 상위,하위 메뉴 삭제
      */
     int deleteMenu(MenuVO menuVO);
 
     /**
-     * @author 박정하
-     * @since 2024.05.02
+     * @param MenuId - 메뉴 ID
+     * @return String - 상위 메뉴 ID
+     *
      * 상위 메뉴 조회
      */
     String findUpMenuId(String MenuId);
 
     /**
-     * @author takensoft
-     * @since 2024.05.09
+     * @param menuRequest - 메뉴 조회 param 정보
+     * @return List<SysMenuVO> - 메뉴 목록
+     *
      * 메뉴 조회(시스템용)
      */
     List<SysMenuVO> findByMenuWithRouter(MenuRequest menuRequest);
 
     /**
-     * @author 박정하
-     * @since 2024.05.10
+     * @param menuVO - 메뉴 정보
+     * @return int - 수정 성공 여부
+     *
      * 메뉴 정보 수정 (hierachyVO 사용)
      */
-    public int menuUpdateByHierachy(MenuVO menuVO) throws Exception;
+    int menuUpdateByHierachy(MenuVO menuVO);
 
     /**
-     * @author 박정하
-     * @since 2024.05.10
+     * @param contsTypeVO - 콘텐츠 유형 정보
+     * @return int - 수정 성공 여부
+     *
      * 메뉴 수정 (콘텐츠 유형)
      */
-    public int updateByContsId(ContsTypeVO contsTypeVO) throws Exception;
+    int updateByContsId(ContsTypeVO contsTypeVO);
 
     /**
-     * @author 방선주
-     * @since 2024.06.07
-     * 게시판 관리에서 게시판 삭제 시 게시판 메뉴 미노출로 변경
+     * @param menuVO - 메뉴 정보
+     * @return int - 미노출 변경 성공 여부
+     *
+     * 게시판 삭제 시 게시판 메뉴 미노출
      */
-    public int bbsMngMenuDelete(MenuVO menuVO) throws Exception;
+    int bbsMngMenuDelete(MenuVO menuVO);
 
     /**
-     * @author 박정하
-     * @since 2024.07.18
+     * @param params - 메뉴 정보
+     * @return int - 메뉴 개수
+     *
      * 메뉴 개수 조회 (접속 통계용)
      */
-    public int findAllCnt(HashMap<String, Object> params) throws Exception;
+    int findAllCnt(HashMap<String, Object> params);
 }
src/main/java/com/takensoft/cms/menu/service/Impl/MenuAuthorServiceImpl.java
--- src/main/java/com/takensoft/cms/menu/service/Impl/MenuAuthorServiceImpl.java
+++ src/main/java/com/takensoft/cms/menu/service/Impl/MenuAuthorServiceImpl.java
@@ -7,34 +7,44 @@
 import com.takensoft.cms.menu.service.MenuAuthorService;
 import com.takensoft.cms.menu.vo.MenuAuthorVO;
 import com.takensoft.cms.menu.vo.MenuVO;
+import com.takensoft.common.exception.CustomInsertFailException;
+import com.takensoft.common.exception.CustomUpdateFailException;
 import com.takensoft.common.util.JWTUtil;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.dao.DataAccessException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 
 /**
- * @author  : 박정하
- * @since   : 2024.05.07
+ * @author 박정하
+ * @since 2024.05.07
+ * @modification
+ *     since    |    author    | description
+ *  2024.05.07  |    박정하     | 최초 등록
+ *
+ * EgovAbstractServiceImpl - 전자정부 프레임워크에서 제공하는 추상 서비스 구현 클래스
+ * MenuAuthorService - 메뉴 권한 서비스 인터페이스
  *
  * 메뉴 권한 정보 관련 구현체
- * EgovAbstractServiceImpl : 전자정부 상속
- * MenuAuthorService : 메뉴 정보 인터페이스 상속
  */
 @Service("menuAuthorServiceImpl")
 @RequiredArgsConstructor
 public class MenuAuthorServiceImpl extends EgovAbstractServiceImpl implements MenuAuthorService {
+
     private final MenuDAO menuDAO;
     private final MenuAuthorDAO menuAuthorDAO;
     private final AuthorDAO authorDAO;
     private final JWTUtil jwtUtil;
 
     /**
-     * @author takensoft
-     * @since 2024.04.15
+     * @param menuId - 메뉴 ID
+     * @param AuthrtCd - 권한 코드
+     * @return MenuAuthorVO - 메뉴 권한 등록 정보
+
      * 메뉴별 권한 등록을 위한 전처리
      */
     private MenuAuthorVO saveMenuAuthor(String menuId, String AuthrtCd) {
@@ -45,8 +55,14 @@
     }
 
     /**
-     * @author takensoft
-     * @since 2024.04.15
+     * @param id - 메뉴 ID
+     * @param type - 메뉴 등록 타입
+     * @return int - 등록 결과
+     * @throws CustomInsertFailException - 등록 실패 예외 발생 시
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws NullPointerException - Null 값이 발생할 경우
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 메뉴별 권한 등록
      * 파라미터로 들어오는 id는 type에 따라 권한 코드 or 메뉴 아이디로 들어옴
      */
@@ -56,71 +72,104 @@
     public int menuAuthrtSave(String id, String type) {
         int result = 0;
         // 타입이 null or empty 경우 에러 발생
-        if(type == null || type.equals("")) {
-            throw new IllegalArgumentException("type is null or empty");
-        }
-        // 신규 메뉴 등록 시
-        if("menu".equals(type)) {
-            // 등록된 권한 목록 조회
-            List<AuthorVO> authList = authorDAO.findAllSystem();
-            for(AuthorVO author : authList) {
-                MenuAuthorVO menuAuthor = saveMenuAuthor(id, author.getAuthrtCd());
-                result += menuAuthorDAO.menuAuthrtSave(menuAuthor);
+        try {
+            if (type == null || type.equals("")) {
+                throw new IllegalArgumentException("type is null or empty");
             }
-            // 신규 권한 등록 시
-        } else if("author".equals(type)) {
-            // 등록된 메뉴 목록 조회
-            List<MenuVO> menuList = menuDAO.findExceptTopMenu();
-            for(MenuVO menu : menuList) {
-                MenuAuthorVO menuAuthor = saveMenuAuthor(menu.getMenuId(), id);
-                result += menuAuthorDAO.menuAuthrtSave(menuAuthor);
+            // 신규 메뉴 등록 시
+            if ("menu".equals(type)) {
+                // 등록된 권한 목록 조회
+                List<AuthorVO> authList = authorDAO.findAllSystem();
+                for (AuthorVO author : authList) {
+                    MenuAuthorVO menuAuthor = saveMenuAuthor(id, author.getAuthrtCd());
+                    result += menuAuthorDAO.menuAuthrtSave(menuAuthor);
+                }
+                // 신규 권한 등록 시
+            } else if ("author".equals(type)) {
+                // 등록된 메뉴 목록 조회
+                List<MenuVO> menuList = menuDAO.findExceptTopMenu();
+                for (MenuVO menu : menuList) {
+                    MenuAuthorVO menuAuthor = saveMenuAuthor(menu.getMenuId(), id);
+                    result += menuAuthorDAO.menuAuthrtSave(menuAuthor);
+                }
+                // 타입이 맞지 않다면 에러
+            } else {
+                throw new IllegalArgumentException("Invalid value : " + type);
             }
-            // 타입이 맞지 않다면 에러
-        } else {
-            throw new IllegalArgumentException("Invalid value : " + type);
+            return result;
+        } catch (CustomInsertFailException cife){
+            throw cife;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (NullPointerException ne) {
+            throw ne;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
         }
-        return result;
     }
 
     /**
-     * @author 박정하
-     * @since 2024.05.02
+     * @param params - 메뉴 권한 수정 정보
+     * @return int - 수정 결과
+     * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws NullPointerException - Null 값이 발생할 경우
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 메뉴 권한 수정
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
     @CacheEvict(value = "routerAuthInfo", allEntries = true)
-    public int updateMenuAuthrtProc(HashMap<String, Object> params) throws Exception {
-        int result = 0;
-        List<HashMap<String, Object>> menuList = (List<HashMap<String, Object>>)params.get("menuList");
-        String authrtCd = params.get("authrtCd").toString();
-        for(HashMap<String, Object> menu : menuList) {
-            menu.put("mdfr", jwtUtil.getWriter());
-            menu.put("authrtCd", authrtCd);
-            result += menuAuthorDAO.updateMenuAuthrt(menu);
+    public int updateMenuAuthrtProc(HashMap<String, Object> params){
+        try {
+            int result = 0;
+            List<HashMap<String, Object>> menuList = (List<HashMap<String, Object>>) params.get("menuList");
+            String authrtCd = params.get("authrtCd").toString();
+            for (HashMap<String, Object> menu : menuList) {
+                menu.put("mdfr", jwtUtil.getWriter());
+                menu.put("authrtCd", authrtCd);
+                result += menuAuthorDAO.updateMenuAuthrt(menu);
+            }
+            return result;
+        } catch (CustomUpdateFailException cufe){
+            throw cufe;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (NullPointerException ne) {
+            throw ne;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
         }
-        return result;
     }
 
     /**
      * @author 박정하
      * @since 2024.05.08
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
      * 메뉴 권한 조회
      */
     @Override
-    public List<HashMap<String, Object>> findAll(AuthorVO authorVO) throws Exception {
-        List<HashMap<String, Object>> result = menuAuthorDAO.findAll(authorVO);
-        for(HashMap<String, Object> menuAuthor : result) {
-            if (menuAuthor.get("upMenuId") != null) {
-                if (menuAuthor.get("inqAuthrt") != null && menuAuthor.get("regAuthrt") != null && menuAuthor.get("mdfcnAuthrt") != null && menuAuthor.get("delAuthrt") != null && menuAuthor.get("fileDwnldAuthrt") != null) {
-                    if(menuAuthor.get("inqAuthrt").equals("Y") && menuAuthor.get("regAuthrt").equals("Y") && menuAuthor.get("mdfcnAuthrt").equals("Y") && menuAuthor.get("delAuthrt").equals("Y") && menuAuthor.get("fileDwnldAuthrt").equals("Y")) {
-                        menuAuthor.put("checkedAll", "Y");
-                    } else {
-                        menuAuthor.put("checkedAll", "N");
+    public List<HashMap<String, Object>> findAll(AuthorVO authorVO) {
+        try {
+            List<HashMap<String, Object>> result = menuAuthorDAO.findAll(authorVO);
+            for (HashMap<String, Object> menuAuthor : result) {
+                if (menuAuthor.get("upMenuId") != null) {
+                    if (menuAuthor.get("inqAuthrt") != null && menuAuthor.get("regAuthrt") != null && menuAuthor.get("mdfcnAuthrt") != null && menuAuthor.get("delAuthrt") != null && menuAuthor.get("fileDwnldAuthrt") != null) {
+                        if (menuAuthor.get("inqAuthrt").equals("Y") && menuAuthor.get("regAuthrt").equals("Y") && menuAuthor.get("mdfcnAuthrt").equals("Y") && menuAuthor.get("delAuthrt").equals("Y") && menuAuthor.get("fileDwnldAuthrt").equals("Y")) {
+                            menuAuthor.put("checkedAll", "Y");
+                        } else {
+                            menuAuthor.put("checkedAll", "N");
+                        }
                     }
                 }
             }
+            return result;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
         }
-        return result;
     }
 }
(No newline at end of file)
src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
--- src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
+++ src/main/java/com/takensoft/cms/menu/service/Impl/MenuServiceImpl.java
@@ -9,25 +9,41 @@
 import com.takensoft.cms.menu.vo.MenuVO;
 import com.takensoft.cms.menu.vo.SysMenuVO;
 import com.takensoft.common.HierachyVO;
+import com.takensoft.common.exception.CustomDeleteFailException;
+import com.takensoft.common.exception.CustomInsertFailException;
+import com.takensoft.common.exception.CustomUpdateFailException;
 import com.takensoft.common.idgen.service.IdgenService;
 import com.takensoft.common.util.JWTUtil;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
+import org.springframework.dao.DataAccessException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 
 /**
- * @author  : takensoft
- * @since   : 2024.04.01
+ * @author takensoft
+ * @since 2024.04.01
+ * @modification
+ *     since    |    author    | description
+ *  2024.04.01  |  takensoft   | 최초 등록
+ *  2024.04.08  |  takensoft   | menuSave, findAll, findByChildMenu, findByMenu 추가
+ *  2024.04.09  |  takensoft   | MenuUpdate 추가
+ *  2024.04.15  |  takensoft   | saveMenuAuthor 추가
+ *  2024.04.25  |  takensoft   | findByTopNode, findChildNode 추가
+ *  2024.04.29  |    박정하     | menuDelete 추가
+ *  2024.05.09  |  takensoft   | findByMenuWithRouter 추가
+ *  2024.05.10  |    박정하     | updateList, updateChildNode 추가
+ *  2024.06.07  |    방선주     | bbsMngMenuDelete 추가
+ * EgovAbstractServiceImpl - 전자정부 프레임워크에서 제공하는 추상 서비스 구현 클래스
+ * MenuService - 메뉴 정보 인터페이스 상속
  *
- * 메뉴 정보 관련 구현체
- * EgovAbstractServiceImpl : 전자정부 상속
- * AuthorService : 메뉴 정보 인터페이스 상속
+ * 팝업 관련 서비스 구현체
  */
+
 @Service("menuServiceImpl")
 @RequiredArgsConstructor
 public class MenuServiceImpl extends EgovAbstractServiceImpl implements MenuService {
@@ -38,8 +54,10 @@
     private final JWTUtil jwtUtil;
 
     /**
-     * @author takensoft
-     * @since 2024.04.15
+     * @param menuId - 메뉴 ID
+     * @param AuthrtCd - 권한 코드
+     * @return MenuAuthorVO - 메뉴 권한 VO
+
      * 메뉴별 권한 등록을 위한 전처리
      */
     private MenuAuthorVO saveMenuAuthor(String menuId, String AuthrtCd) {
@@ -50,211 +68,360 @@
     }
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param menuVO - 메뉴 VO
+     * @return int - 메뉴 등록 결과
+     * @throws CustomInsertFailException - 등록 실패 예외 발생 시
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws NullPointerException - Null 값이 발생할 경우
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 메뉴 등록
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
     @CacheEvict(value = "findByMenuWithRouter", allEntries = true)
-    public int menuSave(MenuVO menuVO) throws Exception {
-        // 메뉴 아이디 생성
-        String menuId = menuIdgn.getNextStringId();
-        menuVO.setMenuId(menuId);
-        // 상위 메뉴가 존재하는 경우
-        if(menuVO.getUpMenuId() != null && !menuVO.getUpMenuId().equals("")) {
-            // 상위 메뉴 아이디 보다 깊이(레벨) 1추가
-            menuVO.setMenuGrd(menuDAO.findByMenuGrd(menuVO.getUpMenuId()) + 1);
-            // 동일한 깊이의 메뉴 순서 보다 1추가
-            menuVO.setMenuSn(menuDAO.findByMenuSn(menuVO.getUpMenuId()) + 1);
-        // 상위메뉴가 존재 하지 않는 경우
-        } else {
-            menuVO.setMenuGrd(0);
-            menuVO.setMenuSn(menuDAO.findByMenuSn(null) + 1);
-        }
-        // 작성자 정보
-        String writer = jwtUtil.getWriter();
-        menuVO.setRgtr(writer);
-        // 시스템 제공 여부
-        menuVO.setSysPvsnYn("1");
-        if(menuVO.getMenuGrd() != 0) {
-            String upMenuId = menuVO.getUpMenuId();
-            for (int i = 0; i < menuVO.getMenuGrd() - 1; i++) {
-                upMenuId = menuDAO.findUpMenuId(upMenuId);
-            }
-            if (upMenuId.equals("MENU_000000000000001")) {
-                menuVO.setSysPvsnYn("0");
-            }
-        }
-        // 메뉴 등록
-        int result = menuDAO.save(menuVO);
-
-        // 메뉴별 권한 등록
-        if(result > 0 && menuVO.getMenuGrd() != 0) {
-            String oriMenuId = menuVO.getMenuId();
-            for (int i = 0; i < menuVO.getMenuGrd(); i++) {
-                oriMenuId = menuDAO.findUpMenuId(oriMenuId);
-            }
-            if (oriMenuId.equals("MENU_000000000000001")) {
-                MenuAuthorVO menuAuthor = saveMenuAuthor(menuId, "ROLE_ADMIN");
-                result += menuAuthorDAO.menuAuthrtSave(menuAuthor);
+    public int menuSave(MenuVO menuVO) {
+        try {
+            // 메뉴 아이디 생성
+            String menuId = menuIdgn.getNextStringId();
+            menuVO.setMenuId(menuId);
+            // 상위 메뉴가 존재하는 경우
+            if (menuVO.getUpMenuId() != null && !menuVO.getUpMenuId().equals("")) {
+                // 상위 메뉴 아이디 보다 깊이(레벨) 1추가
+                menuVO.setMenuGrd(menuDAO.findByMenuGrd(menuVO.getUpMenuId()) + 1);
+                // 동일한 깊이의 메뉴 순서 보다 1추가
+                menuVO.setMenuSn(menuDAO.findByMenuSn(menuVO.getUpMenuId()) + 1);
+                // 상위메뉴가 존재 하지 않는 경우
             } else {
-                result += menuAuthorService.menuAuthrtSave(menuId, "menu");
+                menuVO.setMenuGrd(0);
+                menuVO.setMenuSn(menuDAO.findByMenuSn(null) + 1);
             }
+            // 작성자 정보
+            String writer = jwtUtil.getWriter();
+            menuVO.setRgtr(writer);
+            // 시스템 제공 여부
+            menuVO.setSysPvsnYn("1");
+            if (menuVO.getMenuGrd() != 0) {
+                String upMenuId = menuVO.getUpMenuId();
+                for (int i = 0; i < menuVO.getMenuGrd() - 1; i++) {
+                    upMenuId = menuDAO.findUpMenuId(upMenuId);
+                }
+                if (upMenuId.equals("MENU_000000000000001")) {
+                    menuVO.setSysPvsnYn("0");
+                }
+            }
+            // 메뉴 등록
+            int result = menuDAO.save(menuVO);
+
+            // 메뉴별 권한 등록
+            if (result > 0 && menuVO.getMenuGrd() != 0) {
+                String oriMenuId = menuVO.getMenuId();
+                for (int i = 0; i < menuVO.getMenuGrd(); i++) {
+                    oriMenuId = menuDAO.findUpMenuId(oriMenuId);
+                }
+                if (oriMenuId.equals("MENU_000000000000001")) {
+                    MenuAuthorVO menuAuthor = saveMenuAuthor(menuId, "ROLE_ADMIN");
+                    result += menuAuthorDAO.menuAuthrtSave(menuAuthor);
+                } else {
+                    result += menuAuthorService.menuAuthrtSave(menuId, "menu");
+                }
+            }
+            return result;
+        } catch (CustomInsertFailException cife){
+            throw cife;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (NullPointerException ne) {
+            throw ne;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
         }
-        return result;
     }
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param
+     * @return List<MenuVO> - 메뉴 목록
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 전체 메뉴 조회
      * !!현재 java버전과 mybatis버전이 낮은관계로 재귀적 쿼리 작성 불가!!
      */
     @Override
-    public List<MenuVO> findAll() throws Exception {
-        // 상위 메뉴 조회
-        List<MenuVO> topMenus = menuDAO.findTopMenu();
-        // 상위 메뉴에 따른 하위 메뉴 조회
-        for(MenuVO menu : topMenus) {
-            List<MenuVO> childMenus = findByChildMenu(menu.getMenuId());
-            menu.setChildMenuList(childMenus);
-        }
+    public List<MenuVO> findAll() {
+        try{
+            // 상위 메뉴 조회
+            List<MenuVO> topMenus = menuDAO.findTopMenu();
+            // 상위 메뉴에 따른 하위 메뉴 조회
+            for(MenuVO menu : topMenus) {
+                List<MenuVO> childMenus = findByChildMenu(menu.getMenuId());
+                menu.setChildMenuList(childMenus);
+            }
 
-        return topMenus;
+            return topMenus;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param menuId - 메뉴 ID
+     * @return List<MenuVO> - 메뉴 목록
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 하위 메뉴 조회
      */
     @Override
-    public List<MenuVO> findByChildMenu(String menuId) throws Exception {
-        List<MenuVO> childMenus = menuDAO.findChildMenus(menuId);
-        for(MenuVO menu : childMenus) {
-            List<MenuVO> grandChildMenus = findByChildMenu(menu.getMenuId());
-            menu.setChildMenuList(grandChildMenus);
+    public List<MenuVO> findByChildMenu(String menuId) {
+        try {
+            List<MenuVO> childMenus = menuDAO.findChildMenus(menuId);
+            for (MenuVO menu : childMenus) {
+                List<MenuVO> grandChildMenus = findByChildMenu(menu.getMenuId());
+                menu.setChildMenuList(grandChildMenus);
+            }
+            return childMenus;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
         }
-        return childMenus;
     }
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param menuId - 메뉴 ID
+     * @return MenuVO - 메뉴 정보
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 메뉴 상세 조회
      */
     @Override
-    public MenuVO findByMenu(String menuId) throws Exception {
-        return menuDAO.findByMenu(menuId);
+    public MenuVO findByMenu(String menuId) {
+        try{
+            return menuDAO.findByMenu(menuId);
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
     /**
-     * @author takensoft
-     * @since 2024.04.09
+     * @param menuVO - 메뉴 VO
+     * @return int - 수정 결과
+     * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws NullPointerException - Null 값이 발생할 경우
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 메뉴 수정
      */
     @Override
     @CacheEvict(value = "findByMenuWithRouter", allEntries = true)
-    public int MenuUpdate(MenuVO menuVO) throws Exception {
-        // 토큰정보에서 사용자 아이디 조회 후 등록
-        menuVO.setMdfr(jwtUtil.getWriter());
-        return menuDAO.update(menuVO);
+    public int MenuUpdate(MenuVO menuVO) {
+        try{
+            // 토큰정보에서 사용자 아이디 조회 후 등록
+            menuVO.setMdfr(jwtUtil.getWriter());
+            return menuDAO.update(menuVO);
+        } catch (CustomUpdateFailException cufe){
+            throw cufe;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (NullPointerException ne) {
+            throw ne;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
     }
 
     /************************************** Hierachy 전용 **************************************/
     /**
-     * @author takensoft
-     * @since 2024.04.25
+     * @param
+     * @return List<HierachyVO> - 최상위 메뉴 목록
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 최상위 메뉴 조회
      */
     @Override
-    public List<HierachyVO> findByTopNode() throws Exception {
-        List<HierachyVO> topDeptList = menuDAO.findByTopNode();
-        for(HierachyVO vo : topDeptList) {
-            List<HierachyVO> child = findChildNode(vo.getId());
-            vo.setChildList(child);
+    public List<HierachyVO> findByTopNode() {
+        try {
+            List<HierachyVO> topDeptList = menuDAO.findByTopNode();
+            for (HierachyVO vo : topDeptList) {
+                List<HierachyVO> child = findChildNode(vo.getId());
+                vo.setChildList(child);
+            }
+            return topDeptList;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
         }
-        return topDeptList;
     }
 
     /**
-     * @author takensoft
-     * @since 2024.04.25
+     * @param id - 메뉴 ID
+     * @return List<HierachyVO> - 메뉴 목록
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 하위 메뉴 조회
      */
     @Override
-    public List<HierachyVO> findChildNode(String id) throws Exception {
-        List<HierachyVO> childList = menuDAO.findChildNode(id);
-        for(HierachyVO vo : childList) {
-            List<HierachyVO> child = findChildNode(vo.getId());
-            vo.setChildList(child);
+    public List<HierachyVO> findChildNode(String id){
+        try {
+            List<HierachyVO> childList = menuDAO.findChildNode(id);
+            for (HierachyVO vo : childList) {
+                List<HierachyVO> child = findChildNode(vo.getId());
+                vo.setChildList(child);
+            }
+            return childList;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
         }
-        return childList;
     }
     /************************************** Hierachy 전용 **************************************/
 
     /**
-     * @author 박정하
-     * @since 2024.04.29
+     * @param menuVO - 메뉴 VO
+     * @return int - 삭제 결과
+     * @throws CustomUpdateFailException - 삭제 실패 예외 발생 시
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 메뉴 정보 삭제
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int menuDelete(MenuVO menuVO) throws Exception {
-        menuVO.setMdfr(jwtUtil.getWriter());
-        return menuDAO.deleteMenu(menuVO);
+    public int menuDelete(MenuVO menuVO) {
+        try {
+            menuVO.setMdfr(jwtUtil.getWriter());
+            return menuDAO.deleteMenu(menuVO);
+        } catch (CustomUpdateFailException cufe){
+            throw cufe;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
     }
 
     /************************************** 홈페이지 메뉴 호출 전용 **************************************/
     /**
-     * @author takensoft
-     * @since 2024.05.09
+     * @param mReq - 메뉴 요청 객체
+     * @return List<SysMenuVO> - 메뉴 목록
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 메뉴 조회(시스템용)
      */
     @Override
     @Cacheable(value = "findByMenuWithRouter", key = "#mReq.menuType")
     public List<SysMenuVO> findByMenuWithRouter(MenuRequest mReq) {
-        if(mReq.isChck() && mReq.getMenuType().equals("adm")) {
-            mReq.setMenuId("MENU_000000000000001");
-        } else if(mReq.isChck() && mReq.getMenuType().equals("company")) {
-            mReq.setMenuId("MENU_000000000000002");
-        } else if(mReq.isChck() && mReq.getMenuType().equals("government")) {
-            mReq.setMenuId("MENU_000000000000003");
+        try {
+            if (mReq.isChck() && mReq.getMenuType().equals("adm")) {
+                mReq.setMenuId("MENU_000000000000001");
+            } else if (mReq.isChck() && mReq.getMenuType().equals("company")) {
+                mReq.setMenuId("MENU_000000000000002");
+            } else if (mReq.isChck() && mReq.getMenuType().equals("government")) {
+                mReq.setMenuId("MENU_000000000000003");
+            }
+            mReq.setChck(false);
+            List<SysMenuVO> result = menuDAO.findByMenuWithRouter(mReq);
+            for (SysMenuVO vo : result) {
+                mReq.setMenuId(vo.getMenuId());
+                List<SysMenuVO> child = findByMenuWithRouter(mReq);
+                vo.setChildList(child);
+            }
+            return result;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
         }
-        mReq.setChck(false);
-        List<SysMenuVO> result = menuDAO.findByMenuWithRouter(mReq);
-        for(SysMenuVO vo : result) {
-            mReq.setMenuId(vo.getMenuId());
-            List<SysMenuVO> child = findByMenuWithRouter(mReq);
-            vo.setChildList(child);
-        }
-        return result;
     }
     /************************************** 홈페이지 메뉴 호출 전용 **************************************/
 
     /**
-     * @author 박정하
-     * @since 2024.05.10
+     * @param deptList - 부서 리스트
+     * @return int - 수정 결과
+     * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws NullPointerException - Null 값이 발생할 경우
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 메뉴 정보 수정 (hierachyVO 사용)
      */
     @Override
     @CacheEvict(value = "findByMenuWithRouter", allEntries = true)
     @Transactional(rollbackFor = Exception.class)
-    public int updateList(List<HierachyVO> deptList) throws Exception {
+    public int updateList(List<HierachyVO> deptList){
         int result = 0;
-        String writer = jwtUtil.getWriter();
+        try {
+            String writer = jwtUtil.getWriter();
 
-        if(deptList != null && deptList.size() > 0) {
+            if (deptList != null && deptList.size() > 0) {
+                int sn = 1;
+                for (HierachyVO hierachyVO : deptList) {
+                    // 최상위 노드 수정
+                    MenuVO vo = new MenuVO();
+                    vo.setMenuId(hierachyVO.getId());
+                    vo.setUpMenuId(null);
+                    vo.setMenuGrd(0);
+                    vo.setMenuSn(sn);
+                    vo.setMdfr(writer);
+                    result += menuDAO.menuUpdateByHierachy(vo);
+
+                    // 하위 노드 수정
+                    if (hierachyVO.getChildList() != null && hierachyVO.getChildList().size() > 0) {
+                        result += updateChildNode(hierachyVO.getChildList(), vo);
+                    }
+                    sn++;
+                }
+            }
+            return result;
+        } catch (CustomUpdateFailException cufe){
+            throw cufe;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (NullPointerException ne) {
+            throw ne;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+    /**
+     * @author 박정하
+     * @since 2024.05.10
+     * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws NullPointerException - Null 값이 발생할 경우
+     * @throws Exception - 그 외 예외 발생 시
+     *
+     * 하위 메뉴 수정
+     */
+    @Override
+    @CacheEvict(value = "findByMenuWithRouter", allEntries = true)
+    public int updateChildNode(List<HierachyVO> childList, MenuVO upMenuVO) {
+        int result = 0;
+        try {
+            String upDeptId = upMenuVO.getMenuId();
+            int grd = upMenuVO.getMenuGrd() + 1;
             int sn = 1;
-            for(HierachyVO hierachyVO : deptList) {
-                // 최상위 노드 수정
+            String mdfr = upMenuVO.getMdfr();
+            for (HierachyVO hierachyVO : childList) {
+                // 현재 노드 수정
                 MenuVO vo = new MenuVO();
                 vo.setMenuId(hierachyVO.getId());
-                vo.setUpMenuId(null);
-                vo.setMenuGrd(0);
+                vo.setUpMenuId(upDeptId);
+                vo.setMenuGrd(grd);
                 vo.setMenuSn(sn);
-                vo.setMdfr(writer);
+                vo.setMdfr(mdfr);
                 result += menuDAO.menuUpdateByHierachy(vo);
 
                 // 하위 노드 수정
@@ -263,48 +430,40 @@
                 }
                 sn++;
             }
+            return result;
+        } catch (CustomUpdateFailException cufe){
+            throw cufe;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (NullPointerException ne) {
+            throw ne;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
         }
-        return result;
-    }
-    /**
-     * @author 박정하
-     * @since 2024.05.10
-     * 하위 메뉴 수정
-     */
-    @Override
-    @CacheEvict(value = "findByMenuWithRouter", allEntries = true)
-    public int updateChildNode(List<HierachyVO> childList, MenuVO upMenuVO) throws Exception {
-        int result = 0;
-        String upDeptId = upMenuVO.getMenuId();
-        int grd = upMenuVO.getMenuGrd() + 1;
-        int sn = 1;
-        String mdfr = upMenuVO.getMdfr();
-        for(HierachyVO hierachyVO : childList) {
-            // 현재 노드 수정
-            MenuVO vo = new MenuVO();
-            vo.setMenuId(hierachyVO.getId());
-            vo.setUpMenuId(upDeptId);
-            vo.setMenuGrd(grd);
-            vo.setMenuSn(sn);
-            vo.setMdfr(mdfr);
-            result += menuDAO.menuUpdateByHierachy(vo);
-
-            // 하위 노드 수정
-            if (hierachyVO.getChildList() != null && hierachyVO.getChildList().size() > 0) {
-                result += updateChildNode(hierachyVO.getChildList(), vo);
-            }
-            sn++;
-        }
-        return result;
     }
     /**
      * @author 방선주
      * @since 2024.06.07
+     * @throws CustomUpdateFailException - 수정 실패 예외 발생 시
+     * @throws DataAccessException - 데이터베이스 접근 예외 발생 시
+     * @throws NullPointerException - Null 값이 발생할 경우
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 게시판 관리에서 게시판 삭제 시 게시판 메뉴 미노출로 변경
      */
     @Override
     @CacheEvict(value = "findByMenuWithRouter", allEntries = true)
-    public int bbsMngMenuDelete(MenuVO menuVO) throws Exception {
-        return menuDAO.bbsMngMenuDelete(menuVO);
+    public int bbsMngMenuDelete(MenuVO menuVO) {
+        try {
+            return menuDAO.bbsMngMenuDelete(menuVO);
+        } catch (CustomUpdateFailException cufe){
+            throw cufe;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (NullPointerException ne) {
+            throw ne;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
     }
 }
src/main/java/com/takensoft/cms/menu/service/MenuAuthorService.java
--- src/main/java/com/takensoft/cms/menu/service/MenuAuthorService.java
+++ src/main/java/com/takensoft/cms/menu/service/MenuAuthorService.java
@@ -5,30 +5,37 @@
 import java.util.*;
 
 /**
- * @author  : 박정하
- * @since   : 2024.05.07
+ * @author 박정하
+ * @since 2024.05.07
+ * @modification
+ *     since    |    author    | description
+ *  2024.05.07  |    박정하     | 최초 등록
  *
- * 메뉴 권한 정보 관련 인터페이스
+ * 메뉴 권한 정보 관련  인터페이스
  */
 public interface MenuAuthorService {
     /**
-     * @author takensoft
-     * @since 2024.04.15
+     * @param menuId - 메뉴 ID,
+     * @param type - 메뉴 타입
+     * @return int - 등록 결과
+     *
      * 메뉴별 권한 등록
      */
-    public int menuAuthrtSave(String menuId, String type);
+    int menuAuthrtSave(String menuId, String type);
 
     /**
-     * @author 박정하
-     * @since 2024.05.02
+     * @param params - 메뉴 권한 정보
+     * @return int - 수정 결과
+     *
      * 메뉴 권한 수정
      */
-    public int updateMenuAuthrtProc(HashMap<String, Object> params) throws Exception;
+    int updateMenuAuthrtProc(HashMap<String, Object> params);
 
     /**
-     * @author 박정하
-     * @since 2024.05.08
+     * @param authorVO - 권한 정보
+     * @return List<HashMap<String, Object>> - 메뉴 권한 목록
+     *
      * 메뉴 권한 조회
      */
-    public List<HashMap<String, Object>> findAll(AuthorVO authorVO) throws Exception;
+    List<HashMap<String, Object>> findAll(AuthorVO authorVO);
 }
(No newline at end of file)
src/main/java/com/takensoft/cms/menu/service/MenuService.java
--- src/main/java/com/takensoft/cms/menu/service/MenuService.java
+++ src/main/java/com/takensoft/cms/menu/service/MenuService.java
@@ -12,91 +12,113 @@
 import java.util.List;
 
 /**
- * @author  : takensoft
- * @since   : 2024.04.01
+ * @author takensoft
+ * @since 2024.04.01
+ * @modification
+ *     since    |    author    | description
+ *  2024.04.01  |  takensoft   | 최초 등록
  *
  * 메뉴 정보 관련 인터페이스
  */
 public interface MenuService {
+
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param menuVO - 메뉴 정보
+     * @return int - 등록 결과
+     *
      * 메뉴 등록
      */
-    public int menuSave(MenuVO menuVO) throws Exception;
+    int menuSave(MenuVO menuVO);
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param
+     * @return List<MenuVO> - 전체 메뉴 정보
+     *
      * 전체 메뉴 조회
      */
-    public List<MenuVO> findAll() throws Exception;
+    List<MenuVO> findAll();
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param menuId - 메뉴 ID
+     * @return List<MenuVO> - 하위 메뉴 정보
+     *
      * 하위 메뉴 조회
      */
-    public List<MenuVO> findByChildMenu(String menuId) throws Exception;
+    List<MenuVO> findByChildMenu(String menuId);
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
+     * @param menuId - 메뉴 ID
+     * @return MenuVO - 메뉴 정보
+     *
      * 메뉴 조회
      */
-    public MenuVO findByMenu(String menuId) throws Exception;
+    MenuVO findByMenu(String menuId);
 
     /**
-     * @author takensoft
-     * @since 2024.04.09
+     * @param menuVO - 메뉴 정보
+     * @return int - 수정 결과
+     *
      * 메뉴 수정
      */
-    public int MenuUpdate(MenuVO menuVO) throws Exception;
+    int MenuUpdate(MenuVO menuVO);
 
     /************************************** Hierachy 전용 **************************************/
+
     /**
-     * @author takensoft
-     * @since 2024.04.25
-     * 최상위 코드 조회
+     * @param
+     * @return List<HierachyVO> - 최상위 메뉴 목록
+     *
+     * 최상위 메뉴 조회
      */
-    public List<HierachyVO> findByTopNode() throws Exception;
+    List<HierachyVO> findByTopNode();
+
     /**
-     * @author takensoft
-     * @since 2024.04.25
+     * @param id - 메뉴 ID
+     * @return List<HierachyVO> - 하위 메뉴 정보
+     *
      * 하위 코드 조회
      */
-    public List<HierachyVO> findChildNode(String id) throws Exception;
+    List<HierachyVO> findChildNode(String id);
     /************************************** Hierachy 전용 **************************************/
 
     /**
-     * @author 박정하
-     * @since 2024.04.29
+     * @param menuVO - 메뉴 정보
+     * @return int - 삭제 결과
+     *
      * 메뉴 정보 삭제
      */
-    public int menuDelete(MenuVO menuVO) throws Exception;
-    /**
-     * @author takensoft
-     * @since 2024.05.09
-     * 메뉴 조회(시스템용)
-     */
-    public List<SysMenuVO> findByMenuWithRouter(MenuRequest menuRequest);
+    int menuDelete(MenuVO menuVO);
 
     /**
-     * @author 박정하
-     * @since 2024.05.09
+     * @param menuRequest - 메뉴 조회 param 객체
+     * @return int - List<SysMenuVO> - 메뉴 목록
+     *
+     * 메뉴 조회(시스템용)
+     */
+    List<SysMenuVO> findByMenuWithRouter(MenuRequest menuRequest);
+
+    /**
+     * @param deptList - 부서 리스트
+     * @return int - 수정 결과
+     *
      * 메뉴 목록 수정
      */
-    public int updateList(List<HierachyVO> deptList) throws Exception;
+    int updateList(List<HierachyVO> deptList);
+
     /**
-     * @author 박정하
-     * @since 2024.05.10
+     * @param childList - 하위 부서 목록
+     * @param menuVO - 메뉴 정보
+     * @return int - 등록 결과
+     *
      * 하위 메뉴 수정
      */
-    public int updateChildNode(List<HierachyVO> childList, MenuVO menuVO) throws Exception;
+    int updateChildNode(List<HierachyVO> childList, MenuVO menuVO);
+
     /**
-     * @author 방선주
-     * @since 2024.06.07
-     * 게시판 관리에서 게시판 삭제 시 게시판 메뉴 미노출로 변경
+     * @param menuVO - 메뉴 정보
+     * @return int - 수정 결과
+     *
+     * 게시판 삭제 시 게시판 메뉴 미노출
      */
-    public int bbsMngMenuDelete(MenuVO menuVO) throws Exception;
+    int bbsMngMenuDelete(MenuVO menuVO);
 }
src/main/java/com/takensoft/cms/menu/vo/MenuRequest.java
--- src/main/java/com/takensoft/cms/menu/vo/MenuRequest.java
+++ src/main/java/com/takensoft/cms/menu/vo/MenuRequest.java
@@ -10,12 +10,6 @@
 /**
  * @author  : takensoft
  * @since   : 2024.05.09
- *
- * 메뉴 조회 파라미터
- */
-/**
- * @author  : takensoft
- * @since   : 2024.05.09
  * @modification
  *     since    |    author    | description
  *  2024.05.09  |  takensoft   | 최초 등록
src/main/java/com/takensoft/cms/menu/web/MenuAuthorController.java
--- src/main/java/com/takensoft/cms/menu/web/MenuAuthorController.java
+++ src/main/java/com/takensoft/cms/menu/web/MenuAuthorController.java
@@ -31,19 +31,18 @@
 @RequiredArgsConstructor
 @RequestMapping(value = "/admin/menuAuthor")
 public class MenuAuthorController {
+
     private final MenuAuthorService menuAuthorService;
     private final ResponseUtil resUtil;
+
     /**
-     * @author 박정하
-     * @since 2024.05.02
-     * @param
-     * @return
-     * @throws Exception
+     * @param authorVO - 권한 정보를 포함하는 VO
+     * @return ResponseEntity - 메뉴 권한 목록 조회 결과를 포함하는 ResponseEntity
      *
      * 메뉴 권한 목록 조회
      */
     @PostMapping(value = "/findAllByAuthor.json")
-    public ResponseEntity<?> findAllByAuthor(@RequestBody AuthorVO authorVO) throws Exception {
+    public ResponseEntity<?> findAllByAuthor(@RequestBody AuthorVO authorVO) {
         List<HashMap<String, Object>> result = menuAuthorService.findAll(authorVO);
 
         // 응답 처리
@@ -51,16 +50,13 @@
     }
 
     /**
-     * @author 박정하
-     * @since 2024.05.02
-     * @param params
-     * @return
-     * @throws Exception
+     * @param params - 메뉴 권한 정보를 포함하는 HashMap
+     * @return ResponseEntity - 메뉴 권한 수정 결과를 포함하는 ResponseEntity
      *
      * 메뉴 권한 수정
      */
     @PostMapping(value = "/updateMenuAuthrtProc.json")
-    public ResponseEntity<?> updateMenuAuthrtProc(@RequestBody HashMap<String, Object> params) throws Exception {
+    public ResponseEntity<?> updateMenuAuthrtProc(@RequestBody HashMap<String, Object> params) {
         // 메뉴 권한 수정
         int result = menuAuthorService.updateMenuAuthrtProc(params);
 
src/main/java/com/takensoft/cms/menu/web/MenuController.java
--- src/main/java/com/takensoft/cms/menu/web/MenuController.java
+++ src/main/java/com/takensoft/cms/menu/web/MenuController.java
@@ -28,8 +28,11 @@
  * @modification
  *     since    |    author    | description
  *  2024.04.01  |  takensoft   | 최초 등록
+ *  2024.04.08  |  takensoft   | SaveProc, findAll, findByMenu, updateProc, deleteProc 추가
+ *  2024.04.29  |    박정하     | deleteProc 추가
+ *  2024.05.10  |    박정하     | updateListProc 추가
  *
- * 메뉴 정보 관련 컨트롤러
+ * 메뉴 정보 관련 Controller
  */
 @RestController
 @RequiredArgsConstructor
@@ -42,16 +45,13 @@
     private final CodeManageService codeManageService;
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
-     * @param menuVO
-     * @return
-     * @throws Exception
+     * @param menuVO - 메뉴 정보
+     * @return ResponseEntity - 메뉴 등록 결과를 포함하는 ResponseEntity
      *
      * 메뉴 등록
      */
     @PostMapping(value = "/saveProc.json")
-    public ResponseEntity<?> SaveProc(@RequestBody MenuVO menuVO) throws Exception {
+    public ResponseEntity<?> SaveProc(@RequestBody MenuVO menuVO) {
         // 메뉴 등록
         int result = menuService.menuSave(menuVO);
 
@@ -64,16 +64,13 @@
     }
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
      * @param
-     * @return
-     * @throws Exception
+     * @return ResponseEntity - 메뉴 조회 결과를 포함하는 ResponseEntity
      *
      * 메뉴 목록 조회 (관리자 페이지용)
      */
     @GetMapping(value = "/findAll.json")
-    public ResponseEntity<?> findAll() throws Exception {
+    public ResponseEntity<?> findAll() {
         // Tree용
         List<HierachyVO> hierachyList = menuService.findByTopNode();
 
@@ -90,16 +87,13 @@
     }
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
-     * @param menuVO
-     * @return
-     * @throws Exception
+     * @param menuVO - 메뉴 정보
+     * @return ResponseEntity - 메뉴 상세 조회 결과를 포함하는 ResponseEntity
      *
      * 메뉴 상세 조회 (관리자 페이지용)
      */
     @PostMapping("/findByMenu.json")
-    public ResponseEntity<?> findByMenu(@RequestBody MenuVO menuVO) throws Exception {
+    public ResponseEntity<?> findByMenu(@RequestBody MenuVO menuVO) {
         // 메뉴 조회
         MenuVO result = menuService.findByMenu(menuVO.getMenuId());
         // 응답 처리
@@ -107,16 +101,13 @@
     }
 
     /**
-     * @author takensoft
-     * @since 2024.04.08
-     * @param menuVO
-     * @return
-     * @throws Exception
+     * @param menuVO - 메뉴 정보
+     * @return ResponseEntity - 메뉴 정보 수정 결과를 포함하는 ResponseEntity
      *
      * 메뉴 정보 수정
      */
     @PostMapping(value = "/updateProc.json")
-    public ResponseEntity<?> updateProc(@RequestBody MenuVO menuVO) throws Exception {
+    public ResponseEntity<?> updateProc(@RequestBody MenuVO menuVO){
         // 메뉴 등록
         int result = menuService.MenuUpdate(menuVO);
 
@@ -132,16 +123,13 @@
     }
 
     /**
-     * @author 박정하
-     * @since 2024.04.29
-     * @param menuVO
-     * @return
-     * @throws Exception
+     * @param menuVO - 메뉴 정보
+     * @return ResponseEntity - 메뉴 정보 삭제 결과를 포함하는 ResponseEntity
      *
      * 메뉴 정보 삭제
      */
     @PostMapping(value = "/deleteProc.json")
-    public ResponseEntity<?> deleteProc(@RequestBody MenuVO menuVO) throws Exception {
+    public ResponseEntity<?> deleteProc(@RequestBody MenuVO menuVO){
         // 메뉴 삭제
         int result = menuService.menuDelete(menuVO);
 
@@ -158,16 +146,13 @@
     }
 
     /**
-     * @author 박정하
-     * @since 2024.05.10
-     * @param menuList
-     * @return
-     * @throws Exception
+     * @param menuList - 메뉴 목록
+     * @return ResponseEntity - 메뉴 정보 수정 결과를 포함하는 ResponseEntity
      *
      * 메뉴 목록 수정
      */
     @PostMapping(value = "/updateListProc.json")
-    public ResponseEntity<?> updateListProc(@RequestBody List<HierachyVO> menuList) throws Exception {
+    public ResponseEntity<?> updateListProc(@RequestBody List<HierachyVO> menuList){
         // 메뉴 목록 수정
         int result = menuService.updateList(menuList);
 
src/main/java/com/takensoft/cms/menu/web/SystemMenuController.java
--- src/main/java/com/takensoft/cms/menu/web/SystemMenuController.java
+++ src/main/java/com/takensoft/cms/menu/web/SystemMenuController.java
@@ -29,7 +29,7 @@
  *     since    |    author    | description
  *  2024.04.30  |  takensoft   | 최초 등록
  *
- * 메뉴 정보 관련 컨트롤러(사용자단용)
+ * 메뉴 정보 관련 Controller(사용자단용)
  */
 @RestController
 @RequiredArgsConstructor
@@ -39,17 +39,15 @@
 
     private final MenuService menuService;
     private final ResponseUtil resUtil;
+
     /**
-     * @author takensoft
-     * @since 2024.04.30
-     * @param
-     * @return
-     * @throws Exception
+     * @param menuRequest - 메뉴 요청 정보
+     * @return ResponseEntity - 메뉴 정보 응답 ResponseEntity
      *
      * 메뉴 조회(홈페이지 메뉴 조회용)
      */
     @PostMapping(value = "/findByMenu.json")
-    public ResponseEntity<?> findByMenu(@RequestBody MenuRequest menuRequest) throws Exception {
+    public ResponseEntity<?> findByMenu(@RequestBody MenuRequest menuRequest){
         List<SysMenuVO> menuList = menuService.findByMenuWithRouter(menuRequest);
         HashMap<String, Object> result = new HashMap<>();
         result.put("menuList", menuList);
src/main/java/com/takensoft/cms/popup/service/Impl/PopupServiceImpl.java
--- src/main/java/com/takensoft/cms/popup/service/Impl/PopupServiceImpl.java
+++ src/main/java/com/takensoft/cms/popup/service/Impl/PopupServiceImpl.java
@@ -48,12 +48,6 @@
     private final CodeManageService codeManageService;
 
     /**
-     * @author  : 박정하
-     * @since   : 2024.05.13
-     *
-     * 팝업 등록
-     */
-    /**
      * @param popupVO - 팝업 등록 정보를 포함하는 객체
      * @param multipartFileList - 첨부파일 리스트
      * @return HashMap<String, Object> - 등록 결과 및 팝업 ID
@@ -263,12 +257,6 @@
         }
     }
 
-    /**
-     * @author  : 박정하
-     * @since   : 2024.05.14
-     *
-     * 팝업 삭제
-     */
     /**
      * @param popupVO - 팝업 정보
      * @return int - 삭제 결과(0: 실패, 1: 성공)
src/main/java/com/takensoft/cms/search/web/SearchController.java
--- src/main/java/com/takensoft/cms/search/web/SearchController.java
+++ src/main/java/com/takensoft/cms/search/web/SearchController.java
@@ -36,9 +36,7 @@
 
     /**
      * @param searchVO - 검색 조건을 포함하는 VO
-     * @return ResponseEntity
-     *  - body: 검색 결과를 포함하는 SearchResultVO
-     *  - message: 성공 메시지
+     * @return ResponseEntity - 통합 검색 결과를 포함하는 ResponseEntity
      *
      * 통합 검색
      */
Add a comment
List