시스템 아키텍처
검증된 전자정부 표준 아키텍처
ND CMS는 전자정부 표준프레임워크(eGovFrame) 가이드라인을 따라 모듈 간 결합도를 낮추고 유지보수성과 이식성을 높였습니다. 정적 JSP 기본 템플릿과 관리자가 실시간으로 전환·편집하는 GNB/SNB 프리셋 및 10종 DB 동적 블록이 결합된 하이브리드 구조입니다.
시스템 구성도
사용자 요청은 필터와 인터셉터를 거쳐 컨트롤러·서비스·MyBatis를 지나 MariaDB에 도달합니다. 전체가 하나의 컨테이너 이미지로 패키징됩니다.
/_ndm
Bootstrap 5 · Chart.js · TinyMCE
BCrypt 인증 · 역할(RBAC) · 허용 IP
요청 처리 흐름
- 요청 수신 · 사이트 판별
URL 접두어로 서브사이트(사이트 ID)를 판별합니다. 기본 사이트는 접두어 없이 접근하고, 미등록 사이트 ID는 404로 응답합니다.
- 메뉴 · 콘텐츠 조회
메뉴 트리와 현재 경로(브레드크럼·SNB), 콘텐츠 본문·페이지 CSS/JS를 조회합니다. 자주 쓰는 데이터는 메모리 캐시에서 즉시 제공합니다.
- 레이아웃 렌더링
사이트별 GNB/SNB 프리셋 또는 커스텀 블록(
HEADER,SUB_LAYOUT)에 동적 메뉴·브레드크럼 치환자를 바인딩하고, 본문·푸터·공통 CSS/JS 블록을 조합해 최종 HTML을 만듭니다. - 응답 · 통계 기록
접속 통계와 메뉴별 방문 통계를 기록하고, 관리자 화면에서 수정한 내용은 캐시를 비워 곧바로 반영합니다.
설계 원칙
표준 프레임워크 준수
Spring Framework 5.3과 eGovFrame RTE 4.3의 IoC 컨테이너, 일관된 트랜잭션 관리, 보안 필터 체인을 사용합니다.
고속 퍼시스턴스
MyBatis 3.5 기반의 최적화된 SQL 매핑과 인덱스 설계로 대량 데이터 조회에서도 성능을 유지합니다.
컨테이너 네이티브
어디서든 단일 명령으로 기동하는 격리 배포 환경을 제공하고, 자체 DB 스키마로 독립 운영합니다.
기술 스택
| 플랫폼 | Java 17 LTS / Tomcat 9 |
|---|---|
| 프레임워크 | Spring MVC 5.3 / eGovFrame RTE 4.3 |
| ORM / SQL | MyBatis 3.5 / MariaDB Connector 3.3 |
| 데이터베이스 | MariaDB 12 (utf8mb4 인코딩) |
| 관리자 UI | Bootstrap 5 / Chart.js / TinyMCE WYSIWYG |
| 관리자 URL | /_ndm (커스텀 관리자 경로) |
| 배포 | Podman / Docker 컨테이너 이미지 |
구조가 궁금하다면 가이드를 확인하세요
레이아웃 구조, 메뉴·콘텐츠 연동, 블록 편집 방법을 단계별로 안내합니다.

