🏛️ 홍익인간CMS 개발자 매뉴얼

Version 202506 | Updated 2025-06-12
🌐 언어 선택: 🇰🇷 한국어 🇲🇳 Монгол 🇺🇸 English

2. 🏗️ 시스템 아키텍처

2.1 전체 아키텍처 개요

홍익인간CMS는 전자정부프레임워크를 기반으로 한 표준 웹 애플리케이션 아키텍처를 따르고 있습니다. 전체 시스템은 프레젠테이션 계층, 비즈니스 계층, 데이터 액세스 계층으로 구성되어 있으며, 각 계층은 명확히 분리되어 있습니다.

시스템 계층 구조

Presentation Layer
(JSP, Tiles, HTML, CSS, JS)
Business Layer
(Spring Service, AOP, Security)
Data Access Layer
(MyBatis, JDBC, Transaction)
Database
(CUBRID, Oracle, MySQL, etc.)

2.1.1 전자정부 프레임워크 4.2 기반 구조

홍익인간CMS는 전자정부프레임워크 4.2 버전을 기반으로 하며, 다음과 같은 주요 컴포넌트를 활용합니다:

구분 내용
기반 기술 Spring Framework 5.3.27, Spring Boot 2.7.12
주요 변경사항 Java 8 이상 지원, Spring Security 5.8.3 적용, Spring Batch 4.3.8 적용
개선 사항 보안 취약점 개선, 성능 최적화, 표준 준수 강화

2.1.2 Spring Framework 5.3.27 활용

홍익인간CMS는 Spring Framework 5.3.27 버전을 기반으로 하며, 다음과 같은 Spring 기술을 활용합니다:

Spring 기술 용도
Spring MVC 웹 애플리케이션의 MVC 패턴 구현
Spring Security 인증 및 권한 관리
Spring AOP 관점 지향 프로그래밍을 통한 로깅, 트랜잭션 등 처리
Spring OXM XML 처리
Spring Transaction 트랜잭션 관리

2.1.3 Java 8 실행환경

홍익인간CMS는 Java 8 환경에서 실행되도록 설계되었으며, Java 8의 다음과 같은 기능을 활용합니다:

2.2 프로젝트 구성

홍익인간CMS는 다음과 같은 세 가지 주요 모듈로 구성되어 있습니다:

humanframe (루트 프로젝트) ├── humanframe.backoffice (관리자 모듈) └── humanframe.web (사용자 웹 모듈)

2.2.1 Humanframe BACKOFFICE

CMS의 관리자 영역 및 기본 시스템 구동, 스케줄러 등에 대한 자바 클래스로 구성되어 있습니다. CMS의 기본 관리자 기능을 변경해야 할 필요가 있을 시 개발자가 직접 수정 가능합니다.

주요 구성요소:

2.2.2 Humanframe WEB

CMS의 사용자 영역에 대한 자바 클래스 및 Frontend Presentation(관리자, 사용자 전체)을 위한 각종 리소스(jsp, xml, js, css 등)로 구성되어 있습니다.

권장사항: CMS 기본 기능이 아닌 추가 기능에 대한 전체 프로그램 소스(Java class, jsp, xml 등)는 이 프로젝트에 구현하는 것을 권장합니다.

주요 구성요소:

2.3 데이터베이스 구조

2.3.1 데이터 Entity 목록

홍익인간CMS는 다음과 같은 주요 데이터 Entity를 관리합니다:

2.3.2 ERD 및 테이블 관계도

홍익인간CMS의 데이터베이스는 다음과 같은 주요 테이블 그룹으로 구성되어 있습니다:

📊

ERD (Entity Relationship Diagram)

데이터베이스 ERD는 별도 문서로 제공됩니다

2.3.3 주요 테이블 설명

테이블 그룹 주요 테이블 설명
사용자 관리 tn_mber, tn_mngr 사용자 및 관리자 정보 관리
권한 관리 tn_mng_author, tn_mng_author_menu 권한 및 권한 그룹 관리
사이트 관리 tn_site, tn_pblcate_site 멀티 사이트 관리
메뉴 관리 tn_site_menu, tn_pblcate_site_menu 메뉴 구조 및 권한 관리
게시판 관리 tn_bbs_st, tn_bbs_ty1~8 게시판 설정 및 게시물 관리
콘텐츠 관리 tn_cntnts, tn_cntnts_hist, tn_media 콘텐츠 및 미디어 관리
파일 관리 tn_file, tn_file_group 파일 및 파일 그룹 관리
통계 관리 tn_stats_menu_month, tn_stats_menu_year 통계 및 방문 정보 관리
로그 관리 tn_mng_log, tn_mng_privacy_access 시스템 로그 및 개인 정보 접근
설정 관리 tn_mng_menu, tc_code 관리자 메뉴 및 코드 관리

2.3.4 테이블 그룹별 상세 설명

홍익인간CMS는 다음과 같은 주요 테이블 그룹으로 구성되어 있습니다:

1. 코드 관리 테이블

2. 게시판 관련 테이블

3. 사이트 관리 테이블

4. 콘텐츠 관리 테이블

5. 미디어 관리 테이블

6. 사용자 관리 테이블

7. 기타 관리 테이블

그 외 상세 컬럼 정보는 컬럼명세서를 참조해 주시기 바랍니다.

2.3.5 데이터 흐름도

홍익인간CMS의 주요 데이터 흐름은 다음과 같습니다:

  1. 사용자 인증 흐름
    • 사용자 로그인 요청 → 인증 처리 → 세션 생성 → 권한 확인 → 메뉴 접근 제어
  2. 콘텐츠 관리 흐름
    • 콘텐츠 등록/수정 → 파일 업로드 처리 → 데이터베이스 저장 → 캐시 갱신
  3. 게시판 처리 흐름
    • 게시물 등록/수정 → 첨부파일 처리 → 데이터베이스 저장 → 검색 인덱스 갱신
  4. 통계 처리 흐름
    • 사용자 접속 → 로그 기록 → 배치 처리 → 통계 데이터 생성 → 대시보드 표시

부록. 테이블 정의서(컬럼 명세서)

테이블 정의서(컬럼 명세서)는 별도 문서로 제공됩니다.