Files
saman/문서/메뉴분석/[520] 프로그램코드등록 메뉴 분석 명세서.md
2026-07-29 09:19:29 +09:00

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. 핵심 비즈니스 로직 및 알고리즘

  1. 셀렉트 박스 기초 데이터 생성: 뷰 렌더링 전 MenuAuth_logic.phpCommonCodeList 객체의 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)

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 선택한 프로그램 코드를 시스템 상에서 제거(삭제 플래그)