하석형 하석형 03-22
250322 하석형 게시판 관리 관련 throws Exception -> try catch 변경
@9a62522288e387bdad83910a4543fa56cb83b567
src/main/java/com/takensoft/cms/bbs/dao/BbsMngDAO.java
--- src/main/java/com/takensoft/cms/bbs/dao/BbsMngDAO.java
+++ src/main/java/com/takensoft/cms/bbs/dao/BbsMngDAO.java
@@ -13,116 +13,139 @@
  *
  * 게시판 관리 관련 Mapper
  */
+
+/**
+ * @author 박정하
+ * @since 2024.05.08
+ * @modification
+ *     since    |    author    | description
+ *  2024.05.08  |    박정하     | 최초 등록
+ *  2024.05.08  |    하석형     | findByBbsMngId
+ *  2024.05.09  |    하석형     | update, delete 추가
+ *  2024.05.10  |    하석형     | save, findAllCnt, findAll 추가
+ *  2024.05.13  |    하석형     | saveBbsRouter, updateBbsRouter, deleteBbsRouter 추가
+ *  2024.05.16  |    박정하     | findAllByMenuMng 추가
+ *  2024.06.04  |    방선주     | findAllBbsRouter 추가
+ *  2024.06.05  |    방선주     | updateCrs 추가
+ *  2024.07.18  |    박정하     | findAllCntNotPagination 추가
+ *  2025.03.21  |    하석형     | 코드 리펙토링
+ *
+ * 게시판 관리 관련 DAO
+ */
 @Mapper("bbsMngDAO")
 public interface BbsMngDAO {
     /**
-     * @author  박정하
-     * @since   2024.05.08
+     * @param bbsMngVO - 게시판 정보
+     * @return boolean - 게시판 아이디 중복 여부
+     *
      * 게시판 아이디 중복 검사
      */
-    public boolean bbsMngIdCheck(BbsMngVO bbsMngVO) throws Exception;
+    public boolean bbsMngIdCheck(BbsMngVO bbsMngVO);
 
     /**
-     * @author  하석형
-     * @since   2024.05.10
+     * @param bbsMngVO - 게시판 정보
+     * @return int - 게시판 관리 등록 결과
+     *
      * 게시판 관리 등록
      */
-    public int save(BbsMngVO bbsMngVO) throws Exception;
+    public int save(BbsMngVO bbsMngVO);
 
     /**
-     * @author  하석형
-     * @since   2024.05.10
+     * @param pagination - 페이징 정보
+     * @return int - 게시판 관리 목록 조회 개수
+     *
      * 게시판 관리 목록 조회 개수
      */
-    public int findAllCnt(Pagination pagination) throws Exception;
+    public int findAllCnt(Pagination pagination);
 
     /**
-     * @author  하석형
-     * @since   2024.05.10
+     * @param pagination - 페이징 정보
+     * @return List<BbsMngVO> - 게시판 관리 정보를 담고 있는 객체 목록
+     *
      * 게시판 관리 목록 조회
      */
-    public List<BbsMngVO> findAll(Pagination pagination) throws Exception;
+    public List<BbsMngVO> findAll(Pagination pagination);
 
     /**
-     * @author  박정하
-     * @since   2024.05.16
+     * @return List<BbsMngVO> - 게시판 관리 정보를 담고 있는 객체 목록
+     *
      * 게시판 관리 목록 조회 (메뉴 관리용)
      */
-    public List<BbsMngVO> findAllByMenuMng() throws Exception;
+    public List<BbsMngVO> findAllByMenuMng();
 
     /**
-     * @author 하석형
-     * @since  2024.05.08
+     * @param bbsMngId - 게시판 관리 아이디
+     * @return BbsMngVO - 게시판 관리 정보를 담고 있는 객체
      *
      * 게시판 관리 상세 조회
      */
     public BbsMngVO findByBbsMngId(String bbsMngId);
 
     /**
-     * @author 하석형
-     * @since  2024.05.09
+     * @param bbsMngVO - 게시판 관리 정보
+     * @return int - 게시판 관리 수정 결과
      *
      * 게시판 관리 수정
      */
-    public int update(BbsMngVO bbsMngVO) throws Exception;
+    public int update(BbsMngVO bbsMngVO);
 
     /**
-     * @author 하석형
-     * @since  2024.05.09
+     * @param bbsMngVO - 게시판 관리 정보
+     * @return int - 게시판 관리 삭제 결과
      *
      * 게시판 관리 삭제
      */
-    public int delete(BbsMngVO bbsMngVO) throws Exception;
+    public int delete(BbsMngVO bbsMngVO);
+
+    /**
+     * @return int - 게시판 관리 목록 조회 개수
+     *
+     * 게시판 관리 목록 조회 개수 (접속 통계용)
+     */
+    public int findAllCntNotPagination();
 
 
 
     /** ********************************* 게시판 라우터 (시작) ********************************* */
     /**
-     * @author 하석형
-     * @since  2024.05.13
+     * @param bbsRouterVO - 게시판 라우터 정보
+     * @return int - 게시판 라우터 등록 결과
      *
      * 게시판 라우터 등록
      */
-    public int saveBbsRouter(BbsRouterVO bbsRouterVO) throws Exception;
+    public int saveBbsRouter(BbsRouterVO bbsRouterVO);
 
     /**
-     * @author 하석형
-     * @since  2024.05.13
+     * @param bbsRouterVO - 게시판 라우터 정보
+     * @return int - 게시판 라우터 수정 결과
      *
      * 게시판 라우터 수정
      */
-    public int updateBbsRouter(BbsRouterVO bbsRouterVO) throws Exception;
+    public int updateBbsRouter(BbsRouterVO bbsRouterVO);
 
     /**
-     * @author 하석형
-     * @since  2024.05.13
+     * @param bbsMngId - 게시판 관리 아이디
+     * @return int - 게시판 라우터 삭제 결과
      *
      * 게시판 라우터 삭제
      */
-    public int deleteBbsRouter(String bbsMngId) throws Exception;
+    public int deleteBbsRouter(String bbsMngId);
 
     /**
-     * @author 방선주
-     * @since  2024.06.04
+     * @param bbsMngId - 게시판 관리 아이디
+     * @return List<BbsRouterVO> - 게시판 라우터 정보를 담고 있는 객체 목록
      *
      * 게시판 라우터 목록 조회
      */
     public List<BbsRouterVO> findAllBbsRouter(String bbsMngId);
 
     /**
-     * @author 방선주
-     * @since  2024.06.05
+     * @param route - 게시판 라우터 정보
+     * @return
      *
      * 게시판 라우터 pshrcrs 수정
      */
-    public void updateCrs(BbsRouterVO route);
+    public int updateCrs(BbsRouterVO route);
 
     /** ********************************* 게시판 라우터 (종료) ********************************* */
-
-    /**
-     * @author  박정하
-     * @since   2024.07.18
-     * 게시판 관리 목록 조회 개수 (접속 통계용)
-     */
-    public int findAllCntNotPagination();
 }
(No newline at end of file)
src/main/java/com/takensoft/cms/bbs/service/BbsMngService.java
--- src/main/java/com/takensoft/cms/bbs/service/BbsMngService.java
+++ src/main/java/com/takensoft/cms/bbs/service/BbsMngService.java
@@ -3,94 +3,113 @@
 import com.takensoft.cms.author.vo.AuthorVO;
 import com.takensoft.cms.bbs.vo.BbsMngVO;
 import com.takensoft.cms.bbs.vo.BbsRouterVO;
+import com.takensoft.common.exception.*;
+import org.springframework.dao.DataAccessException;
 
 import java.util.*;
 
 /**
- * @author  : 박정하
- * @since   : 2024.05.08
+ * @author 박정하
+ * @since 2024.05.08
+ * @modification
+ *     since    |    author    | description
+ *  2024.05.08  |    박정하     | 최초 등록
+ *  2024.05.08  |    하석형     | findByBbsMngId 추가
+ *  2024.05.09  |    하석형     | updateBbsMng, deleteBbsMng 추가
+ *  2024.05.10  |    하석형     | saveBbsMng, findAllBbsMng 추가
+ *  2024.05.13  |    하석형     | saveBbsRouter, updateBbsRouter, deleteBbsRouter 추가
+ *  2024.05.16  |    박정하     | findAllByMenuMng 추가
+ *  2025.03.21  |    하석형     | 코드 리펙토링
  *
  * 게시판 관리 관련 인터페이스
  */
 public interface BbsMngService {
     /**
-     * @author  박정하
-     * @since   2024.05.08
+     * @param bbsMngVO - 게시판 정보
+     * @return boolean - 게시판 아이디 중복 여부
+     *
      * 게시판 아이디 중복 검사
      */
-    public boolean bbsMngIdCheck(BbsMngVO bbsMngVO) throws Exception;
+    public boolean bbsMngIdCheck(BbsMngVO bbsMngVO);
 
     /**
-     * @author  하석형
-     * @since   2024.05.10
+     * @param bbsMngVO - 게시판 관리 정보
+     * @return HashMap<String, Object>
+     *  - bbsMngId : 게시판 관리 아이디
+     *  - result : 게시판 관리 등록 결과
+     *
      * 게시판 관리 등록
      */
-    public HashMap<String, Object> saveBbsMng(BbsMngVO bbsMngVO) throws Exception;
+    public HashMap<String, Object> saveBbsMng(BbsMngVO bbsMngVO);
 
     /**
-     * @author  하석형
-     * @since   2024.05.10
+     * @param params - 게시판 정보
+     * @return Map<String, Object>
+     *  - list : 게시판 내용 목록
+     *  - pagination : 페이징 정보
+     *
      * 게시판 관리 목록 조회
      */
-    public Map<String, Object> findAllBbsMng(HashMap<String, String> params) throws Exception;
+    public Map<String, Object> findAllBbsMng(HashMap<String, String> params);
 
     /**
-     * @author  박정하
-     * @since   2024.05.16
+     * @return List<BbsMngVO> - 게시판 관리 정보를 담고 있는 객체 목록
+     *
      * 게시판 관리 목록 조회 (메뉴 관리용)
      */
-    public List<BbsMngVO> findAllByMenuMng() throws Exception;
+    public List<BbsMngVO> findAllByMenuMng();
 
     /**
-     * @author 하석형
-     * @since  2024.05.08
+     * @param bbsMngId - 게시판 관리 아이디
+     * @return BbsMngVO - 게시판 관리 정보를 담고 있는 객체
      *
      * 게시판 관리 상세 조회
      */
-    public BbsMngVO findByBbsMngId(String bbsMngId) throws Exception;
+    public BbsMngVO findByBbsMngId(String bbsMngId);
 
     /**
-     * @author 하석형
-     * @since  2024.05.09
+     * @param bbsMngVO - 게시판 관리 아이디
+     * @return int - 게시판 관리 수정 결과
      *
      * 게시판 관리 수정
      */
-    public int updateBbsMng(BbsMngVO bbsMngVO) throws Exception;
+    public int updateBbsMng(BbsMngVO bbsMngVO);
 
     /**
-     * @author 하석형
-     * @since  2024.05.09
+     * @param bbsMngVO - 게시판 관리 아이디
+     * @return int - 게시판 관리 삭제 결과
      *
      * 게시판 관리 삭제
      */
-    public int deleteBbsMng(BbsMngVO bbsMngVO) throws Exception;
+    public int deleteBbsMng(BbsMngVO bbsMngVO);
 
 
 
     /** ********************************* 게시판 라우터 (시작) ********************************* */
+
     /**
-     * @author 하석형
-     * @since  2024.05.13
+     * @param bbsRouterVO - 게시판 라우터 정보
+     * @return int - 게시판 라우터 등록 결과
      *
      * 게시판 라우터 등록
      */
-    public int saveBbsRouter(BbsRouterVO bbsRouterVO) throws Exception;
+    public int saveBbsRouter(BbsRouterVO bbsRouterVO);
 
     /**
-     * @author 하석형
-     * @since  2024.05.13
+     * @param bbsRouterVO - 게시판 라우터 정보
+     * @return int - 게시판 라우터 수정 결과
      *
      * 게시판 라우터 수정
      */
-    public int updateBbsRouter(BbsRouterVO bbsRouterVO) throws Exception;
+    public int updateBbsRouter(BbsRouterVO bbsRouterVO);
 
     /**
-     * @author 하석형
-     * @since  2024.05.13
+     * @param bbsMngId - 게시판 관리 아이디
+     * @return int - 게시판 라우터 삭제 결과
      *
      * 게시판 라우터 삭제
      */
-    public int deleteBbsRouter(String bbsMngId) throws Exception;
+    public int deleteBbsRouter(String bbsMngId);
 
     /** ********************************* 게시판 라우터 (종료) ********************************* */
 }
(No newline at end of file)
src/main/java/com/takensoft/cms/bbs/service/Impl/BbsCnServiceImpl.java
--- src/main/java/com/takensoft/cms/bbs/service/Impl/BbsCnServiceImpl.java
+++ src/main/java/com/takensoft/cms/bbs/service/Impl/BbsCnServiceImpl.java
@@ -193,7 +193,7 @@
             return result;
         } catch (CustomNotFoundException | CustomFileUploadFailException | CustomInsertFailException | IllegalArgumentException le) {
             throw le;
-        }  catch (DataAccessException dae) {
+        } catch (DataAccessException dae) {
             throw dae;
         } catch (Exception e) {
             throw e;
src/main/java/com/takensoft/cms/bbs/service/Impl/BbsMngServiceImpl.java
--- src/main/java/com/takensoft/cms/bbs/service/Impl/BbsMngServiceImpl.java
+++ src/main/java/com/takensoft/cms/bbs/service/Impl/BbsMngServiceImpl.java
@@ -12,23 +12,35 @@
 import com.takensoft.cms.menu.vo.MenuVO;
 import com.takensoft.common.HierachyVO;
 import com.takensoft.common.Pagination;
+import com.takensoft.common.exception.*;
 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.dao.DataAccessException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
 
 /**
- * @author  : 박정하
- * @since   : 2024.05.08
+ * @author 박정하
+ * @since 2024.05.08
+ * @modification
+ *     since    |    author    | description
+ *  2024.05.08  |    박정하     | 최초 등록
+ *  2024.05.08  |    하석형     | findByBbsMngId
+ *  2024.05.09  |    하석형     | updateBbsMng, deleteBbsMng 추가
+ *  2024.05.10  |    하석형     | saveBbsMng, findAllBbsMng 추가
+ *  2024.05.13  |    하석형     | saveBbsRouter, updateBbsRouter, deleteBbsRouter, saveBbsRouterProc 추가
+ *  2024.05.16  |    박정하     | findAllByMenuMng 추가
+ *  2025.03.21  |    하석형     | 코드 리펙토링
  *
- * 게시판 관리 관련 구현체
  * EgovAbstractServiceImpl : 전자정부 상속
- * BbsMngService : 게시판 관리 인터페이스 상속
+ * BbsMngService : 게시판 관리 관련 인터페이스 상속
+ *
+ * 게시판 관리 관련 인터페이스 구현체
  */
 @Service("bbsMngService")
 @RequiredArgsConstructor
@@ -43,268 +55,416 @@
     private final JWTUtil jwtUtil;
 
     /**
-     * @author  박정하
-     * @since   2024.05.08
+     * @param bbsMngVO - 게시판 정보
+     * @return boolean - 게시판 아이디 중복 여부
+     * @throws CustomDataDuplicationException - 게시판 아이디 중복 예외 발생 시
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 게시판 아이디 중복 검사
      */
     @Override
-    public boolean bbsMngIdCheck(BbsMngVO bbsMngVO) throws Exception {
-        return bbsMngDAO.bbsMngIdCheck(bbsMngVO);
+    public boolean bbsMngIdCheck(BbsMngVO bbsMngVO) {
+        try {
+            boolean result = bbsMngDAO.bbsMngIdCheck(bbsMngVO);
+            if(result) {
+                throw new CustomDataDuplicationException("이미 존재하는 게시판 아이디입니다.");
+            }
+
+            return result;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
     /**
-     * @author  하석형
-     * @since   2024.05.10
+     * @param bbsMngVO - 게시판 관리 정보
+     * @return HashMap<String, Object>
+     *  - bbsMngId : 게시판 관리 아이디
+     *  - result : 게시판 관리 등록 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
+     * @throws CustomInsertFailException - 게시판 관리 등록 예외 발생 시
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 게시판 관리 등록
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
     @CacheEvict(value = "routerAuthInfo", allEntries = true)
-    public HashMap<String, Object> saveBbsMng(BbsMngVO bbsMngVO) throws Exception {
-        HashMap<String, Object> result = new HashMap<>();
+    public HashMap<String, Object> saveBbsMng(BbsMngVO bbsMngVO) {
+        try {
+            HashMap<String, Object> result = new HashMap<>();
 
-        // 게시판 관리 아이디 생성
-        String bbsMngId = bbsMngIdgn.getNextStringId();
-        bbsMngVO.setBbsMngId(bbsMngId);
+            // 게시판 관리 아이디 생성
+            String bbsMngId = bbsMngIdgn.getNextStringId();
+            bbsMngVO.setBbsMngId(bbsMngId);
 
-        // 등록된 토큰에서 사용자 정보 조회
-        String writer = jwtUtil.getWriter();
-        bbsMngVO.setRgtr(writer);
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            bbsMngVO.setRgtr(writer);
 
-        // 확장자 리스트 문자열로 변경
-        bbsMngVO.setFileExtnNm(String.join(",", bbsMngVO.getFileExtnNmList()));
+            // 확장자 리스트 문자열로 변경
+            bbsMngVO.setFileExtnNm(String.join(",", bbsMngVO.getFileExtnNmList()));
 
-        // 첨부파일 용량 변경 (Mb -> Byte)
-        bbsMngVO.setFileSzLmt(bbsMngVO.getFileSzLmt() * 1024 * 1024);
+            // 첨부파일 용량 변경 (Mb -> Byte)
+            bbsMngVO.setFileSzLmt(bbsMngVO.getFileSzLmt() * 1024 * 1024);
 
-        // 게시판 관리 등록
-        int insertResult = bbsMngDAO.save(bbsMngVO);
+            // 게시판 관리 등록
+            int insertResult = bbsMngDAO.save(bbsMngVO);
+            if(insertResult == 0) {
+                throw new CustomInsertFailException("게시판 관리 등록에 실패했습니다.");
+            }
 
-        // 게시판 라우터 등록 프로세스
-        saveBbsRouterProc(bbsMngVO);
+            // 게시판 라우터 등록 프로세스
+            saveBbsRouterProc(bbsMngVO);
 
-        // 메뉴 등록 MENU_000000000000032 : 게시판 관리 메뉴 아이디
+            // 메뉴 등록
+            MenuVO menuVO = new MenuVO();
+            menuVO.setUpMenuId("MENU_000000000000032"); // 상위메뉴아이디(콘텐츠 관리 메뉴 아이디)
+            menuVO.setMenuNm(bbsMngVO.getBbsNm()); // 메뉴명
+            menuVO.setMenuType("bbs"); // 메뉴타입
+            menuVO.setMenuTypeCtgry(bbsMngVO.getBbsMngId()); // 메뉴타입항목(콘텐츠 유형 아이디)
+            menuVO.setLinkType("0"); // 링크유형(현재창)
+            menuVO.setDgstfnExmnUseYn("Y"); // 만족도조사사용여부(노출)
+            menuVO.setMenuExpsrYn("Y"); // 메뉴노출여부(노출)
+            menuVO.setMenuUser("A"); // 메뉴사용자(관리자)
+            menuVO.setSysPvsnYn("1"); // 시스템제공여부(시스템등록)
+            menuService.menuSave(menuVO);
 
-        MenuVO menuVO = new MenuVO();
-        menuVO.setUpMenuId("MENU_000000000000032"); // 상위메뉴아이디(콘텐츠 관리 메뉴 아이디)
-        menuVO.setMenuNm(bbsMngVO.getBbsNm()); // 메뉴명
-        menuVO.setMenuType("bbs"); // 메뉴타입
-        menuVO.setMenuTypeCtgry(bbsMngVO.getBbsMngId()); // 메뉴타입항목(콘텐츠 유형 아이디)
-        menuVO.setLinkType("0"); // 링크유형(현재창)
-        menuVO.setDgstfnExmnUseYn("Y"); // 만족도조사사용여부(노출)
-        menuVO.setMenuExpsrYn("Y"); // 메뉴노출여부(노출)
-        menuVO.setMenuUser("A"); // 메뉴사용자(관리자)
-        menuVO.setSysPvsnYn("1"); // 시스템제공여부(시스템등록)
-        menuService.menuSave(menuVO);
-
-        result.put("bbsMngId", bbsMngId);
-        result.put("result", insertResult);
-        return result;
+            result.put("bbsMngId", bbsMngId);
+            result.put("result", insertResult);
+            return result;
+        } catch (CustomInsertFailException | NullPointerException le) {
+            throw le;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
     /**
-     * @author  하석형
-     * @since   2024.05.10
+     * @param params - 게시판 정보
+     * @return Map<String, Object>
+     *  - list : 게시판 내용 목록
+     *  - pagination : 페이징 정보
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 게시판 관리 목록 조회
      */
     @Override
-    public Map<String, Object> findAllBbsMng(HashMap<String, String> params) throws Exception {
-        Map<String, Object> result = new HashMap<>();
-        Pagination search = new Pagination(0, params);
-        int cnt = bbsMngDAO.findAllCnt(search);
-        Pagination pagination = new Pagination(cnt, params);
-        List<BbsMngVO> bbsMngList = bbsMngDAO.findAll(pagination);
+    public Map<String, Object> findAllBbsMng(HashMap<String, String> params) {
+        try {
+            Map<String, Object> result = new HashMap<>();
+            Pagination search = new Pagination(0, params);
+            int cnt = bbsMngDAO.findAllCnt(search);
+            Pagination pagination = new Pagination(cnt, params);
+            List<BbsMngVO> bbsMngList = bbsMngDAO.findAll(pagination);
 
-        List<HashMap<String, Object>> list = new ArrayList<>();
+            List<HashMap<String, Object>> list = new ArrayList<>();
 
-        //게시판 관리 목록 별 게시물 수
-        for(BbsMngVO vo : bbsMngList) {
-            HashMap<String, Object> map = new HashMap<>();
+            //게시판 관리 목록 별 게시물 수
+            for (BbsMngVO vo : bbsMngList) {
+                HashMap<String, Object> map = new HashMap<>();
 
-            // 게시판 유형 그룹
-            BbsTypeMngVO bbsTypeMng = bbsTypeMngService.findByBbsTypeId(vo.getBbsTypeId());
-            String bbsTypeNm = bbsTypeMng.getBbsTypeKornNm();
-            int spaceIndex = bbsTypeNm.indexOf(" "); // 첫 번째 공백의 인덱스를 찾음
-            if (spaceIndex != -1) { // 공백이 있는 경우
-                bbsTypeNm = bbsTypeNm.substring(0, spaceIndex); // 첫 공백 전까지의 문자열을 추출
+                // 게시판 유형 그룹
+                BbsTypeMngVO bbsTypeMng = bbsTypeMngService.findByBbsTypeId(vo.getBbsTypeId());
+                String bbsTypeNm = bbsTypeMng.getBbsTypeKornNm();
+                int spaceIndex = bbsTypeNm.indexOf(" "); // 첫 번째 공백의 인덱스를 찾음
+                if (spaceIndex != -1) { // 공백이 있는 경우
+                    bbsTypeNm = bbsTypeNm.substring(0, spaceIndex); // 첫 공백 전까지의 문자열을 추출
+                }
+
+                map.put("bbsMngId", vo.getBbsMngId());
+                map.put("bbsNm", vo.getBbsNm());
+                map.put("bbsTypeId", vo.getBbsTypeId());
+                map.put("bbsTypeNm", bbsTypeNm);
+                map.put("atchFileUseYn", vo.getAtchFileUseYn());
+                map.put("ntcUseYn", vo.getNtcUseYn());
+                map.put("prvtPstUseYn", vo.getPrvtPstUseYn());
+                map.put("bfrAftrPstUseYn", vo.getBfrAftrPstUseYn());
+                map.put("cmntUseYn", vo.getCmntUseYn());
+                map.put("bbsCnCnt", vo.getBbsCnCnt()); // 게시판 관리 목록 별 게시물 수 (수정 필요)
+                list.add(map);
             }
 
-            map.put("bbsMngId", vo.getBbsMngId());
-            map.put("bbsNm", vo.getBbsNm());
-            map.put("bbsTypeId", vo.getBbsTypeId());
-            map.put("bbsTypeNm", bbsTypeNm);
-            map.put("atchFileUseYn", vo.getAtchFileUseYn());
-            map.put("ntcUseYn", vo.getNtcUseYn());
-            map.put("prvtPstUseYn", vo.getPrvtPstUseYn());
-            map.put("bfrAftrPstUseYn", vo.getBfrAftrPstUseYn());
-            map.put("cmntUseYn", vo.getCmntUseYn());
-            map.put("bbsCnCnt", vo.getBbsCnCnt()); // 게시판 관리 목록 별 게시물 수 (수정 필요)
-            list.add(map);
+            result.put("list", list);
+            result.put("pagination", pagination);
+            return result;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
         }
-
-        result.put("list", list);
-        result.put("pagination", pagination);
-        return result;
     }
 
     /**
-     * @author  박정하
-     * @since   2024.05.16
+     * @return List<BbsMngVO> - 게시판 관리 정보를 담고 있는 객체 목록
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 게시판 관리 목록 조회 (메뉴 관리용)
      */
     @Override
-    public List<BbsMngVO> findAllByMenuMng() throws Exception {
-        return bbsMngDAO.findAllByMenuMng();
+    public List<BbsMngVO> findAllByMenuMng() {
+        try {
+            return bbsMngDAO.findAllByMenuMng();
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
     /**
-     * @author 하석형
-     * @since  2024.05.08
+     * @param bbsMngId - 게시판 관리 아이디
+     * @return BbsMngVO - 게시판 관리 정보를 담고 있는 객체
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
      *
      * 게시판 관리 상세 조회
      */
     @Override
-    public BbsMngVO findByBbsMngId(String bbsMngId) throws Exception {
-        BbsMngVO result = new BbsMngVO();
+    public BbsMngVO findByBbsMngId(String bbsMngId) {
+        try {
+            BbsMngVO result = new BbsMngVO();
 
-        if(bbsMngId != null && !bbsMngId.isEmpty()) {
-            result = bbsMngDAO.findByBbsMngId(bbsMngId);
-            // 첨부파일 확장자 리스트 분리
-            if(result.getFileExtnNm() != null && !result.getFileExtnNm().isEmpty()){
-                result.setFileExtnNmList(Arrays.asList(result.getFileExtnNm().split(",")));
+            if (bbsMngId != null && !bbsMngId.isEmpty()) {
+                result = bbsMngDAO.findByBbsMngId(bbsMngId);
+                // 첨부파일 확장자 리스트 분리
+                if (result.getFileExtnNm() != null && !result.getFileExtnNm().isEmpty()) {
+                    result.setFileExtnNmList(Arrays.asList(result.getFileExtnNm().split(",")));
+                }
+                // 첨부파일 용량 변경 (Byte -> Mb)
+                result.setFileSzLmt(result.getFileSzLmt() / 1024 / 1024);
+
+            } else {
+                result.setUseYn("Y");
             }
-            // 첨부파일 용량 변경 (Byte -> Mb)
-            result.setFileSzLmt(result.getFileSzLmt() / 1024 / 1024);
-
-        } else {
-            result.setUseYn("Y");
+            return result;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
         }
-        return result;
     }
 
     /**
-     * @author 하석형
-     * @since  2024.05.09
+     * @param bbsMngVO - 게시판 관리 아이디
+     * @return int - 게시판 관리 수정 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
+     * @throws CustomUpdateFailException - 게시판 관리 수정 예외 발생 시
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
      *
      * 게시판 관리 수정
      */
     @Override
     @CacheEvict(value = "routerAuthInfo", allEntries = true)
-    public int updateBbsMng(BbsMngVO bbsMngVO) throws Exception {
-        // 등록된 토큰에서 사용자 정보 조회
-        String writer = jwtUtil.getWriter();
-        bbsMngVO.setMdfr(writer);
+    public int updateBbsMng(BbsMngVO bbsMngVO) {
+        try {
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            bbsMngVO.setMdfr(writer);
 
-        // 확장자 리스트 문자열로 변경
-        bbsMngVO.setFileExtnNm(String.join(",", bbsMngVO.getFileExtnNmList()));
+            // 확장자 리스트 문자열로 변경
+            bbsMngVO.setFileExtnNm(String.join(",", bbsMngVO.getFileExtnNmList()));
 
-        bbsMngVO.setFileSzLmt(bbsMngVO.getFileSzLmt() * 1024 * 1024);
+            bbsMngVO.setFileSzLmt(bbsMngVO.getFileSzLmt() * 1024 * 1024);
 
-        /** 게시판 라우터 수정 프로세스 */
-        BbsMngVO bbsMng = bbsMngDAO.findByBbsMngId(bbsMngVO.getBbsMngId());
+            /** 게시판 라우터 수정 프로세스 */
+            BbsMngVO bbsMng = bbsMngDAO.findByBbsMngId(bbsMngVO.getBbsMngId());
 
-        // 게시판 유형이 변경된 경우
-        if(!bbsMng.getBbsTypeId().equals(bbsMngVO.getBbsTypeId())) {
-            // 기존 게시판 라우터 삭제
-            deleteBbsRouter(bbsMngVO.getBbsMngId());
-            
-            // 변경된 유형으로 게시판 라우터 등록
-            saveBbsRouterProc(bbsMngVO);
-        }
-        // 게시판 페이지 유형이 변경된 경우
-        if(!bbsMng.getCd().equals(bbsMngVO.getCd())) {
-            // 게시판 라우터 페이지 경로 변경
-            List<BbsRouterVO> bbsRouterList = bbsMngDAO.findAllBbsRouter(bbsMngVO.getBbsMngId());
-            for(BbsRouterVO route : bbsRouterList) {
-                String pageCrs = route.getPageCrs().replace(bbsMng.getCd(), bbsMngVO.getCd());
-                route.setPageCrs(pageCrs);
-                bbsMngDAO.updateCrs(route);
+            // 게시판 유형이 변경된 경우
+            if (!bbsMng.getBbsTypeId().equals(bbsMngVO.getBbsTypeId())) {
+                // 기존 게시판 라우터 삭제
+                deleteBbsRouter(bbsMngVO.getBbsMngId());
+
+                // 변경된 유형으로 게시판 라우터 등록
+                saveBbsRouterProc(bbsMngVO);
+            }
+            // 게시판 페이지 유형이 변경된 경우
+            if (!bbsMng.getCd().equals(bbsMngVO.getCd())) {
+                // 게시판 라우터 페이지 경로 변경
+                List<BbsRouterVO> bbsRouterList = bbsMngDAO.findAllBbsRouter(bbsMngVO.getBbsMngId());
+                for (BbsRouterVO route : bbsRouterList) {
+                    String pageCrs = route.getPageCrs().replace(bbsMng.getCd(), bbsMngVO.getCd());
+                    route.setPageCrs(pageCrs);
+                    int crsResult = bbsMngDAO.updateCrs(route);
+                    if (crsResult == 0) {
+                        throw new CustomUpdateFailException("게시판 라우터 페이지 경로 수정에 실패했습니다.");
+                    }
+
+                }
 
             }
 
-        }
+            int result = bbsMngDAO.update(bbsMngVO);
+            if(result == 0) {
+                throw new CustomUpdateFailException("게시판 관리 수정에 실패했습니다.");
+            }
 
-        return bbsMngDAO.update(bbsMngVO);
+            return result;
+        } catch (CustomDeleteFailException | CustomInsertFailException le) {
+            throw le;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
     /**
-     * @author 하석형
-     * @since  2024.05.09
+     * @param bbsMngVO - 게시판 관리 아이디
+     * @return int - 게시판 관리 삭제 결과
+     * @throws CustomNotFoundException - 사용자 정보 조회 예외 발생 시
+     * @throws CustomDeleteFailException - 게시판 관리 삭제 예외 발생 시
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
      *
      * 게시판 관리 삭제
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
     @CacheEvict(value = "routerAuthInfo", allEntries = true)
-    public int deleteBbsMng(BbsMngVO bbsMngVO) throws Exception {
-        // 등록된 토큰에서 사용자 정보 조회
-        String writer = jwtUtil.getWriter();
-        bbsMngVO.setMdfr(writer);
-        
-        // 게시판 라우터 비활성화
-        BbsRouterVO bbsRouterVO = new BbsRouterVO();
-        bbsRouterVO.setBbsMngId(bbsMngVO.getBbsMngId());
-        bbsRouterVO.setUseYn("N");
-        updateBbsRouter(bbsRouterVO);
+    public int deleteBbsMng(BbsMngVO bbsMngVO) {
+        try {
+            // 등록된 토큰에서 사용자 정보 조회
+            String writer = jwtUtil.getWriter();
+            if (writer == null || writer.isEmpty()) {
+                throw new CustomNotFoundException("사용자 정보 조회에 실패했습니다.");
+            }
+            bbsMngVO.setMdfr(writer);
 
-        // 메뉴에서도 삭제 처리
-        MenuVO menuVO = new MenuVO();
-        menuVO.setMenuTypeCtgry(bbsMngVO.getBbsMngId());
-        menuVO.setUseYn("N");
-        menuVO.setMdfr(writer);
-        int bbsMngMenuResult = menuService.bbsMngMenuDelete(menuVO);
+            // 게시판 라우터 비활성화
+            BbsRouterVO bbsRouterVO = new BbsRouterVO();
+            bbsRouterVO.setBbsMngId(bbsMngVO.getBbsMngId());
+            bbsRouterVO.setUseYn("N");
+            updateBbsRouter(bbsRouterVO);
 
+            // 메뉴에서도 삭제 처리
+            MenuVO menuVO = new MenuVO();
+            menuVO.setMenuTypeCtgry(bbsMngVO.getBbsMngId());
+            menuVO.setUseYn("N");
+            menuVO.setMdfr(writer);
+            int bbsMngMenuResult = menuService.bbsMngMenuDelete(menuVO);
 
+            int result = bbsMngDAO.delete(bbsMngVO);
+            if(result == 0) {
+                throw new CustomDeleteFailException("게시판 관리 삭제에 실패했습니다.");
+            }
 
-        return bbsMngDAO.delete(bbsMngVO);
+            return result;
+        } catch (CustomDeleteFailException cdfe) {
+            throw cdfe;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
 
     /** ********************************* 게시판 라우터 (시작) ********************************* */
     /**
-     * @author 하석형
-     * @since  2024.05.13
+     * @param bbsRouterVO - 게시판 라우터 정보
+     * @return int - 게시판 라우터 등록 결과
+     * @throws CustomInsertFailException - 게시판 라우터 등록 예외 발생 시
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
      *
      * 게시판 라우터 등록
      */
     @Override
     @CacheEvict(value = "routerAuthInfo", allEntries = true)
-    public int saveBbsRouter(BbsRouterVO bbsRouterVO) throws Exception {
-        return bbsMngDAO.saveBbsRouter(bbsRouterVO);
+    public int saveBbsRouter(BbsRouterVO bbsRouterVO) {
+        try {
+            int result = bbsMngDAO.saveBbsRouter(bbsRouterVO);
+            if(result == 0) {
+                throw new CustomInsertFailException("게시판 라우터 등록에 실패했습니다.");
+            }
+
+            return result;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
     /**
-     * @author 하석형
-     * @since  2024.05.13
+     * @param bbsRouterVO - 게시판 라우터 정보
+     * @return int - 게시판 라우터 수정 결과
+     * @throws CustomUpdateFailException - 게시판 라우터 수정 예외 발생 시
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
      *
      * 게시판 라우터 수정
      */
     @Override
     @CacheEvict(value = "routerAuthInfo", allEntries = true)
-    public int updateBbsRouter(BbsRouterVO bbsRouterVO) throws Exception {
-        return bbsMngDAO.updateBbsRouter(bbsRouterVO);
+    public int updateBbsRouter(BbsRouterVO bbsRouterVO) {
+        try {
+            int result = bbsMngDAO.updateBbsRouter(bbsRouterVO);
+            if(result == 0) {
+                throw new CustomUpdateFailException("게시판 라우터 수정에 실패했습니다.");
+            }
+
+            return result;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
     /**
-     * @author 하석형
-     * @since  2024.05.13
+     * @param bbsMngId - 게시판 관리 아이디
+     * @return int - 게시판 라우터 삭제 결과
+     * @throws CustomDeleteFailException - 게시판 라우터 삭제 예외 발생 시
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
      *
      * 게시판 라우터 삭제
      */
     @Override
     @CacheEvict(value = "routerAuthInfo", allEntries = true)
-    public int deleteBbsRouter(String bbsMngId) throws Exception {
-        return bbsMngDAO.deleteBbsRouter(bbsMngId);
+    public int deleteBbsRouter(String bbsMngId) {
+        try {
+            int result = bbsMngDAO.deleteBbsRouter(bbsMngId);
+            if (result == 0) {
+                throw new CustomDeleteFailException("게시판 라우터 삭제에 실패했습니다.");
+            }
+
+            return result;
+        } catch (DataAccessException dae) {
+            throw dae;
+        } catch (Exception e) {
+            throw e;
+        }
     }
 
     /**
-     * @author  하석형
-     * @since   2024.05.13
+     * @param bbsMngVO - 게시판 관리 정보
+     * @return int - 게시판 라우터 등록 프로세스 결과
+     * @throws DataAccessException - db 관련 예외 발생 시
+     * @throws Exception - 그 외 예외 발생 시
+     *
      * 게시판 라우터 등록 프로세스
      */
     @Transactional(rollbackFor = Exception.class)
     @CacheEvict(value = "routerAuthInfo", allEntries = true)
-    public void saveBbsRouterProc(BbsMngVO bbsMngVO) throws Exception {
+    public int saveBbsRouterProc(BbsMngVO bbsMngVO) {
         int result = 0;
         try {
             // 게시판 유형 조회 (bbs_type 조회)
@@ -338,12 +498,13 @@
                 result += saveBbsRouter(bbsRouterVO);
             }
 
-            if(result != bbsTypeList.size()) {
-                throw new Exception("게시판 라우터 등록에 실패했습니다.");
-            }
+            return result;
+        } catch (CustomInsertFailException cife) {
+            throw cife;
+        } catch (DataAccessException dae) {
+            throw dae;
         } catch (Exception e) {
-            e.printStackTrace();
-            throw new Exception("게시판 라우터 등록 중 오류가 발생했습니다.");
+            throw e;
         }
     }
     /** ********************************* 게시판 라우터 (종료) ********************************* */
src/main/java/com/takensoft/cms/bbs/web/BbsMngController.java
--- src/main/java/com/takensoft/cms/bbs/web/BbsMngController.java
+++ src/main/java/com/takensoft/cms/bbs/web/BbsMngController.java
@@ -24,12 +24,18 @@
 
 import java.nio.charset.Charset;
 import java.util.*;
+
 /**
  * @author 박정하
  * @since 2024.05.08
  * @modification
  *     since    |    author    | description
  *  2024.05.08  |    박정하     | 최초 등록
+ *  2024.05.08  |    하석형     | findByBbsMng 추가
+ *  2024.05.09  |    하석형     | updateProc, deleteProc 추가
+ *  2024.05.10  |    하석형     | saveProc, findAll 추가
+ *  2024.05.16  |    박정하     | findAllByMenuMng 추가
+ *  2025.03.21  |    하석형     | 코드 리펙토링
  *
  * 게시판 관리 관련 컨트롤러
  */
@@ -45,81 +51,51 @@
     private final CodeManageService codeManageService;
 
     /**
-     * @author  하석형
-     * @since   2024.05.10
-     * @param   bbsMngVO
-     * @return
-     * @throws  Exception
+     * @param bbsMngVO - 게시판 관리 정보
+     * @return ResponseEntity - 게시판 관리 등록 결과를 포함하는 응답
      *
      * 게시판 관리 등록
      */
     @PostMapping("/saveProc.json")
-    public ResponseEntity<?> saveProc(@RequestBody BbsMngVO bbsMngVO) throws Exception {
-        // 게시판 관리 아이디 중복 검사 (아이디 입력 삭제로 미사용)
-        /*boolean isExistence = bbsMngService.bbsMngIdCheck(bbsMngVO);
-        if(isExistence) {
-            responseData.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
-            responseData.setMessage("이미 존재하는 게시판 아이디입니다.");
-            return new ResponseEntity<>(responseData, headers, HttpStatus.INTERNAL_SERVER_ERROR);
-        }*/
+    public ResponseEntity<?> saveProc(@RequestBody BbsMngVO bbsMngVO) {
         // 게시판 관리 등록
         HashMap<String, Object> result = bbsMngService.saveBbsMng(bbsMngVO);
-        int insertResult = (int) result.get("result");
-        // 응답 처리
-        if(insertResult > 0) {
-            return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
-        } else {
-            return resUtil.errorRes(MessageCode.COMMON_INSERT_FAIL);
-        }
+        return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
     }
 
     /**
-     * @author  하석형
-     * @since   2024.05.10
-     * @param   params
-     * @return
-     * @throws  Exception
+     * @param params - 검색조건 및 페이징 정보
+     * @return ResponseEntity - 게시판 관리 목록 조회 결과를 포함하는 응답
      *
      * 게시판 관리 목록 조회
      */
     @PostMapping("/findAll.json")
-    public ResponseEntity<?> findAll(@RequestBody HashMap<String, String> params) throws Exception {
+    public ResponseEntity<?> findAll(@RequestBody HashMap<String, String> params) {
         // 게시판 관리 목록 조회
         Map<String, Object> result = bbsMngService.findAllBbsMng(params);
-
-        // 응답처리
         return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
     }
 
     /**
-     * @author  박정하
-     * @since   2024.05.16
-     * @param
-     * @return
-     * @throws  Exception
+     * @return ResponseEntity - 게시판 관리 목록 조회 결과를 포함하는 응답
      *
      * 게시판 관리 목록 조회 (메뉴 관리용)
      */
     @PostMapping("/findAllByMenuMng.json")
-    public ResponseEntity<?> findAllByMenuMng() throws Exception {
+    public ResponseEntity<?> findAllByMenuMng() {
         // 게시판 관리 목록 조회
         List<BbsMngVO> result = bbsMngService.findAllByMenuMng();
-
-        // 응답처리
         return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
     }
 
     /**
-     * @author 하석형
-     * @since  2024.05.08
-     * @param  bbsMngVO
-     * @return
-     * @throws Exception
+     * @param bbsMngVO - 게시판 관리 정보
+     * @return ResponseEntity - 게시판 관리 상세 조회 결과를 포함하는 응답
      *
      * 게시판 관리 상세 조회
      */
     @PostMapping("/findByBbsMng.json")
-    public ResponseEntity<?> findByBbsMng(@RequestBody BbsMngVO bbsMngVO) throws Exception {
+    public ResponseEntity<?> findByBbsMng(@RequestBody BbsMngVO bbsMngVO) {
         // 게시판 관리 상세 조회
         BbsMngVO bbsMng = bbsMngService.findByBbsMngId(bbsMngVO.getBbsMngId());
 
@@ -140,48 +116,28 @@
     }
 
     /**
-     * @author 하석형
-     * @since  2024.05.09
-     * @param  bbsMngVO
-     * @return
-     * @throws Exception
+     * @param bbsMngVO - 게시판 관리 정보
+     * @return ResponseEntity - 게시판 관리 수정 결과를 포함하는 응답
      *
      * 게시판 관리 수정
      */
     @PostMapping("/updateProc.json")
-    public ResponseEntity<?> updateProc(@RequestBody BbsMngVO bbsMngVO) throws Exception {
-
+    public ResponseEntity<?> updateProc(@RequestBody BbsMngVO bbsMngVO) {
         // 게시판 관리 수정
         int result = bbsMngService.updateBbsMng(bbsMngVO);
-
-        // 응답 처리
-        if(result > 0) {
-            return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
-        } else {
-            return resUtil.errorRes(MessageCode.COMMON_UPDATE_FAIL);
-        }
+        return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
     }
 
     /**
-     * @author 하석형
-     * @since  2024.05.09
-     * @param  bbsMngVO
-     * @return
-     * @throws Exception
+     * @param bbsMngVO - 게시판 관리 정보
+     * @return ResponseEntity - 게시판 관리 삭제 결과를 포함하는 응답
      *
      * 게시판 관리 삭제
      */
     @PostMapping("/deleteProc.json")
-    public ResponseEntity<?> deleteProc(@RequestBody BbsMngVO bbsMngVO) throws Exception {
-
+    public ResponseEntity<?> deleteProc(@RequestBody BbsMngVO bbsMngVO) {
         // 게시판 관리 수정
         int result = bbsMngService.deleteBbsMng(bbsMngVO);
-
-        // 응답 처리
-        if(result > 0) {
-            return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
-        } else {
-            return resUtil.errorRes(MessageCode.COMMON_DELETE_FAIL);
-        }
+        return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
     }
 }
(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
@@ -486,7 +486,7 @@
             // 게시판 삭제에 대한 결과
             int result = menuDAO.bbsMngMenuDelete(menuVO);
             if(result == 0) {
-                throw new CustomUpdateFailException("게시판 메뉴 삭제에 실패했습니다.");
+                throw new CustomDeleteFailException("게시판 메뉴 삭제에 실패했습니다.");
             }
             return result;
         } catch (DataAccessException dae) {
Add a comment
List