가이드 개요
개발자 · 퍼블리셔 사전 작업 가이드
관리자 콘솔과 웹 소스코드 작업 전에 반드시 알아야 할 GNB · LNB · SNB 레이아웃 분담 체계, CSS/JS 동적 서빙 우선순위, 메뉴·콘텐츠 연동 절차를 정리한 공식 지침서입니다.
NDCMS v1.0 · eGovFrame — 관리자에서 수정한 내용은 저장 즉시 반영됩니다(DB 우선 서빙).
가이드 구성
아키텍처 및 작업 영역 구분
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)을 모두 사용할 수 있습니다. 커스텀 블록이 저장되어 있으면 프리셋보다 우선 적용되며, 내용을 비우고 저장하면 즉시 프리셋 모드로 복귀합니다.
빌드 및 배포 절차
JSP·Java 소스를 수정한 경우에만 필요합니다. 관리자 화면에서 편집하는 블록·콘텐츠는 빌드가 필요 없습니다.
# 1. WAR 빌드 (JDK 17 Maven 컨테이너 환경)
$ <프로젝트>/deploy/build.sh
# 2. 컨테이너 이미지 빌드 및 서비스 재기동
$ <프로젝트>/deploy/run.sh
사전 작업 체크리스트
개발자 및 퍼블리셔가 작업을 시작하기 전과 완료 후 배포 전에 아래 항목을 순서대로 확인하십시오.
- 관리자 권한 및 계정 로그인 확인
/_ndm/login접속 후 최고관리자(SUPER) 또는 편집 권한이 정상 부여되어 있는지 확인했습니다. - 메뉴 트리 및 key 파라미터 사전 등록
신규 페이지 작업 전, [메뉴관리]에서 상위/하위 계층과 고유키가 생성되어 활성화(‘Y’)되어 있는지 확인했습니다.
- GNB / SNB 표시 방식 결정 (프리셋 vs 커스텀 블록)
표준 네비게이션은 [레이아웃/블록 관리] 상단의 GNB(메가메뉴·드롭다운·심플형) 및 서브(상단 LNB·좌측 SNB·혼합형) 프리셋으로 즉시 설정하고, 완전히 새로운 HTML 골격이 필요한 경우에만
HEADER/SUB_LAYOUT블록에 동적 치환자를 조합해 커스텀 퍼블리싱할 것을 계획했습니다. - 서브사이트(멀티사이트) 확인
기본 사이트뿐 아니라 추가한 서브사이트(
/{사이트ID}/...)에서도 동일한 메뉴와 레이아웃이 어색함 없이 렌더링되는지 확인했습니다. - 모바일 · 태블릿 반응형 뷰포트 점검
PC(1200px 이상), 태블릿(768~1024px), 모바일(768px 이하) 해상도에서 헤더 메뉴 겹침, 테이블 오버플로우가 없는지 확인했습니다.
- 웹 표준 및 파일 업로드 보안 규정 준수
실행 파일(exe, sh, jsp 등) 업로드 차단, 시맨틱 태그 준수, 웹 접근성(WA) alt 속성이 누락되지 않았는지 확인했습니다.
작업 준비가 끝났다면
관리자 콘솔에서 작업을 시작하거나, 메인으로 돌아가 전체 구성을 살펴보세요.

