6.3 KiB
6.3 KiB
[520] 프로그램코드등록 메뉴 분석 명세서
🏛️ 1. 메뉴 개요 및 시스템 매핑 정보
| 항목 | 내용 |
|---|---|
| 메뉴명 | 프로그램코드등록 |
| 목적 | 시스템 내부 프로그램 코드 및 URL, 연결되는 MVC 컴포넌트, 관련 프로시저/테이블 명세 정보를 등록하고 관리하기 위함 |
| Controller 경로 | MenuAuth_Controller.php |
| Logic (Model) 경로 | MenuAuth_logic.php |
| View (TPL) 경로 | MenuAuthScreen_04_Main_mvc.tpl |
🖥️ 2. 화면 구조 및 UI 명세 (Storyboard)
2.1. 화면 레이아웃 구조 (Wireframe)
+---------------------------------------------------------------------------------------------+
| [프로그램코드 등록] |
| |
| [조회] [추가] [삭제] [저장] [엑셀] [도움] [닫기] |
+---------------------------------------------------------------------------------------------+
| ■ 검색 조건 (Sort Section) |
| 프로그램 명칭: [ ] (input_item_01) |
| URL/TABLE/PROCEDURE: [ ] (input_item_02) |
| 유형: [ ▼ Select ] (input_select_01) 시스템: [ ▼ Select ] (input_select_02) |
+---------------------------------------------------------------------------------------------+
| ■ JqGrid 프로그램 코드 데이터 (grid1) |
| [코드] | [명칭] | [URL] | [유형] | [업무] | [기본순번] | [URL/CONTROLLER/LOGIC 등]... |
|--------|--------|-------|--------|--------|------------|------------------------------------|
| P001 | 등록 | /sys..| Q | AM | 0 | ... |
+---------------------------------------------------------------------------------------------+
2.2. 탭(Tab) 인터페이스 구성 및 데이터 연동 명세
- 단일 JqGrid 레이아웃을 통해 데이터를 표출하며, 인라인 편집(Inline Edit)을 활용하여 프로그램 코드, 명칭, MVC 매핑 정보 등을 즉각 수정할 수 있습니다.
2.3. 공통 제어 컴포넌트 명세 (UI Specification)
- 조회 (
td_gnb_btn_02): 입력된 프로그램 명칭, URL 문자열 및 드롭다운 검색 조건들을 통해 프로그램 목록을 필터하여 조회합니다. - 추가 (
td_gnb_btn_03): JqGrid 상에 신규 행을 추가합니다. (JqGridAddRowInfo()) - 삭제 (
td_gnb_btn_04): 선택된 그리드의 행(프로그램 항목)을 삭제 대기 상태로 변경합니다. (JqGridDeleteRow()) - 저장 (
td_gnb_btn_05): 새롭게 추가되었거나 수정, 삭제 상태인 행들의 내역을 DB로 일괄 저장(Insert/Update/Delete)합니다. (JqGridSaveData()) - 엑셀 (
td_gnb_btn_07): JqGrid에 불러온 목록을 엑셀로 내보냅니다. - 도움/닫기 (
td_gnb_btn_08, 09): 공통 도움말 및 화면 탭 종료 버튼.
⚙️ 3. 핵심 비즈니스 로직 및 알고리즘
- 셀렉트 박스 기초 데이터 생성: 뷰 렌더링 전
MenuAuth_logic.php가CommonCodeList객체의QueryCodeList()를 호출하여 유형, 시스템, 기본분류 등 프로그램의 메타 정보 선택값을 준비하여 화면에 할당합니다. - 목록 조회 (
select): JqGrid가Ajax_01(SubAction=select)로 호출 시 검색어들을 처리하여usp_menu_auth_04오라클 프로시저를 실행합니다. 반환된 프로그램의 세부 명세들(명칭, URL, TPL, Proc 등)을 문자열 포맷팅 처리(FN_replace) 후 JSON으로 반환합니다. - 일괄 C.R.U.D 데이터 처리 (
save): JqGrid 상에서의 수정사항(CrudMode)에 따라 각기 다른 프로시저를 분기 실행합니다:Insert:usp_menu_auth_04_inUpdate:usp_menu_auth_04_upDelete:usp_menu_auth_04_del각 프로시저에 그리드 내에 변경된 15개 이상의 매핑 속성들을 인자로 전송합니다.
🔄 4. 데이터 흐름도 (Data Flow Diagram)
sequenceDiagram
participant User
participant Browser (TPL/JS)
participant Controller
participant Logic
participant DB
User->>Browser (TPL/JS): 검색 조건 입력 후 "조회" 버튼 클릭
Browser (TPL/JS)->>Controller: JqGrid 데이터 요청 (SubAction=select)
Controller->>Logic: SCREEN_04_001_Ajax_01(select)
Logic->>DB: 조회 프로시저 호출 (usp_menu_auth_04)
DB-->>Logic: 결과 세트 반환
Logic-->>Browser (TPL/JS): JSON 변환 후 반환
User->>Browser (TPL/JS): 그리드 행 수정/추가 후 "저장" 버튼 클릭
Browser (TPL/JS)->>Browser (TPL/JS): 유효성 검사 (전체조건 입력 방지 등)
Browser (TPL/JS)->>Controller: JqGrid 수정 내역 전송 (SubAction=save)
Controller->>Logic: SCREEN_04_001_Ajax_01(save)
alt CrudMode == 'Insert'
Logic->>DB: usp_menu_auth_04_in 호출
else CrudMode == 'Update'
Logic->>DB: usp_menu_auth_04_up 호출
else CrudMode == 'Delete'
Logic->>DB: usp_menu_auth_04_del 호출
end
DB-->>Logic: 적용 성공
Logic-->>Browser (TPL/JS): 성공 여부 응답 (1)
💾 5. 탭(Tab)별 연동 뷰(TPL) 및 DB 프로시저 상세 매핑
| 탭/액션 명칭 | 연동 뷰 파일 (TPL) | 호출 DB 프로시저 | 기능 설명 |
|---|---|---|---|
| 메인 뷰 (레이아웃) | MenuAuthScreen_04_Main_mvc.tpl | - | 시스템 프로그램 코드 관리 및 검색 레이아웃 |
| 목록 조회 | - | usp_menu_auth_04 |
JqGrid 상에 등록된 프로그램 코드, 매핑 파일 경로, DB 테이블 정보를 조회 |
| 프로그램 추가 저장 | - | usp_menu_auth_04_in |
JqGrid에서 신규 행으로 추가된 프로그램 정보를 DB에 삽입 |
| 프로그램 수정 저장 | - | usp_menu_auth_04_up |
프로그램 정보(URL, 파라미터, 연결 컴포넌트 등) 업데이트 반영 |
| 프로그램 삭제 반영 | - | usp_menu_auth_04_del |
선택한 프로그램 코드를 시스템 상에서 제거(삭제 플래그) |