샘플메뉴분석서 추가

This commit is contained in:
2026-07-29 09:19:29 +09:00
parent 39f5ec53fe
commit f790079bed
3 changed files with 766 additions and 0 deletions
@@ -0,0 +1,97 @@
# [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)
```text
+---------------------------------------------------------------------------------------------+
| [프로그램코드 등록] |
| |
| [조회] [추가] [삭제] [저장] [엑셀] [도움] [닫기] |
+---------------------------------------------------------------------------------------------+
| ■ 검색 조건 (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. 핵심 비즈니스 로직 및 알고리즘
1. **셀렉트 박스 기초 데이터 생성**: 뷰 렌더링 전 `MenuAuth_logic.php``CommonCodeList` 객체의 `QueryCodeList()`를 호출하여 유형, 시스템, 기본분류 등 프로그램의 메타 정보 선택값을 준비하여 화면에 할당합니다.
2. **목록 조회 (`select`)**: JqGrid가 `Ajax_01`(SubAction=`select`)로 호출 시 검색어들을 처리하여 `usp_menu_auth_04` 오라클 프로시저를 실행합니다. 반환된 프로그램의 세부 명세들(명칭, URL, TPL, Proc 등)을 문자열 포맷팅 처리(`FN_replace`) 후 JSON으로 반환합니다.
3. **일괄 C.R.U.D 데이터 처리 (`save`)**: JqGrid 상에서의 수정사항(CrudMode)에 따라 각기 다른 프로시저를 분기 실행합니다:
- `Insert`: `usp_menu_auth_04_in`
- `Update`: `usp_menu_auth_04_up`
- `Delete`: `usp_menu_auth_04_del`
각 프로시저에 그리드 내에 변경된 15개 이상의 매핑 속성들을 인자로 전송합니다.
## 🔄 4. 데이터 흐름도 (Data Flow Diagram)
```mermaid
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` | 선택한 프로그램 코드를 시스템 상에서 제거(삭제 플래그) |