UJCMS: SpringBoot 기반 오픈 소스 콘텐츠 관리 시스템
UJCMS는 개발자에게 유연하고 사용하기 쉬우며 강력한 플랫폼을 제공하는 것을 목표로 SpringBoot를 기반으로 개발된 오픈 소스 콘텐츠 관리 시스템(Java CMS)입니다. SpringBoot, MyBatis, Shiro, Lucene, FreeMarker, TypeScript, Vue3, ElementPlus와 같은 주류 기술을 활용하고 Jspxcms의 수년간의 개발 경험을 참조하여 원래 시스템의 일부 문제점을 최적화하고 개선합니다.
UJCMS의 기술적인 특징
UJCMS는 기술 선택과 아키텍처 설계에 있어 항상 '단순함'과 '유연함'의 원칙을 고수하여 시스템 유지 관리 비용과 2차 개발 어려움을 줄이고 개발자에게 보다 편리한 경험을 제공하기 위해 노력하고 있습니다.
1. 기술 아키텍처
지속성 계층: MyBatis를 사용하여 Hibernate를 대체하여 데이터 지속성 작업을 단순화하고 개발 효율성을 향상시킵니다.
뷰 레이어: 별도의 프런트엔드와 백엔드가 있는 Vue3를 사용하여 JSP를 대체하여 보다 현대적인 사용자 인터페이스 디자인을 달성하고 사용자 경험을 향상시킵니다.
데이터베이스: 데이터베이스 아키텍처를 재설계하고 데이터 저장 및 액세스 방법을 최적화합니다.
2. 기능 하이라이트
UJCMS는 콘텐츠 관리 시스템의 핵심 요구 사항을 충족하는 다양한 기능을 제공하고 몇 가지 혁신적인 디자인을 통해 시스템의 유연성과 사용 편의성을 향상시킵니다.
1. 사용자 정의 필드
쿼리 가능: 모든 사용자 정의 필드를 쿼리할 수 있어 시스템의 유연성이 향상되고 다양한 콘텐츠 관리 요구 사항을 충족합니다.
시각적 디자인: WYSIWYG 맞춤형 필드 구성을 실현하고 운영 프로세스를 단순화하기 위한 드래그 앤 드롭 시각적 디자인 인터페이스를 제공합니다.
2. URL 주소 SEO 최적화
동적 주소 수정: 시스템은 SEO 최적화 효과를 높이기 위해 사용자가 열과 기사의 URL 주소 접두어를 사용자 정의할 수 있도록 전역 설정 기능을 제공합니다.
다중 사이트 최적화: 하위 사이트의 URL 주소는 더 이상 www.example.com/site-abc 형식이 아니라 보다 친숙한 형식인 www.example.com/abc로 되어 있어 사용자 액세스 경로가 단순화됩니다.
3. 정크 첨부 파일 정리
첨부파일 관리: 사용자가 사용하지 않는 모든 사진 및 첨부파일을 쉽게 확인하고 삭제하며 시스템 공간을 정리할 수 있도록 첨부파일 관리 기능을 제공합니다.
자동 정리: 기사를 삭제한 후 시스템은 대량의 정크 데이터 생성을 방지하기 위해 기사에서 사용하지 않는 이미지와 첨부 파일을 자동으로 정리합니다.
4. 첨부 파일, 템플릿 및 색인 파일이 독립적으로 배포됩니다.
독립 디렉터리: 시스템이 실행될 때 생성된 파일(예: 업로드된 이미지 및 첨부 파일, 프런트 엔드 템플릿, 인덱스 파일)을 독립 디렉터리에 배포하여 시스템 백업, 업그레이드 및 관리를 용이하게 합니다.
5. 템플릿 파일은 CSS 및 JS와 동일한 디렉터리에 있습니다.
편리한 관리: 템플릿 파일, CSS, JS를 동일한 디렉토리에 배치하여 템플릿 제작 및 배포 프로세스를 단순화하고 개발 효율성을 향상시킵니다.
6. MyBatis 매개변수화된 쿼리
유연한 쿼리: 프런트 엔드에 쿼리 매개변수를 전달하면 모든 필드 및 관련 테이블의 쿼리 기능을 구현할 수 있으므로 백그라운드에서 코드를 작성할 필요가 없으므로 백엔드 개발 작업량이 크게 줄어듭니다.
효율성 향상: 쿼리 작업을 단순화하고 개발 효율성을 향상시킵니다.
7. 기본 테이블과 보조 테이블 분할
성능 향상: 쿼리 볼륨이 큰 복잡한 테이블을 기본 테이블과 보조 테이블로 분할하고, 일반적으로 사용되는 쿼리 필드를 기본 테이블에 배치하고, 덜 일반적으로 사용되는 필드를 보조 테이블에 배치하여 대용량 데이터 볼륨에서 시스템 성능을 향상시킵니다.
UJCMS에 대한 환경 요구 사항
JDK 8
MySQL 5.7(5.6, 8.0과 호환 가능)
톰캣 8.5, 9.0(서블릿 3.1+)
메이븐 3.5 이상
시스템 백엔드 호환 브라우저: Chrome, Firefox, Edge
첫 페이지의 호환 가능한 브라우저는 템플릿에 따라 다릅니다. 사용자는 템플릿을 완전히 제어할 수 있으며 이론적으로 모든 브라우저를 지원할 수 있습니다. 데모 템플릿은 IE10+(라이브러리 기능 제외), Chrome, Firefox 및 Edge를 지원합니다.
UJCMS 설치 및 시작
1. 데이터베이스로 데이터 가져오기
데이터베이스 생성: MySQL을 사용할 때 utf8mb4 문자 집합을 선택합니다(이모티콘 문자 emoji와 같은 특수 문자를 더 많이 지원하는 것이 좋습니다).
데이터베이스 스크립트 실행: 데이터베이스 스크립트는 데이터베이스 디렉터리에 있습니다.
2. 프로그램 시작
Maven 프로젝트 가져오기: Eclipse에서 Maven 프로젝트를 가져오고 타사 jar 패키지(예: Spring)가 Maven 서버에서 다운로드될 때까지 기다립니다.
데이터베이스 연결 수정: /src/main/resources/application.propertis 파일을 열고 spring.datasource.url, spring.datasource.username, spring.datasource.password 값을 실제 상황에 맞게 수정합니다.
프로그램 시작: Eclipse에서 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고 실행 도구 - Java 애플리케이션을 선택한 다음 애플리케이션 - com.ujcms를 선택하고 확인을 클릭합니다.
IntelliJ IDEA: 작업 단계는 Eclipse와 유사합니다. 프로젝트에서 com.ujcms.Application 클래스를 찾아 마우스 오른쪽 버튼으로 클릭하고 Run 'Application'을 선택합니다.
3. 접속 주소
프런트 데스크: http://localhost:8080/
백엔드: http://localhost:8080/cp/ (사용자 이름: admin, 비밀번호: 비밀번호)
참고: 백엔드 프론트엔드는 Vue 3를 기반으로 개발되었습니다. 백엔드 인터페이스를 수정하려면 ujcms-cp 프로젝트를 별도로 다운로드하세요.
요약
UJCMS는 뛰어난 성능을 갖춘 강력하고 유연하며 사용하기 쉬운 오픈 소스 콘텐츠 관리 시스템입니다. 주류 기술 스택을 채택하고 몇 가지 일반적인 문제를 최적화하여 개발자에게 보다 편리하고 효율적인 개발 및 유지 관리 경험을 제공하는 것을 목표로 합니다. 안정적이고 쉽게 확장 가능한 CMS 플랫폼이 필요하다면 UJCMS에 주목할 가치가 있습니다.