메뉴관리 기능은 시스템별 메뉴 정보를 등록, 조회, 수정, 삭제하기 위해 사용한다. 메뉴코드, 메뉴명, 상위 메뉴, 정렬순서, URL, 팝업여부, 사용여부를 관리하며 시스템별 메뉴 구조를 구성한다.
| Action URL | Controller method | QueryID |
|---|---|---|
조회 /ias/menu/menuList.do?sysCd={sysCd} |
MenuPageController.menuList |
selectMenuList, selectMenuListCnt |
조회 /api/v1/menu/list |
MenuApiController.getMenuList |
selectMenuList, selectMenuListCnt |
트리조회 /api/v1/menu/tree?sysCd={sysCd} |
MenuApiController.getMenuTree |
selectMenuListFromSysCd |
등록화면 /ias/menu/menuRegist.do?sysCd={sysCd} |
MenuPageController.menuRegist |
N/A |
상세이동 /ias/menu/menuDetail.do?sysCd={sysCd}&menuCd={menuCd} |
MenuPageController.menuDetail |
selectMenuDetail |
수정이동 /ias/menu/menuModify.do?sysCd={sysCd}&menuCd={menuCd} |
MenuPageController.menuModify |
selectMenuDetail |
메뉴 목록은 시스템별로 조회되며 메뉴명 또는 메뉴코드로 검색할 수 있다. 시스템이 지정되지 않은 경우 활성 시스템 목록의 첫 번째 시스템으로 이동한다.

조회 : 시스템과 메뉴명 또는 메뉴코드를 입력한 뒤 조회 버튼을 클릭하여 메뉴 목록을 조회한다.
초기화 : 검색어를 초기 상태로 되돌린다.
등록 : 등록 버튼을 클릭하여 메뉴 등록 화면으로 이동한다.
상세 : 목록의 상세 버튼을 클릭하여 메뉴 상세조회 화면으로 이동한다.
수정 : 목록의 수정 버튼을 클릭하여 메뉴 수정 화면으로 이동한다.
삭제 : 목록의 삭제 버튼을 클릭하여 메뉴를 삭제한다.
| Action URL | Controller method | QueryID |
|---|---|---|
상세조회 /ias/menu/menuDetail.do?sysCd={sysCd}&menuCd={menuCd} |
MenuPageController.menuDetail |
selectMenuDetail, selectMenuListFromSysCd |
상세조회 /api/v1/menu/{sysCd}/{menuCd} |
MenuApiController.getMenu |
selectMenuDetail |
수정이동 /ias/menu/menuModify.do?sysCd={sysCd}&menuCd={menuCd} |
MenuPageController.menuModify |
selectMenuDetail |
메뉴 상세조회 화면은 메뉴 기본정보와 해당 메뉴의 하위 메뉴 목록을 함께 제공한다.

목록 : 메뉴 목록조회 화면으로 이동한다.
수정 : 메뉴 수정 화면으로 이동한다.
| Action URL | Controller method | QueryID |
|---|---|---|
등록화면 /ias/menu/menuRegist.do?sysCd={sysCd} |
MenuPageController.menuRegist |
selectMenuListFromSysCd |
저장 /api/v1/menu |
MenuApiController.createMenu |
insertMenu |
메뉴 등록 화면에서는 시스템, 상위 메뉴, 메뉴 코드, 메뉴명, 메뉴순서, 대표 URL, 아이콘 경로, 팝업여부, 사용여부, 메뉴설명, 기타 URL 목록을 입력해 저장한다.
Y, N만 허용한다.Y, N만 허용한다.
목록 : 메뉴 목록조회 화면으로 이동한다.
저장 : 입력한 메뉴 정보를 저장한다.
| Action URL | Controller method | QueryID |
|---|---|---|
수정화면 /ias/menu/menuModify.do?sysCd={sysCd}&menuCd={menuCd} |
MenuPageController.menuModify |
selectMenuDetail, selectMenuListFromSysCd |
수정 /api/v1/menu/{sysCd}/{menuCd} |
MenuApiController.updateMenu |
updateMenu |
메뉴 수정 화면에서는 기존 메뉴 정보를 조회한 뒤 수정 저장한다. 시스템과 메뉴코드는 읽기 전용이다.

목록 : 메뉴 목록조회 화면으로 이동한다.
저장 : 수정한 메뉴 정보를 저장한다.
| Action URL | Controller method | QueryID |
|---|---|---|
삭제 /api/v1/menu/{sysCd}/{menuCd} |
MenuApiController.deleteMenu |
countMenuChildren, deleteMenu |
메뉴 삭제는 목록조회 화면에서 수행한다. 삭제 전 하위 메뉴 존재 여부를 검사한다.
선택 : 목록 화면의 삭제 버튼을 클릭한다.
삭제 : 삭제 확인 후 메뉴 정보를 삭제한다.
| 유형 | 대상소스명 | 비고 |
|---|---|---|
| Controller | src/main/java/allforland/ias/menu/web/MenuPageController.java |
메뉴 화면 요청을 처리하는 컨트롤러 클래스 |
| API Controller | src/main/java/allforland/ias/menu/web/MenuApiController.java |
메뉴 API 요청을 처리하는 컨트롤러 클래스 |
| Service | src/main/java/allforland/ias/menu/service/MenuService.java |
메뉴 서비스 인터페이스 |
| ServiceImpl | src/main/java/allforland/ias/menu/service/impl/MenuServiceImpl.java |
메뉴 서비스 구현 클래스 |
| Mapper | src/main/java/allforland/ias/menu/mapper/MenuMapper.java |
메뉴 데이터 처리 Mapper 인터페이스 |
| VO | src/main/java/allforland/ias/menu/vo/MenuVO.java |
메뉴 VO 클래스 |
| DTO | src/main/java/allforland/ias/menu/web/dto/MenuRequestDTO.java |
메뉴 등록/수정 요청 DTO 클래스 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/menu/menuList.jsp |
메뉴 목록조회 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/menu/menuDetail.jsp |
메뉴 상세조회 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/menu/menuRegist.jsp |
메뉴 등록 페이지 |
| JSP | src/main/webapp/WEB-INF/jsp/ias/menu/menuModify.jsp |
메뉴 수정 페이지 |
| Query XML | src/main/resources/mapper/menu/MenuMapper.xml |
메뉴 조회 및 저장 Query XML |
| SQL | docker/postgres/init/01-schema.sql |
메뉴 테이블 생성을 위한 스키마 SQL |
| SQL | docker/postgres/init/02-data.sql |
메뉴 기본데이터 적재 SQL |

| 테이블명 | 테이블명(영문) | 비고 |
|---|---|---|
| 메뉴 정보 | afias.menu |
시스템별 메뉴 구조와 속성을 관리하는 테이블 |