Developer & Publisher Guide

개발자 · 퍼블리셔 사전 작업 가이드

관리자 콘솔과 웹 소스코드 작업 전에 반드시 알아야 할 GNB · LNB · SNB 레이아웃 분담 체계, CSS/JS 동적 서빙 우선순위, 메뉴·콘텐츠 연동 절차를 정리한 공식 지침서입니다.

NDCMS v1.0 · eGovFrame — 관리자에서 수정한 내용은 저장 즉시 반영됩니다(DB 우선 서빙).

Contents

가이드 구성

01 · Architecture

아키텍처 및 작업 영역 구분

ND CMS는 정적 JSP 기본 템플릿(파일시스템)과 관리자 실시간 동적 프리셋·블록(DB 저장)이 결합된 하이브리드 아키텍처입니다. 상단 GNB와 서브 LNB/SNB를 포함한 모든 화면 요소를 코드 배포 없이 관리자 콘솔에서 제어할 수 있습니다.

작업 영역 구분
구분관리자 UI (웹 브라우저 · 실시간 반영)서버 소스코드 (초기 기본값 · 폴백)
GNB (상단 메뉴) 메뉴 · 프리셋 [메뉴관리]에서 메뉴 등록 및 [레이아웃/블록 관리]에서 3종 프리셋(메가메뉴·드롭다운·심플형) 선택 또는 HEADER 블록 커스텀 편집 기본 템플릿 header.jsp 및 nav-presets.css / nav-presets.js
LNB (서브 상단 네비) 자동 · 프리셋 메뉴 트리 기반 브레드크럼 자동 생성, 서브 프리셋(LNB · BOTH) 선택 또는 SUB_LAYOUT 블록 편집 기본 템플릿 subhead.jsp 및 {{BREADCRUMB}} 치환 렌더러
SNB (좌측 2단 사이드바) 프리셋 · 커스텀 [레이아웃/블록 관리]에서 서브 프리셋(SNB 좌측형 · BOTH 혼합형) 선택 즉시 2단 사이드바 활성화 (또는 SUB_LAYOUT 블록에 {{SNB_MENU}} 배치) 기본 템플릿 subhead.jsp / subfoot.jsp 및 {{SNB_MENU}} 치환 렌더러
공통 CSS / JS 실시간 반영 (최우선) [레이아웃/블록 관리]에서 COMMON_CSS, SUB_CSS, MAIN_CSS, COMMON_JS 편집 초기 기본값 src/main/resources/blocks/{코드}.html|.txt 및 /resource/www/...
메인 본문 / 푸터 실시간 반영 [레이아웃/블록 관리] MAIN_BODY, FOOTER, HEAD_EXTRA, BODY_END 편집 초기 기본값 MAIN_BODY.html, FOOTER.html
서브 페이지 콘텐츠 실시간 반영 [콘텐츠관리] (TinyMCE WYSIWYG 에디터 및 페이지 전용 CSS/JS) 버전 히스토리 DB tb_content 및 tb_content_hist 자동 보존

GNB · SNB 2-Track 제어 지원 [레이아웃/블록 관리] (/_ndm/layout) 상단에서 사이트별 프리셋(방식 B)을 클릭 한 번으로 전환하거나, HEADER · SUB_LAYOUT 블록에 동적 메뉴 치환자({{GNB_MENU}}, {{SNB_MENU}} 등)를 조합하는 커스텀 블록 퍼블리싱(방식 A)을 모두 사용할 수 있습니다. 커스텀 블록이 저장되어 있으면 프리셋보다 우선 적용되며, 내용을 비우고 저장하면 즉시 프리셋 모드로 복귀합니다.

02 · Build & Deploy

빌드 및 배포 절차

JSP·Java 소스를 수정한 경우에만 필요합니다. 관리자 화면에서 편집하는 블록·콘텐츠는 빌드가 필요 없습니다.

# 1. WAR 빌드 (JDK 17 Maven 컨테이너 환경)
$ <프로젝트>/deploy/build.sh

# 2. 컨테이너 이미지 빌드 및 서비스 재기동
$ <프로젝트>/deploy/run.sh
03 · Pre-flight Checklist

사전 작업 체크리스트

개발자 및 퍼블리셔가 작업을 시작하기 전과 완료 후 배포 전에 아래 항목을 순서대로 확인하십시오.

  1. 관리자 권한 및 계정 로그인 확인

    /_ndm/login 접속 후 최고관리자(SUPER) 또는 편집 권한이 정상 부여되어 있는지 확인했습니다.

  2. 메뉴 트리 및 key 파라미터 사전 등록

    신규 페이지 작업 전, [메뉴관리]에서 상위/하위 계층과 고유키가 생성되어 활성화(‘Y’)되어 있는지 확인했습니다.

  3. GNB / SNB 표시 방식 결정 (프리셋 vs 커스텀 블록)

    표준 네비게이션은 [레이아웃/블록 관리] 상단의 GNB(메가메뉴·드롭다운·심플형) 및 서브(상단 LNB·좌측 SNB·혼합형) 프리셋으로 즉시 설정하고, 완전히 새로운 HTML 골격이 필요한 경우에만 HEADER / SUB_LAYOUT 블록에 동적 치환자를 조합해 커스텀 퍼블리싱할 것을 계획했습니다.

  4. 서브사이트(멀티사이트) 확인

    기본 사이트뿐 아니라 추가한 서브사이트(/{사이트ID}/...)에서도 동일한 메뉴와 레이아웃이 어색함 없이 렌더링되는지 확인했습니다.

  5. 모바일 · 태블릿 반응형 뷰포트 점검

    PC(1200px 이상), 태블릿(768~1024px), 모바일(768px 이하) 해상도에서 헤더 메뉴 겹침, 테이블 오버플로우가 없는지 확인했습니다.

  6. 웹 표준 및 파일 업로드 보안 규정 준수

    실행 파일(exe, sh, jsp 등) 업로드 차단, 시맨틱 태그 준수, 웹 접근성(WA) alt 속성이 누락되지 않았는지 확인했습니다.

작업 준비가 끝났다면

관리자 콘솔에서 작업을 시작하거나, 메인으로 돌아가 전체 구성을 살펴보세요.