commit 27432cbbfd39d449a9e3d85ebcd80e6ac6d38b22 Author: sxxxxxb Date: Mon Jul 27 13:47:24 2026 +0900 feat: Initial commit diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..9985c39 Binary files /dev/null and b/.DS_Store differ diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..55d79e4 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +/gradlew text eol=lf +*.bat text eol=crlf +*.jar binary \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2065bc --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d456829 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM eclipse-temurin:17-jdk AS builder + +WORKDIR /app + +COPY . . +RUN ./gradlew bootJar --no-daemon + +FROM eclipse-temurin:17-jre +WORKDIR /app + +COPY --from=builder /app/build/libs/*.jar app.jar + +EXPOSE 8080 +ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..091d5a1 --- /dev/null +++ b/build.gradle @@ -0,0 +1,44 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.5.16' + id 'io.spring.dependency-management' version '1.1.7' +} +group = 'net.jwsi.jcms' +version = '0.0.1-SNAPSHOT' +description = 'vpp' +java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } +} +repositories { + maven { + url project.mvnUrl + credentials { + username project.mvnUser + password project.mvnPasswd + } + } +} +configurations.configureEach { + resolutionStrategy.cacheChangingModulesFor 0, 'seconds' +} +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + implementation 'org.springframework.boot:spring-boot-starter-security' + implementation 'org.springframework.boot:spring-boot-starter-validation' + implementation 'net.jwsi:jcms-cms:0.5-SNAPSHOT' + implementation 'net.jwsi:jcms-cms-board:0.5-SNAPSHOT' + implementation 'net.jwsi:jcms-cms-thymeleaf:0.5-SNAPSHOT' + implementation 'net.jwsi:jcms-cms-user:0.5-SNAPSHOT' + implementation 'net.jwsi:jcms-cms-login:0.5-SNAPSHOT' + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' + implementation 'org.springframework.boot:spring-boot-starter' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +} +tasks.named('test') { + useJUnitPlatform() +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..3008071 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,30 @@ +services: + mariadb: + image: mariadb:11.2 + container_name: jcms-db + restart: always + environment: + MYSQL_ROOT_PASSWORD: jcms + MYSQL_DATABASE: jcmsdb + MYSQL_USER: jcms + MYSQL_PASSWORD: jcms3593 + ports: + - "3306:3306" + volumes: + - mariadb_data:/var/lib/mysql + + app: + build: . + container_name: jcms-app + restart: always + ports: + - "8080:8080" + environment: + SPRING_DATASOURCE_JCMS_DB_URL: jdbc:mariadb://mariadb:3306/jcmsdb + SPRING_DATASOURCE_JCMS_DB_USERNAME: jcms + SPRING_DATASOURCE_JCMS_DB_PASSWORD: jcms3593 + depends_on: + - mariadb + +volumes: + mariadb_data: \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..f6083bf --- /dev/null +++ b/gradle.properties @@ -0,0 +1,3 @@ +mvnUrl=https://repos.jwsi.net/repository/maven-public/ +mvnUser=jinwoosi +mvnPasswd=jwJW!@jw8451 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..b1b8ef5 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..d1a9b3d --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.5-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists \ No newline at end of file diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..b9bb139 --- /dev/null +++ b/gradlew @@ -0,0 +1,248 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..24c62d5 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,82 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:execute +@rem Setup the command line + + + +@rem Execute Gradle +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel + +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/jcms3_05.sql b/jcms3_05.sql new file mode 100644 index 0000000..8ccdd47 --- /dev/null +++ b/jcms3_05.sql @@ -0,0 +1,1124 @@ +-- MariaDB dump 10.19 Distrib 10.5.22-MariaDB, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: jcms +-- ------------------------------------------------------ +-- Server version 10.5.22-MariaDB-1:10.5.22+maria~ubu2004 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `jcms_auto_login` +-- + +DROP TABLE IF EXISTS `jcms_auto_login`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_auto_login` ( + `SERIES` varchar(64) NOT NULL COMMENT '인증SN', + `USERNAME` varchar(64) DEFAULT NULL COMMENT '사용자명', + `TOKEN` varchar(64) DEFAULT NULL COMMENT '토큰', + `LAST_USED` timestamp NULL DEFAULT NULL COMMENT '최종로그인', + PRIMARY KEY (`SERIES`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='자동로그인'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_auto_login` +-- + +LOCK TABLES `jcms_auto_login` WRITE; +/*!40000 ALTER TABLE `jcms_auto_login` DISABLE KEYS */; +INSERT INTO `jcms_auto_login` VALUES ('nmXxNXKwxJJ+lipAeDaalw==','system','zxS6Vicb4uTr8PBWrK/WPQ==','2025-09-30 07:21:03'); +/*!40000 ALTER TABLE `jcms_auto_login` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_banner` +-- + +DROP TABLE IF EXISTS `jcms_banner`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_banner` ( + `BANNER_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '베너ID', + `SITE_ID` smallint(6) DEFAULT NULL COMMENT '사이트ID', + `BANNER_TP` varchar(20) NOT NULL COMMENT '베너유형', + `BANNER_NM` varchar(300) NOT NULL COMMENT '베너명', + `BANNER_ALT` varchar(500) DEFAULT NULL COMMENT '베너주석', + `LINK_URL` varchar(200) DEFAULT NULL COMMENT '링크URL', + `START_DT` timestamp NULL DEFAULT NULL COMMENT '표출시작일', + `END_DT` timestamp NULL DEFAULT NULL COMMENT '표출종료일', + `FILE_ID` int(11) DEFAULT NULL COMMENT '파일ID', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`BANNER_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='베너'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_banner` +-- + +LOCK TABLES `jcms_banner` WRITE; +/*!40000 ALTER TABLE `jcms_banner` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_banner` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_bod` +-- + +DROP TABLE IF EXISTS `jcms_bod`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_bod` ( + `BOD_ID` varchar(20) NOT NULL COMMENT '게시판ID', + `BOD_TP` varchar(20) NOT NULL COMMENT '게시판타입', + `BOD_NM` varchar(250) NOT NULL COMMENT '게시판명', + `BOD_HEADER` varchar(2000) DEFAULT NULL COMMENT '게시판헤더', + `BOD_FOOTER` varchar(2000) DEFAULT NULL COMMENT '게시판푸터', + `BOD_ORD` int(11) DEFAULT NULL COMMENT '게시판 순서', + `CMNT_YN` char(1) DEFAULT NULL COMMENT '댓글사용여부', + `ANSW_YN` char(1) DEFAULT NULL COMMENT '답변사용여부', + `SCRT_YN` char(1) DEFAULT NULL COMMENT '비밀글사요여부', + `ARTI_CNT` int(11) NOT NULL COMMENT '게시물수', + `FILE_UPLOAD_CNT` int(11) DEFAULT NULL COMMENT '최대파일업로드수', + `NEW_ARTI_DT` int(11) DEFAULT NULL COMMENT '새글알림표시일수', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`BOD_ID`), + KEY `BOD_TP_ID_IDX` (`BOD_TP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='게시판정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_bod` +-- + +LOCK TABLES `jcms_bod` WRITE; +/*!40000 ALTER TABLE `jcms_bod` DISABLE KEYS */; +INSERT INTO `jcms_bod` VALUES ('1001','normal','공지사항','','',NULL,'N','N','N',10,NULL,NULL,1,'2024-06-04 23:40:32',1,'2024-06-05 02:26:19',1,'2024-06-05 06:15:55','D'),('58b25b57a61c','normal','공지사항','게시판 머릿글','',1,'Y','Y','N',15,NULL,NULL,1,'2024-06-05 06:33:14',1,'2024-07-02 06:06:13',NULL,NULL,'Y'); +/*!40000 ALTER TABLE `jcms_bod` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_bod_admin` +-- + +DROP TABLE IF EXISTS `jcms_bod_admin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_bod_admin` ( + `BOD_ID` varchar(20) NOT NULL COMMENT '게시판ID', + `USER_ID` int(11) NOT NULL COMMENT '사용자ID', + PRIMARY KEY (`BOD_ID`,`USER_ID`), + KEY `JCMS_BOD_ROLE_FK1` (`BOD_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='CMS 공통 게시판 별 권한'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_bod_admin` +-- + +LOCK TABLES `jcms_bod_admin` WRITE; +/*!40000 ALTER TABLE `jcms_bod_admin` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_bod_admin` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_bod_arti` +-- + +DROP TABLE IF EXISTS `jcms_bod_arti`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_bod_arti` ( + `ARTI_ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '게시물ID', + `BOD_ID` varchar(20) DEFAULT NULL COMMENT '게시판ID', + `DEPTH` tinyint(4) DEFAULT NULL COMMENT '게시물뎁스', + `TITLE` varchar(250) NOT NULL COMMENT '제목', + `CONT` text DEFAULT NULL COMMENT '본문', + `SCRT_YN` char(1) DEFAULT NULL COMMENT '비밀글여부', + `NOTI_YN` char(1) DEFAULT NULL COMMENT '공지여부', + `FILE_PRVIEW` decimal(20,0) DEFAULT NULL COMMENT '파일미리보기수', + `ITEM_ID` smallint(6) DEFAULT NULL COMMENT '파일업ID', + `HIT` bigint(20) DEFAULT NULL, + `REG_NM` varchar(30) DEFAULT NULL COMMENT '작성자명', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`ARTI_ID`), + KEY `IX_JCMS_BOD_ARTI` (`ARTI_ID`,`BOD_ID`,`DEPTH`), + KEY `JCMS_BOD_TOJ_BOD_ARTI` (`BOD_ID`), + CONSTRAINT `JCMS_BOD_TOJ_BOD_ARTI` FOREIGN KEY (`BOD_ID`) REFERENCES `jcms_bod` (`BOD_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1005 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CMS 공통 게시글'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_bod_arti` +-- + +LOCK TABLES `jcms_bod_arti` WRITE; +/*!40000 ALTER TABLE `jcms_bod_arti` DISABLE KEYS */; +INSERT INTO `jcms_bod_arti` VALUES (1001,'1001',NULL,'Test...','',NULL,'N',NULL,NULL,NULL,'라라',1,'2024-06-11 06:51:41',NULL,NULL,NULL,NULL,'Y'),(1002,'58b25b57a61c',NULL,'Test','...',NULL,'N',NULL,NULL,NULL,'라라',1,'2024-09-07 07:30:38',NULL,NULL,1,'2024-09-07 07:30:47','D'),(1003,'58b25b57a61c',NULL,'Test editor...','

',NULL,'N',NULL,NULL,NULL,'라라',1,'2025-01-09 01:53:04',NULL,NULL,1,'2025-01-09 02:11:25','D'),(1004,'58b25b57a61c',NULL,'포식자','

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
1 고양이2. 족제비담비
 사함과 
\r\n

최상의 사냥꾼~~

',NULL,'N',NULL,NULL,NULL,'라라',1,'2025-01-09 02:08:28',1,'2025-01-11 14:33:00',NULL,NULL,'Y'); +/*!40000 ALTER TABLE `jcms_bod_arti` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_bod_cmnt` +-- + +DROP TABLE IF EXISTS `jcms_bod_cmnt`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_bod_cmnt` ( + `CMNT_ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '댓글ID', + `ARTI_ID` int(11) DEFAULT NULL COMMENT '게시물ID', + `CMNT_GRP` smallint(6) DEFAULT NULL COMMENT '댓글그룹', + `DEPTH` tinyint(4) DEFAULT NULL COMMENT '댓글뎁스', + `CONT` varchar(2000) NOT NULL COMMENT '본문', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`CMNT_ID`), + KEY `JCMS_BOD_CMNT_FK1` (`CMNT_ID`,`ARTI_ID`,`DEPTH`), + KEY `FK_JCMS_BOD_ARTI_TO_JCMS_BOD_CMNT` (`ARTI_ID`), + CONSTRAINT `FK_JCMS_BOD_ARTI_TO_JCMS_BOD_CMNT` FOREIGN KEY (`ARTI_ID`) REFERENCES `jcms_bod_arti` (`ARTI_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CMS 공통 게시믈 댓글'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_bod_cmnt` +-- + +LOCK TABLES `jcms_bod_cmnt` WRITE; +/*!40000 ALTER TABLE `jcms_bod_cmnt` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_bod_cmnt` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_cd` +-- + +DROP TABLE IF EXISTS `jcms_cd`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_cd` ( + `CD_ID` varchar(20) NOT NULL COMMENT '코드ID', + `CD_CLS_ID` varchar(20) NOT NULL COMMENT '코드클래스ID', + `CD_NM` varchar(50) NOT NULL COMMENT '코드명', + `CD_DESC` varchar(500) DEFAULT NULL COMMENT '코드설명', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`CD_ID`), + KEY `CD_CLS_ID` (`CD_CLS_ID`), + CONSTRAINT `JCMS_CD_CLS_TOJ_CD` FOREIGN KEY (`CD_CLS_ID`) REFERENCES `jcms_cd_cls` (`CD_CLS_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='코드분류정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_cd` +-- + +LOCK TABLES `jcms_cd` WRITE; +/*!40000 ALTER TABLE `jcms_cd` DISABLE KEYS */; +INSERT INTO `jcms_cd` VALUES ('banner','jcms','배너','베너 분류 코드',1,'2024-02-08 01:56:33',NULL,NULL,NULL,NULL,'Y'),('board','jcms','게시판분류','각 게시판을 분류 할 ID..',1,'2024-02-08 01:56:33',1,'2024-06-12 01:37:39',NULL,NULL,'Y'),('bodTp','userCd','게시판분류','각 게시판을 분류 할 ID..',1,'2024-06-11 23:46:27',1,'2024-06-12 00:51:30',NULL,NULL,'Y'),('contdisp','jcms','콘텐츠 표시방법','콘텐츠 표시방법',1,'2024-02-08 01:56:33',NULL,NULL,NULL,NULL,'Y'),('lang','jcms','언어','사이트 적용 언어',1,'2024-02-08 01:56:33',NULL,NULL,NULL,NULL,'Y'),('popup','jcms','팝업 타입','팝업 타입',1,'2024-02-08 01:56:33',NULL,NULL,NULL,NULL,'Y'),('program','jcms','프로그램 타입','프로그램 타입',1,'2024-02-08 01:56:33',NULL,NULL,NULL,NULL,'Y'),('recSt','jcms','레코드상태','DB 레코드상태',1,'2024-09-07 13:35:33',NULL,NULL,NULL,NULL,'Y'),('satisType','jcms','만족도','메뉴별 만족도 타입',1,'2024-02-08 01:56:33',NULL,NULL,NULL,NULL,'Y'),('Test','jcms','Teest','',1,'2024-04-23 01:19:44',1,'2024-04-23 01:20:09',1,'2024-04-23 01:20:25','D'),('Test01코드','jcms','test01','',1,'2024-08-21 06:41:08',NULL,NULL,NULL,NULL,'Y'),('test02','jcms','Test02','',1,'2024-08-21 06:41:48',NULL,NULL,NULL,NULL,'Y'),('userRole','jcms','사용자권한','사용자 권한(ROLE) 코드\r\n상세코드 반드시 \'ROLE_\'로 시작\r\nROLE_ADMIN, ROLE_USER 등등',1,'2024-05-02 01:27:13',1,'2024-05-02 01:30:21',NULL,NULL,'Y'),('userStCd','jcms','사용자상태코드','사용자상태코드',1,'2024-02-08 01:56:33',NULL,NULL,NULL,NULL,'Y'); +/*!40000 ALTER TABLE `jcms_cd` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_cd_cls` +-- + +DROP TABLE IF EXISTS `jcms_cd_cls`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_cd_cls` ( + `CD_CLS_ID` varchar(20) NOT NULL COMMENT '코드클래스ID', + `CD_CLS_NM` varchar(20) NOT NULL COMMENT '코드명', + `CD_CLS_DESC` varchar(500) DEFAULT NULL COMMENT '코드설명', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`CD_CLS_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='코드클래스'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_cd_cls` +-- + +LOCK TABLES `jcms_cd_cls` WRITE; +/*!40000 ALTER TABLE `jcms_cd_cls` DISABLE KEYS */; +INSERT INTO `jcms_cd_cls` VALUES ('jcms','시스템코드','JCMS 시스템전용 코드',1,'2024-02-08 10:46:29',NULL,NULL,NULL,NULL,'Y'),('userCd','사용자코드','사용자 코드',1,'2024-06-11 07:49:06',1,'2024-06-11 08:22:55',1,'2024-06-12 00:51:52','Y'); +/*!40000 ALTER TABLE `jcms_cd_cls` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_cd_dtl` +-- + +DROP TABLE IF EXISTS `jcms_cd_dtl`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_cd_dtl` ( + `CD_DTL_ID` varchar(20) NOT NULL COMMENT '코드ID', + `CD_ID` varchar(20) NOT NULL COMMENT '코드분류ID', + `CD_DTL_NM` varchar(50) DEFAULT NULL COMMENT '코드NM', + `CD_DTL_LABEL` varchar(50) NOT NULL COMMENT '코드라벨', + `CD_DTL_DESC` varchar(500) DEFAULT NULL COMMENT '코드설명', + `CD_DTL_ORD` int(11) DEFAULT NULL COMMENT '코드순번', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`CD_DTL_ID`,`CD_ID`), + KEY `IDX_JCMS_CD_DTL` (`CD_ID`,`CD_DTL_ORD`), + CONSTRAINT `JCMS_CD_TOJ_CD_DTL` FOREIGN KEY (`CD_ID`) REFERENCES `jcms_cd` (`CD_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='코드정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_cd_dtl` +-- + +LOCK TABLES `jcms_cd_dtl` WRITE; +/*!40000 ALTER TABLE `jcms_cd_dtl` DISABLE KEYS */; +INSERT INTO `jcms_cd_dtl` VALUES ('1','satisType','매우 불만족','danger',NULL,5,NULL,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('1','userStCd','사용중','success','사용중',1,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('2','satisType','불만족','warning',NULL,4,NULL,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('2','userStCd','사용중지','secondary','사용중지',2,1,'2024-02-08 02:14:39',1,'2024-06-14 00:04:58',NULL,NULL,'Y'),('3','satisType','보통','secondary',NULL,3,NULL,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('3','userStCd','탈퇴','danger','탈퇴',3,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('5','satisType','매우 만족','success','',1,NULL,'2024-02-08 02:14:39',1,'2024-06-12 01:06:00',NULL,NULL,'Y'),('baseBod','bodTp','일반게시판','secondary','',1,1,'2024-06-11 23:52:38',1,'2024-06-12 01:04:56',NULL,NULL,'Y'),('board','program','게시판','info','게시판 메뉴',5,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('cont','program','콘텐츠','warning','콘텐츠 메뉴',4,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('D','recSt','삭제','danger','삭제레코드',2,1,'2024-09-07 14:42:30',NULL,NULL,NULL,NULL,'Y'),('flatfish','board','광어','primary','',2,1,'2024-04-25 08:50:19',1,'2024-04-25 08:50:50',1,'2024-04-25 08:51:07','D'),('ko','lang','한글','secondary','한국어',1,1,'2024-02-08 02:14:39',1,'2021-02-18 15:00:00',NULL,NULL,'Y'),('layer','popup','레이어팝업','secondary','레이어형태 팝업',1,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('link','program','링크','success','링크 메뉴',3,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('normal','board','일반게시판','secondary','일반게시판 형태',1,1,'2024-02-08 02:14:39',1,'2024-07-01 01:44:58',NULL,NULL,'Y'),('pgm','program','프로그램','primary','프로그램 메뉴',2,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('ready','program','준비중','secondary','준비중 메뉴',1,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('ROLE_ADMIN','userRole','시스템관리자','danger','시스템최고권한 사용자',1,1,'2024-05-02 01:28:43',NULL,NULL,NULL,NULL,'Y'),('ROLE_USER','userRole','정회원','secondary','본 사이트에 가입한 회원',2,1,'2024-05-02 01:32:21',1,'2024-07-01 01:46:15',NULL,NULL,'Y'),('select','contdisp','셀렉트','warning','셀렉트형식 콘텐츠',3,82,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('single','contdisp','단일','info','단일 콘텐츠',1,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('tab','contdisp','탭','success','탭형식의 콘텐츠',2,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('window','popup','윈도우팝업','success','윈도우형태 팝업',2,1,'2024-02-08 02:14:39',NULL,NULL,NULL,NULL,'Y'),('Y','recSt','정상','secondary','정상레코드',1,1,'2024-09-07 13:36:15',NULL,NULL,NULL,NULL,'Y'); +/*!40000 ALTER TABLE `jcms_cd_dtl` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_cont` +-- + +DROP TABLE IF EXISTS `jcms_cont`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_cont` ( + `CONT_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '컨텐츠ID', + `CONT_NM` varchar(300) NOT NULL COMMENT '컨텐츠명', + PRIMARY KEY (`CONT_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='컨텐츠'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_cont` +-- + +LOCK TABLES `jcms_cont` WRITE; +/*!40000 ALTER TABLE `jcms_cont` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_cont` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_cont_bkmak` +-- + +DROP TABLE IF EXISTS `jcms_cont_bkmak`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_cont_bkmak` ( + `CONT_ID` smallint(6) NOT NULL COMMENT '컨텐츠ID', + `USER_ID` int(11) NOT NULL COMMENT '사용자ID' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='사용자북마크'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_cont_bkmak` +-- + +LOCK TABLES `jcms_cont_bkmak` WRITE; +/*!40000 ALTER TABLE `jcms_cont_bkmak` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_cont_bkmak` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_cont_item` +-- + +DROP TABLE IF EXISTS `jcms_cont_item`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_cont_item` ( + `CONT_ITEM_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '컨텐츠항목ID', + `CONT_ID` smallint(6) NOT NULL COMMENT '컨텐츠ID', + `CONT_ITEM_NM` varchar(250) DEFAULT NULL COMMENT '컨텐츠항목명', + `LANG_ID` smallint(6) NOT NULL COMMENT '언어ID', + `CONT` text DEFAULT NULL COMMENT '본문', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`CONT_ITEM_ID`), + KEY `CONT_ID_LANG_ID` (`CONT_ID`,`LANG_ID`), + KEY `JCMS_CONT_ITEM_FK1` (`LANG_ID`), + KEY `JCMS_CONT_ITEM_FK2` (`CONT_ID`), + CONSTRAINT `JCMS_CONT_TOJ_CONT_ITEM` FOREIGN KEY (`CONT_ID`) REFERENCES `jcms_cont` (`CONT_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='컨텐츠항목'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_cont_item` +-- + +LOCK TABLES `jcms_cont_item` WRITE; +/*!40000 ALTER TABLE `jcms_cont_item` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_cont_item` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_cont_item_hist` +-- + +DROP TABLE IF EXISTS `jcms_cont_item_hist`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_cont_item_hist` ( + `CONT_ITEM_HIST_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '컨텐츠변경이력ID', + `CONT_ID` smallint(6) DEFAULT NULL COMMENT '컨텐츠ID', + `CONT_ITEM_NM` varchar(250) DEFAULT NULL COMMENT '컨텐츠항목명', + `CONT` text DEFAULT NULL COMMENT '본문', + `LANG_ID` smallint(6) DEFAULT NULL COMMENT '언어ID', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록인ID', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일', + PRIMARY KEY (`CONT_ITEM_HIST_ID`), + KEY `IX_JCMS_CONT_ITEM_HIST` (`CONT_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='컨텐츠변경이력'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_cont_item_hist` +-- + +LOCK TABLES `jcms_cont_item_hist` WRITE; +/*!40000 ALTER TABLE `jcms_cont_item_hist` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_cont_item_hist` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_file` +-- + +DROP TABLE IF EXISTS `jcms_file`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_file` ( + `FILE_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '파일ID', + `REG_ID` bigint(20) DEFAULT NULL COMMENT '등록인ID', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일', + `UPD_ID` bigint(20) DEFAULT NULL COMMENT '수정인ID', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일', + PRIMARY KEY (`FILE_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='업로드파일'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_file` +-- + +LOCK TABLES `jcms_file` WRITE; +/*!40000 ALTER TABLE `jcms_file` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_file` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_file_item` +-- + +DROP TABLE IF EXISTS `jcms_file_item`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_file_item` ( + `ITEM_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '파일항목ID', + `FILE_NM` varchar(200) NOT NULL COMMENT '파일명', + `FILE_EXT` varchar(20) NOT NULL COMMENT '파일확장자', + `MEDIA_TP` varchar(150) NOT NULL COMMENT '파일타입', + `FILE_SIZE` bigint(20) NOT NULL COMMENT '파일사이즈', + `SAVE_PATH` varchar(500) NOT NULL COMMENT '파일위치', + `SAVE_FILE_NM` varchar(200) NOT NULL COMMENT '물리파일명', + `DWN_CNT` decimal(20,0) NOT NULL COMMENT '다운횟수', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록인ID', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일', + PRIMARY KEY (`ITEM_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='업로드파일항목'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_file_item` +-- + +LOCK TABLES `jcms_file_item` WRITE; +/*!40000 ALTER TABLE `jcms_file_item` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_file_item` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_lang` +-- + +DROP TABLE IF EXISTS `jcms_lang`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_lang` ( + `LANG_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '언어 아이디', + `LANG_TP` varchar(20) NOT NULL COMMENT '언어명', + `BASIC_YN` char(1) DEFAULT NULL COMMENT '기본여부', + `DISP_NM` varchar(50) NOT NULL COMMENT '표시명', + `REG_ID` bigint(20) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` bigint(20) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` bigint(20) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) NOT NULL COMMENT '사용여부', + PRIMARY KEY (`LANG_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='언어정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_lang` +-- + +LOCK TABLES `jcms_lang` WRITE; +/*!40000 ALTER TABLE `jcms_lang` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_lang` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_login_log` +-- + +DROP TABLE IF EXISTS `jcms_login_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_login_log` ( + `LOGIN_LOG_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '로그인이력ID', + `USER_ID` int(11) NOT NULL COMMENT '사용자ID', + `LOGIN_IP` varchar(100) NOT NULL COMMENT '로그인IP', + `LOGIN_DT` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '로그인일자', + `LOGOUT_DT` timestamp NULL DEFAULT NULL COMMENT '로그아웃일자', + PRIMARY KEY (`LOGIN_LOG_ID`), + KEY `IX_JCMS_LOGIN_LOG` (`USER_ID`), + CONSTRAINT `FK_jcms_user_TO_jcms_login_log` FOREIGN KEY (`USER_ID`) REFERENCES `jcms_user` (`USER_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=3139 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='사용자로그인이력'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_login_log` +-- + +LOCK TABLES `jcms_login_log` WRITE; +/*!40000 ALTER TABLE `jcms_login_log` DISABLE KEYS */; +INSERT INTO `jcms_login_log` VALUES (3138,1,'0:0:0:0:0:0:0:1','2025-09-30 07:21:03',NULL); +/*!40000 ALTER TABLE `jcms_login_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_menu` +-- + +DROP TABLE IF EXISTS `jcms_menu`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_menu` ( + `MENU_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '메뉴 아이디', + `SITE_ID` smallint(6) DEFAULT NULL COMMENT '사이트ID', + `MENU_NM` varchar(50) NOT NULL COMMENT '메뉴명', + `UPPER_MENU_ID` smallint(6) DEFAULT NULL COMMENT '메뉴 URL', + `MENU_URL` varchar(200) NOT NULL COMMENT '메뉴URL', + `MENU_DESC` varchar(500) DEFAULT NULL COMMENT '메뉴 설명', + `MENU_ORD` int(11) DEFAULT NULL COMMENT '메뉴 순서', + `MENU_TP` varchar(20) DEFAULT NULL COMMENT '메뉴 종류', + `LINK_URL` varchar(200) DEFAULT NULL COMMENT '링크 URL', + `LINK_TP` varchar(20) DEFAULT NULL COMMENT '링크 종류', + `CONT_DISP_TP` varchar(20) DEFAULT NULL COMMENT '콘텐츠 표시방법', + `BOD_ID` varchar(20) DEFAULT NULL COMMENT '일정/강좌 선택', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`MENU_ID`), + KEY `IDX_MENU_SITE_ID` (`SITE_ID`,`UPPER_MENU_ID`,`MENU_ORD`), + KEY `JCMS_BOD_TOJ_MENU` (`BOD_ID`), + CONSTRAINT `JCMS_BOD_TOJ_MENU` FOREIGN KEY (`BOD_ID`) REFERENCES `jcms_bod` (`BOD_ID`), + CONSTRAINT `JCMS_SITE_TOJ_MENU` FOREIGN KEY (`SITE_ID`) REFERENCES `jcms_site` (`SITE_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1227 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='사이트메뉴'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_menu` +-- + +LOCK TABLES `jcms_menu` WRITE; +/*!40000 ALTER TABLE `jcms_menu` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_menu` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_menu_con_hist` +-- + +DROP TABLE IF EXISTS `jcms_menu_con_hist`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_menu_con_hist` ( + `MENU_CONN_HIST_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '메뉴 접속 이력 아이디', + `MENU_ID` smallint(6) NOT NULL COMMENT '메뉴 아이디', + `MENU_CONN_IP` varchar(100) NOT NULL COMMENT '아이피', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '등록일시', + PRIMARY KEY (`MENU_CONN_HIST_ID`), + KEY `JCMS_MENU_CON_HIST_FK1` (`MENU_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1383 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='메뉴접속이력'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_menu_con_hist` +-- + +LOCK TABLES `jcms_menu_con_hist` WRITE; +/*!40000 ALTER TABLE `jcms_menu_con_hist` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_menu_con_hist` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_menu_cont` +-- + +DROP TABLE IF EXISTS `jcms_menu_cont`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_menu_cont` ( + `CONT_ID` smallint(6) NOT NULL COMMENT '컨텐츠ID', + `MENU_ID` smallint(6) NOT NULL COMMENT '메뉴ID', + PRIMARY KEY (`CONT_ID`,`MENU_ID`), + KEY `JCMS_CONT_TOJ_MENU_CONT` (`CONT_ID`), + KEY `JCMS_MENU_CONT_FK1` (`MENU_ID`), + CONSTRAINT `JCMS_CONT_TOJ_MENU_CONT` FOREIGN KEY (`CONT_ID`) REFERENCES `jcms_cont` (`CONT_ID`), + CONSTRAINT `JCMS_MENU_TOJ_MENU_CONT` FOREIGN KEY (`MENU_ID`) REFERENCES `jcms_menu` (`MENU_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='메뉴별컨텐츠'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_menu_cont` +-- + +LOCK TABLES `jcms_menu_cont` WRITE; +/*!40000 ALTER TABLE `jcms_menu_cont` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_menu_cont` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_menu_popup` +-- + +DROP TABLE IF EXISTS `jcms_menu_popup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_menu_popup` ( + `MENU_ID` smallint(6) NOT NULL COMMENT '메뉴ID', + `POPUP_ID` smallint(6) NOT NULL COMMENT '팝업 아이디', + PRIMARY KEY (`MENU_ID`,`POPUP_ID`), + KEY `JCMS_POPUP_TOJ_MENU_POPUP` (`POPUP_ID`), + CONSTRAINT `JCMS_MENU_TOJ_MENU_POPUP` FOREIGN KEY (`MENU_ID`) REFERENCES `jcms_menu` (`MENU_ID`), + CONSTRAINT `JCMS_POPUP_TOJ_MENU_POPUP` FOREIGN KEY (`POPUP_ID`) REFERENCES `jcms_popup` (`POPUP_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='메뉴별팝업'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_menu_popup` +-- + +LOCK TABLES `jcms_menu_popup` WRITE; +/*!40000 ALTER TABLE `jcms_menu_popup` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_menu_popup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_mngr_menu` +-- + +DROP TABLE IF EXISTS `jcms_mngr_menu`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_mngr_menu` ( + `MENU_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '메뉴ID', + `MENU_NM` varchar(50) NOT NULL COMMENT '메뉴명', + `UPPER_MENU_ID` smallint(6) DEFAULT NULL COMMENT '상위메뉴ID', + `MENU_DESC` varchar(500) DEFAULT NULL COMMENT '메뉴설명', + `MENU_ORD` int(11) DEFAULT NULL COMMENT '메뉴순서', + `PGM_ID` smallint(6) DEFAULT NULL COMMENT '프로그램ID', + `PARAM_VAL` varchar(100) DEFAULT NULL, + `ICON` varchar(50) DEFAULT NULL COMMENT '아이콘', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`MENU_ID`), + KEY `JCMS_MNGR_MENU_FK1` (`UPPER_MENU_ID`,`MENU_ORD`), + KEY `JCMS_PGM_TOJ_MNGR_MENU` (`PGM_ID`), + CONSTRAINT `JCMS_PGM_TOJ_MNGR_MENU` FOREIGN KEY (`PGM_ID`) REFERENCES `jcms_pgm` (`PGM_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1008 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CMS메뉴'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_mngr_menu` +-- + +LOCK TABLES `jcms_mngr_menu` WRITE; +/*!40000 ALTER TABLE `jcms_mngr_menu` DISABLE KEYS */; +INSERT INTO `jcms_mngr_menu` VALUES (1,'시스템 관리',NULL,NULL,4,25,NULL,'gear-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(2,'시스템 프로그램 관리',1,NULL,0,25,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(3,'시스템 메뉴 관리',1,NULL,1,26,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(4,'코드 관리',1,NULL,2,27,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(6,'권한 관리',1,NULL,3,2,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(8,'사용자 관리',NULL,NULL,0,1,NULL,'person-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(9,'회원 관리',8,'회원 관리',0,1,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(10,'로그인 이력',8,NULL,1,4,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(11,'사용이력',8,NULL,2,5,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(12,'탈퇴회원 조회',8,NULL,3,6,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-07 06:31:59',1,'2024-05-09 05:27:26','D'),(13,'CMS 관리',NULL,NULL,2,8,NULL,'bank2',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(15,'공개 사이트 관리',13,'일반 사용자 사이트를 관리한다.',0,8,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(17,'메뉴 관리',13,NULL,1,10,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(19,'콘텐츠 관리',13,NULL,2,12,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(21,'배너 관리',13,NULL,5,14,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',NULL,NULL,1,'2024-03-13 01:24:55','D'),(22,'게시판 관리',NULL,'',1,17,NULL,'window-stack',1,'2024-05-07 07:26:18',1,'2024-05-17 08:45:51',1,'2024-05-07 07:26:39','Y'),(23,'게시판 관리',22,'',0,17,NULL,'caret-right-fill ',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(24,'게시물 관리',22,NULL,1,18,NULL,'caret-right-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(25,'통계',NULL,NULL,3,23,NULL,'bar-chart-fill',1,'2024-02-08 02:31:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(26,'사용자 접속 통계',25,'',0,1020,'1','caret-right-fill ',1,'2024-02-08 02:31:34',1,'2025-02-08 15:07:52',NULL,NULL,'Y'),(27,'메뉴별 접속 통계',25,'',1,1020,'2','caret-right-fill ',1,'2024-02-08 02:31:34',1,'2025-02-08 15:08:28',NULL,NULL,'Y'),(1002,'배너관리',13,'',3,14,NULL,'caret-right-fill',1,'2024-03-13 06:31:15',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(1004,'개발자도구',NULL,'',5,1018,NULL,'wrench-adjustable',1,'2024-04-17 07:54:34',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(1005,'소스생성기',1004,'',0,1018,NULL,'caret-right-fill',1,'2024-04-17 08:01:58',1,'2024-05-17 08:45:51',NULL,NULL,'Y'),(1007,'Test',8,'',4,7,NULL,'',1,'2024-05-07 08:01:43',NULL,NULL,1,'2024-05-07 08:01:51','D'); +/*!40000 ALTER TABLE `jcms_mngr_menu` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_mngr_menu_role` +-- + +DROP TABLE IF EXISTS `jcms_mngr_menu_role`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_mngr_menu_role` ( + `MENU_ID` smallint(6) NOT NULL COMMENT '메뉴ID', + `ROLE_AUTH` varchar(50) NOT NULL COMMENT '권한정책', + `ROLE_WRITE` bit(1) DEFAULT NULL COMMENT '쓰기', + `ROLE_MODIFY` bit(1) DEFAULT NULL COMMENT '수정', + `ROLE_DEL` bit(1) DEFAULT NULL COMMENT '삭제', + PRIMARY KEY (`MENU_ID`,`ROLE_AUTH`), + KEY `JCMS_MNGR_MENU_ROLE_FK1` (`MENU_ID`), + CONSTRAINT `JCMS_MMENU_TOJ_MMENU_ROLE` FOREIGN KEY (`MENU_ID`) REFERENCES `jcms_mngr_menu` (`MENU_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CMS메뉴정책'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_mngr_menu_role` +-- + +LOCK TABLES `jcms_mngr_menu_role` WRITE; +/*!40000 ALTER TABLE `jcms_mngr_menu_role` DISABLE KEYS */; +INSERT INTO `jcms_mngr_menu_role` VALUES (1,'ROLE_ADMIN','\0','\0','\0'),(1,'ROLE_MANAGER','\0','\0','\0'),(1,'ROLE_USER','\0','\0','\0'),(2,'ROLE_ADMIN','','',''),(3,'ROLE_ADMIN','','',''),(4,'ROLE_ADMIN','','',''),(4,'ROLE_MANAGER','','',''),(4,'ROLE_USER','\0','\0','\0'),(6,'ROLE_ADMIN','','',''),(8,'ROLE_ADMIN','\0','\0','\0'),(8,'ROLE_MANAGER','\0','\0','\0'),(8,'ROLE_USER','\0','\0','\0'),(9,'ROLE_ADMIN','','',''),(9,'ROLE_MANAGER','','',''),(9,'ROLE_USER','\0','\0','\0'),(10,'ROLE_ADMIN','','',''),(10,'ROLE_MANAGER','\0','\0','\0'),(10,'ROLE_USER','','',''),(11,'ROLE_ADMIN','','',''),(11,'ROLE_MANAGER','\0','\0','\0'),(11,'ROLE_USER','','',''),(13,'ROLE_ADMIN','\0','\0','\0'),(13,'ROLE_MANAGER','\0','\0','\0'),(15,'ROLE_ADMIN','','','\0'),(15,'ROLE_MANAGER','','',''),(17,'ROLE_MANAGER','','',''),(19,'ROLE_MANAGER','','\0',''),(22,'ROLE_ADMIN','\0','\0','\0'),(22,'ROLE_MANAGER','\0','\0','\0'),(22,'ROLE_USER','\0','\0','\0'),(23,'ROLE_ADMIN','','',''),(23,'ROLE_MANAGER','','',''),(24,'ROLE_ADMIN','','',''),(24,'ROLE_USER','','',''),(25,'ROLE_ADMIN','\0','\0','\0'),(25,'ROLE_MANAGER','\0','\0','\0'),(26,'ROLE_ADMIN','','\0','\0'),(26,'ROLE_MANAGER','\0','\0','\0'),(27,'ROLE_ADMIN','','\0','\0'),(27,'ROLE_MANAGER','\0','\0','\0'),(1002,'ROLE_MANAGER','','',''),(1004,'ROLE_ADMIN','\0','\0','\0'),(1004,'ROLE_USER','\0','\0','\0'),(1005,'ROLE_ADMIN','','','\0'),(1005,'ROLE_USER','','',''); +/*!40000 ALTER TABLE `jcms_mngr_menu_role` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_pgm` +-- + +DROP TABLE IF EXISTS `jcms_pgm`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_pgm` ( + `PGM_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '프로그램ID', + `PGM_NM` varchar(50) NOT NULL COMMENT '프로그램명', + `PGM_DESC` varchar(500) DEFAULT NULL COMMENT '프로그램설명', + `PGM_URL` varchar(200) DEFAULT NULL COMMENT '프로그램URL', + `PGM_PARAM` varchar(100) DEFAULT NULL COMMENT '파라미터', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`PGM_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1021 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CMS프로그램'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_pgm` +-- + +LOCK TABLES `jcms_pgm` WRITE; +/*!40000 ALTER TABLE `jcms_pgm` DISABLE KEYS */; +INSERT INTO `jcms_pgm` VALUES (1,'회원관리','시스템 사용자 관리','/system/user/list',NULL,1,'2024-02-08 02:21:23',1,'2024-03-27 06:08:58',NULL,NULL,'Y'),(2,'권한 관리',NULL,'/system/role/list',NULL,1,'2024-02-08 02:21:23',NULL,NULL,NULL,NULL,'Y'),(4,'로그인 이력',NULL,'/system/scur/loginLogList',NULL,1,'2024-02-08 02:21:23',NULL,NULL,NULL,NULL,'Y'),(5,'사용 이력',NULL,'/system/webLog/list',NULL,1,'2024-02-08 02:21:23',NULL,NULL,NULL,NULL,'Y'),(6,'탈퇴 회원 조회',NULL,'/system/userOut/list',NULL,1,'2024-02-08 02:21:23',NULL,NULL,NULL,NULL,'Y'),(7,'다국어 관리',NULL,'/system/lang/list',NULL,1,'2024-02-08 02:21:23',NULL,NULL,NULL,NULL,'Y'),(8,'사이트 관리',NULL,'/system/site/list',NULL,1,'2024-02-08 02:21:23',NULL,NULL,NULL,NULL,'Y'),(9,'프로그램 관리',NULL,'/system/cmsPgm/list',NULL,1,'2024-02-08 02:21:23',NULL,NULL,NULL,NULL,'Y'),(10,'메뉴 관리',NULL,'/system/cmsMenu/list',NULL,1,'2024-02-08 02:21:23',NULL,NULL,NULL,NULL,'Y'),(12,'콘텐츠 관리','웹 콘텐츠 관리','/system/cont/list',NULL,1,'2024-02-08 02:21:23',1,'2024-03-05 17:43:50',NULL,NULL,'Y'),(13,'팝업 관리',NULL,'/system/popup/list',NULL,1,'2024-02-08 02:21:23',NULL,NULL,1,'2024-03-05 17:48:46','D'),(14,'배너 관리','배너 관리 서비스','/system/banner/list',NULL,1,'2024-02-08 02:21:23',1,'2024-03-06 09:00:25',NULL,NULL,'Y'),(17,'게시판 관리',NULL,'/system/bod/list',NULL,1,'2024-02-08 02:21:23',NULL,NULL,NULL,NULL,'Y'),(18,'게시물 관리',NULL,'/system/bodArti/list',NULL,1,'2024-02-08 02:21:23',NULL,NULL,NULL,NULL,'Y'),(23,'사용자 접속 통계','','/system/siteStats/list',NULL,1,'2024-02-08 02:21:23',1,'2024-04-16 05:01:54',NULL,NULL,'Y'),(24,'메뉴별 접속 통계','','/system/menuStats/list',NULL,1,'2024-04-15 07:41:46',1,'2024-04-17 01:02:32',NULL,NULL,'Y'),(25,'시스템 프로그램 관리','','/system/pgm/list',NULL,1,'2024-02-08 02:21:23',1,'2024-05-13 06:33:46',NULL,NULL,'Y'),(26,'시스템 메뉴 관리','시스템메뉴 관리 서비스','/system/menu/list',NULL,1,'2024-02-08 02:21:23',1,'2024-05-13 08:14:56',NULL,NULL,'Y'),(27,'코드 관리','시스템코드 관리','/system/cd/mng',NULL,1,'2024-02-08 02:21:23',1,'2024-04-17 06:42:10',NULL,NULL,'Y'),(1018,'개발자도구','개발자도구','/system/devUtil/sourceGenerate',NULL,1,'2024-04-17 07:39:24',NULL,NULL,NULL,NULL,'Y'),(1020,'작업중','작업 알림 페이지','/system/working','workId',1,'2025-02-08 15:07:18',NULL,NULL,NULL,NULL,'Y'); +/*!40000 ALTER TABLE `jcms_pgm` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_popup` +-- + +DROP TABLE IF EXISTS `jcms_popup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_popup` ( + `POPUP_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '팝업 아이디', + `POPUP_NM` smallint(6) NOT NULL COMMENT '사이트ID', + `POPUP_TP` varchar(20) NOT NULL COMMENT '일정타입명', + `FILE_ID` int(11) DEFAULT NULL COMMENT '파일ID', + `IMG_MAP` varchar(4000) DEFAULT NULL COMMENT '이미지맵', + `ALT` varchar(2000) DEFAULT NULL COMMENT '일정카테고리', + `LINK_URL` varchar(2000) DEFAULT NULL COMMENT '일정내용', + `LINK_TP` varchar(20) DEFAULT NULL COMMENT '링크종류', + `START_DT` timestamp NULL DEFAULT NULL COMMENT '시작일', + `END_DT` timestamp NULL DEFAULT NULL COMMENT '종료일', + `WIDTH` decimal(10,0) DEFAULT NULL COMMENT '이미지넓이', + `HEIGHT` decimal(10,0) DEFAULT NULL COMMENT '이미지높이', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`POPUP_ID`), + KEY `JCMS_POPUP_FK1` (`FILE_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='팝업'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_popup` +-- + +LOCK TABLES `jcms_popup` WRITE; +/*!40000 ALTER TABLE `jcms_popup` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_popup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_role` +-- + +DROP TABLE IF EXISTS `jcms_role`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_role` ( + `ROLE_AUTH` varchar(50) NOT NULL COMMENT '정책', + `ROLE_NM` varchar(50) NOT NULL COMMENT '정책명', + `ROLE_DESC` varchar(500) DEFAULT NULL COMMENT '정책설명', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`ROLE_AUTH`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='권한설정'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_role` +-- + +LOCK TABLES `jcms_role` WRITE; +/*!40000 ALTER TABLE `jcms_role` DISABLE KEYS */; +INSERT INTO `jcms_role` VALUES ('ROLE_ADMIN','시스템관리자','시스템관리자(개발업체)',1,'2024-02-08 01:39:47',NULL,NULL,NULL,NULL,'Y'),('ROLE_MANAGER','최고관리자','업무관리자(운영자)',1,'2024-02-08 01:39:47',NULL,NULL,NULL,NULL,'Y'),('ROLE_USER','정회원','정회원',1,'2024-02-08 01:39:47',1,'2024-07-01 01:45:42',NULL,NULL,'Y'); +/*!40000 ALTER TABLE `jcms_role` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_role_hrcy` +-- + +DROP TABLE IF EXISTS `jcms_role_hrcy`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_role_hrcy` ( + `PARENT_ROLE` varchar(50) NOT NULL COMMENT '부모보안정책', + `CHILD_ROLE` varchar(50) NOT NULL COMMENT '자식보안정책', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록인ID', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일', + PRIMARY KEY (`PARENT_ROLE`,`CHILD_ROLE`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='권한계증'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_role_hrcy` +-- + +LOCK TABLES `jcms_role_hrcy` WRITE; +/*!40000 ALTER TABLE `jcms_role_hrcy` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_role_hrcy` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_satisfaction` +-- + +DROP TABLE IF EXISTS `jcms_satisfaction`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_satisfaction` ( + `SITE_ID` smallint(6) NOT NULL COMMENT '사이트ID', + `MENU_ID` smallint(6) NOT NULL COMMENT '메뉴ID', + `SCORE` decimal(2,0) NOT NULL COMMENT '점수', + `OPINION` varchar(500) DEFAULT NULL COMMENT '의견', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록인ID', + `REG_NM` varchar(30) DEFAULT NULL COMMENT '등록인명', + `REG_DT` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '등록일', + `REG_IP` varchar(100) NOT NULL COMMENT '등록IP', + PRIMARY KEY (`SITE_ID`,`MENU_ID`), + KEY `JCMS_SATISFACTION_INDEX1` (`SITE_ID`,`MENU_ID`,`REG_DT`,`REG_IP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='사용자메뉴평가'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_satisfaction` +-- + +LOCK TABLES `jcms_satisfaction` WRITE; +/*!40000 ALTER TABLE `jcms_satisfaction` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_satisfaction` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_scur_rsc` +-- + +DROP TABLE IF EXISTS `jcms_scur_rsc`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_scur_rsc` ( + `RSC_ID` varchar(50) NOT NULL COMMENT '보안ID', + `RSC_NM` varchar(50) DEFAULT NULL COMMENT '보안명', + `RSC_TP` varchar(20) NOT NULL COMMENT '보안유형', + `RSC_PATN` varchar(250) NOT NULL COMMENT '보안형식', + `RSC_DESC` varchar(2000) DEFAULT NULL COMMENT '보안설명', + `SORT_ORD` int(11) DEFAULT NULL COMMENT '순서', + `REG_ID` bigint(20) DEFAULT NULL COMMENT '등록인ID', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일', + `UPD_ID` bigint(20) DEFAULT NULL COMMENT '수정인ID', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일', + PRIMARY KEY (`RSC_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='보안설정'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_scur_rsc` +-- + +LOCK TABLES `jcms_scur_rsc` WRITE; +/*!40000 ALTER TABLE `jcms_scur_rsc` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_scur_rsc` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_scur_rsc_role` +-- + +DROP TABLE IF EXISTS `jcms_scur_rsc_role`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_scur_rsc_role` ( + `RSC_ID` varchar(50) NOT NULL COMMENT '보안ID', + `ROLE_AUTH` varchar(50) NOT NULL COMMENT '정책', + `REG_ID` bigint(20) DEFAULT NULL COMMENT '등록인ID', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일', + PRIMARY KEY (`RSC_ID`,`ROLE_AUTH`), + KEY `FKJ_ROLE_TOJ_SCUR_RSC_ROLE` (`ROLE_AUTH`), + CONSTRAINT `FKJ_ROLE_TOJ_SCUR_RSC_ROLE` FOREIGN KEY (`ROLE_AUTH`) REFERENCES `jcms_role` (`ROLE_AUTH`), + CONSTRAINT `FKJ_SCURRSC_TOJ_SCURRSC_ROLE` FOREIGN KEY (`RSC_ID`) REFERENCES `jcms_scur_rsc` (`RSC_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='권한정책'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_scur_rsc_role` +-- + +LOCK TABLES `jcms_scur_rsc_role` WRITE; +/*!40000 ALTER TABLE `jcms_scur_rsc_role` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_scur_rsc_role` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_site` +-- + +DROP TABLE IF EXISTS `jcms_site`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_site` ( + `SITE_ID` smallint(6) NOT NULL AUTO_INCREMENT COMMENT '사이트 아이디', + `LANG_ID` smallint(6) NOT NULL COMMENT '언어 아이디', + `SITE_NM` varchar(50) NOT NULL COMMENT '사이트명', + `DOMAIN` varchar(100) NOT NULL COMMENT '도메인', + `START_URL` varchar(200) DEFAULT NULL COMMENT '시작 URL', + `COPYRIGHT` varchar(2000) DEFAULT NULL COMMENT '카피라이트', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`SITE_ID`), + KEY `JCMS_SITE_FK1` (`LANG_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='사이트정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_site` +-- + +LOCK TABLES `jcms_site` WRITE; +/*!40000 ALTER TABLE `jcms_site` DISABLE KEYS */; +/*!40000 ALTER TABLE `jcms_site` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_user` +-- + +DROP TABLE IF EXISTS `jcms_user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_user` ( + `USER_ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '유저ID', + `USER_LOGIN_ID` varchar(200) NOT NULL COMMENT '로그인ID', + `USER_PWD` varchar(200) NOT NULL COMMENT '비밀번호', + `USER_NM` varchar(30) DEFAULT NULL COMMENT '사용자명', + `BIRTH` varchar(10) DEFAULT NULL COMMENT '생년월일', + `gender` varchar(255) DEFAULT NULL, + `PHONE` varchar(30) DEFAULT NULL COMMENT '휴대폰', + `EMAIL` varchar(250) DEFAULT NULL COMMENT '이메일', + `USER_DI` varchar(200) DEFAULT NULL COMMENT '사용자DI', + `AREA_CODE` varchar(20) DEFAULT NULL COMMENT '지역코드', + `POST_CODE` varchar(20) DEFAULT NULL COMMENT '우편번호', + `ADDR_M` varchar(255) DEFAULT NULL COMMENT '주소', + `ADDR_D` varchar(255) DEFAULT NULL COMMENT '상세주소', + `FAIL_CNT` int(11) DEFAULT NULL COMMENT '비번오류횟수', + `LAST_DT` timestamp NULL DEFAULT NULL COMMENT '최종로그인일시', + `USER_ST_CD` varchar(10) NOT NULL COMMENT '사용자상태', + `REG_ID` int(11) DEFAULT NULL COMMENT '등록자', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일시', + `UPD_ID` int(11) DEFAULT NULL COMMENT '수정자', + `UPD_DT` timestamp NULL DEFAULT NULL COMMENT '수정일시', + `DEL_ID` int(11) DEFAULT NULL COMMENT '삭제자', + `DEL_DT` timestamp NULL DEFAULT NULL COMMENT '삭제일시', + `REC_ST` char(1) DEFAULT NULL COMMENT '레코드상태', + PRIMARY KEY (`USER_ID`), + UNIQUE KEY `UIX_JCMS_USER` (`USER_LOGIN_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='로그인유저정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_user` +-- + +LOCK TABLES `jcms_user` WRITE; +/*!40000 ALTER TABLE `jcms_user` DISABLE KEYS */; +INSERT INTO `jcms_user` VALUES (1,'system','$2a$10$W4EiGmYBmS8/XxNdmJF2luyhNl247d9neI727VFxYAedWa.fdINP2','시스템관리자',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2025-09-30 07:21:03','1',1,'2024-02-08 10:35:58',1,'2025-09-30 07:21:03',NULL,NULL,'Y'),(1007,'freemy','$2a$10$A.c.A.x6944v5.jk4dFOfOl3Ddk4xFjuHkfGi3ApVyEV6z2T7aEaS','하상욱',NULL,NULL,'01071824667','freemy72@gmail.com',NULL,NULL,NULL,NULL,NULL,0,'2025-09-17 02:23:03','1',2,'2024-06-13 01:31:33',1007,'2025-09-17 02:23:03',NULL,NULL,'Y'),(1011,'practice','sw8REE/920z6+QCiVHRouA==,jcms1234','practice',NULL,NULL,'01000000000','practice@gmail.com',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'1',2,'2024-06-19 07:10:52',NULL,NULL,NULL,NULL,'Y'),(1012,'practice3','$2a$10$0Oo7manADOffKO.vu/QOOufKmET4QCyXyDuLekVQH/tDjX/1nK.4e','practice3',NULL,NULL,'01000000000','practice3@gmail.com',NULL,NULL,NULL,NULL,NULL,0,'2024-06-20 06:33:20','1',2,'2024-06-19 07:23:22',1,'2025-01-23 08:50:48',NULL,NULL,'Y'),(1013,'practice4','$2a$10$YMNgfY6IUoSGtljIY4lx4eK/nnrNINYFFWXgRWq7DtmOhbnMXU7YK','practice4',NULL,NULL,'01000000000','practice4@gmail.com',NULL,NULL,NULL,NULL,NULL,0,'2024-06-20 06:50:25','1',2,'2024-06-20 06:50:02',1013,'2024-06-20 06:50:27',NULL,NULL,'Y'),(1014,'teerjwi21','$2a$10$Bxmdw3H8NcQrxEys9d7Oyu/C7JDl7sU/seCdGkzIT5zsob5CtuAH6','임태준',NULL,NULL,'01050541386','teerjwi21@gmail.com',NULL,NULL,NULL,NULL,NULL,0,'2024-07-17 05:25:13','1',2,'2024-07-03 01:51:40',1,'2025-01-23 08:50:38',NULL,NULL,'Y'),(1015,'practice1','$2a$10$SzIVisBZuHJ9qaPXOqE0kuZ8cY0ZNLvN3eePApZsOZ1M9cqwgvjrS','practice1',NULL,NULL,'01000000000','practice1@gmail.com',NULL,NULL,NULL,NULL,NULL,0,'2024-07-04 06:43:58','1',2,'2024-07-04 06:43:45',1015,'2024-07-04 06:43:58',NULL,NULL,'Y'),(1016,'admin','$2a$10$V0qALOrPr0kUldW94x0Ye.5vuSET.12MzJVt31Ozmhvw.JtODH8Je','관리자',NULL,NULL,'01012341234','admin@test.com',NULL,NULL,NULL,NULL,NULL,0,'2025-08-11 23:53:54','1',2,'2025-07-24 05:45:33',1016,'2025-08-11 23:53:54',NULL,NULL,'Y'),(1017,'tester','$2a$10$yolWQ8VBD20m1IUjVB.XX.hcmDZ2bT8fqGCXa/1bku.qWG8BHWT46','테스터',NULL,NULL,'01011112222','tester@test.com',NULL,NULL,NULL,NULL,NULL,0,'2025-08-04 23:57:15','1',2,'2025-08-04 07:07:08',1017,'2025-08-04 23:57:15',NULL,NULL,'Y'); +/*!40000 ALTER TABLE `jcms_user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_user_role` +-- + +DROP TABLE IF EXISTS `jcms_user_role`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_user_role` ( + `USER_ID` int(11) NOT NULL COMMENT '유저ID', + `ROLE_AUTH` varchar(50) NOT NULL COMMENT '정책', + PRIMARY KEY (`USER_ID`,`ROLE_AUTH`), + KEY `FK_JCMS_USER_TO_JCMS_USER_ROLE` (`USER_ID`), + KEY `JCMS_ROLE_TOJ_USER_ROLE` (`ROLE_AUTH`), + CONSTRAINT `FK_JCMS_USER_TO_JCMS_USER_ROLE` FOREIGN KEY (`USER_ID`) REFERENCES `jcms_user` (`USER_ID`), + CONSTRAINT `JCMS_ROLE_TOJ_USER_ROLE` FOREIGN KEY (`ROLE_AUTH`) REFERENCES `jcms_role` (`ROLE_AUTH`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='사용자권한'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_user_role` +-- + +LOCK TABLES `jcms_user_role` WRITE; +/*!40000 ALTER TABLE `jcms_user_role` DISABLE KEYS */; +INSERT INTO `jcms_user_role` VALUES (1,'ROLE_ADMIN'),(1007,'ROLE_MANAGER'),(1011,'ROLE_USER'),(1012,'ROLE_USER'),(1013,'ROLE_USER'),(1014,'ROLE_USER'),(1015,'ROLE_USER'),(1016,'ROLE_MANAGER'),(1017,'ROLE_USER'); +/*!40000 ALTER TABLE `jcms_user_role` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `jcms_web_log` +-- + +DROP TABLE IF EXISTS `jcms_web_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `jcms_web_log` ( + `WEB_LOG_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '웹사용이력ID', + `LOGIN_LOG_ID` bigint(20) DEFAULT NULL COMMENT '로그인이력ID', + `REQ_TP` varchar(10) DEFAULT NULL COMMENT '사용형태', + `REQ_URL` varchar(200) NOT NULL COMMENT '사용URL', + `PGM_ID` smallint(6) DEFAULT NULL COMMENT '프로그램ID', + `REQ_MTHD` varchar(50) DEFAULT NULL COMMENT '사용메소드', + `REQ_PARAM` varchar(1000) DEFAULT NULL COMMENT '사용파라미터', + `REQ_IP` varchar(100) DEFAULT NULL COMMENT '사용IP', + `REG_DT` timestamp NULL DEFAULT NULL COMMENT '등록일', + PRIMARY KEY (`WEB_LOG_ID`), + KEY `JCMS_LOGIN_LOG_TOJ_WEB_LOG` (`LOGIN_LOG_ID`), + CONSTRAINT `JCMS_LOGIN_LOG_TOJ_WEB_LOG` FOREIGN KEY (`LOGIN_LOG_ID`) REFERENCES `jcms_login_log` (`LOGIN_LOG_ID`) +) ENGINE=InnoDB AUTO_INCREMENT=48781 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='웹사용이력'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `jcms_web_log` +-- + +LOCK TABLES `jcms_web_log` WRITE; +/*!40000 ALTER TABLE `jcms_web_log` DISABLE KEYS */; +INSERT INTO `jcms_web_log` VALUES (48761,3138,NULL,'/cms/main',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:21:03'),(48762,3138,NULL,'/cms/bod/list',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:21:06'),(48763,3138,NULL,'/cms/bodArti/list',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:21:09'),(48764,3138,NULL,'/cms/bod/list',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:21:26'),(48765,3138,NULL,'/cms/user/list',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:22:02'),(48766,3138,NULL,'/cms/scur/loginLogList',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:22:03'),(48767,3138,NULL,'/cms/webLog/list',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:22:04'),(48768,3138,NULL,'/cms/user/list',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:22:05'),(48769,3138,NULL,'/cms/user/detailUser.json',NULL,'POST','userId: 1017,\n','0:0:0:0:0:0:0:1','2025-09-30 07:22:07'),(48770,3138,NULL,'/cms/user/detailUser.json',NULL,'POST','userId: 1017,\n','0:0:0:0:0:0:0:1','2025-09-30 07:22:11'),(48771,3138,NULL,'/cms/user/detailUser.json',NULL,'POST','userId: 1011,\n','0:0:0:0:0:0:0:1','2025-09-30 07:22:21'),(48772,3138,NULL,'/cms/scur/loginLogList',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:22:25'),(48773,3138,NULL,'/cms/scur/view.json',NULL,'POST','loginLogId: 3138,\n','0:0:0:0:0:0:0:1','2025-09-30 07:22:27'),(48774,3138,NULL,'/cms/scur/selectWebLog.json',NULL,'POST','webLogId: 48765,\n','0:0:0:0:0:0:0:1','2025-09-30 07:22:30'),(48775,3138,NULL,'/cms/webLog/list',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:22:33'),(48776,3138,NULL,'/cms/scur/loginLogList',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:22:58'),(48777,3138,NULL,'/cms/webLog/list',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:23:03'),(48778,3138,NULL,'/cms/webLog/list',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:23:12'),(48779,3138,NULL,'/cms/bodArti/list',NULL,'GET',NULL,'0:0:0:0:0:0:0:1','2025-09-30 07:23:32'),(48780,3138,NULL,'/cms/bodArti/view.json',NULL,'POST','artiId: 1002,\n','0:0:0:0:0:0:0:1','2025-09-30 07:23:43'); +/*!40000 ALTER TABLE `jcms_web_log` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2025-09-30 16:28:23 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..c38921e --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'JCMS_VPP' diff --git a/src/main/java/net/jwsi/jcms_vpp/JcmsVppApplication.java b/src/main/java/net/jwsi/jcms_vpp/JcmsVppApplication.java new file mode 100644 index 0000000..0c22343 --- /dev/null +++ b/src/main/java/net/jwsi/jcms_vpp/JcmsVppApplication.java @@ -0,0 +1,13 @@ +package net.jwsi.jcms_vpp; + +import net.jwsi.jcms.JcmsCmsApp; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Import; +@Import({JcmsCmsApp.class}) +@SpringBootApplication +public class JcmsVppApplication { + public static void main(String[] args) { + SpringApplication.run(JcmsVppApplication.class, args); + } +} \ No newline at end of file diff --git a/src/main/java/net/jwsi/jcms_vpp/MainController.java b/src/main/java/net/jwsi/jcms_vpp/MainController.java new file mode 100644 index 0000000..6271610 --- /dev/null +++ b/src/main/java/net/jwsi/jcms_vpp/MainController.java @@ -0,0 +1,36 @@ +package net.jwsi.jcms_vpp; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import net.jwsi.jcms.cms.board.arti.BodArti; +import net.jwsi.jcms.cms.board.arti.BodArtiService; +import net.jwsi.jcms.exception.JsonDataException; +import net.jwsi.jcms.utils.HttpUtil; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import java.util.Map; +@Slf4j +@Controller +@RequiredArgsConstructor +public class MainController { + final private String path = "system/"; + final private String root = "/"+path; + @Value("${jcms.manager-path:system}") + private String rootPath; + private final BodArtiService bodArtiService; + @GetMapping("/") + public String root() { + return "redirect:/"+rootPath+"/main"; + } + @GetMapping("/${jcms.manager-path:system}/main") + public String list() { + return path + "main"; + } + @PostMapping("/${jcms.manager-path:system}/main/bordArtList.json") + @ResponseBody + public Map listData(BodArti srch) throws JsonDataException { + return HttpUtil.responseList(bodArtiService.selectList(srch)); + } +} \ No newline at end of file diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml new file mode 100644 index 0000000..2f83d8a --- /dev/null +++ b/src/main/resources/application-dev.yml @@ -0,0 +1,53 @@ +spring: + config: + activate: + on-profile: dev + jpa: + open-in-view: true + show-sql: true + hibernate: + ddl-auto: none + format_sql: true + use_sql_comments: true + datasource: + jcms-db: + driver-class-name: org.mariadb.jdbc.Driver + jdbc-url: jdbc:mariadb://localhost:3306/jcmsdb + username: jcms + password: jcms3593 + +server: + port: 8080 + tomcat: + native: false + servlet: + session: + timeout: 600 + +jcms: + lib-minify: false + upload: + url: /util/files/ + path: /jw/jcms/upload/temp/ + system-url: /system/util/ + system-path: /jw/jcms/upload/ + file-path: /jw/jcms/upload/files/ + image-path: /jw/jcms/upload/images/ + +logging: + level: + root: info + web: debug + net.jwsi: debug + org.apache: info + org.hibernate: info + file: + path: /jw/jcms/logs + name: /jw/jcms/logs/logs.log + logback: + rollingpolicy: + file-name-pattern: /jw/jcms/logs/logs-%d{yyyy-MM-dd}.%i.log + max-file-size: 100MB + total-size-cap: 1GB + max-history: 5 + clean-history-on-start: false \ No newline at end of file diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml new file mode 100644 index 0000000..d4557eb --- /dev/null +++ b/src/main/resources/application-prod.yml @@ -0,0 +1,47 @@ +server: + port: 8080 + servlet: + session: + timeout: 600 +spring: + jpa: + open-in-view: false + datasource: + jcms-db: + driver-class-name: org.mariadb.jdbc.Driver + jdbc-url: jdbc:mariadb://localhost:33068/jcms + username: jcms + password: ENC(nqt7VLhtxqwiJcQQw9ncNg==) + jpa: + entity-packages: net.jwsi.jcms + show-sql: false + hibernate: + ddl-auto: none + format_sql: false + use_sql_comments: false +jcms: + lib-minify: true # css, js 파일 압축 여부 + upload: + url: /util/files/ + path: /jw/jcms/upload/temp/ + system-url: /system/util/ + system-path: /jw/jcms/upload/ + file-path: /jw/jcms/upload/files/ + image-path: /jw/jcms/upload/images/ +logging: + level: + root: warn + web: warn + net.jwsi: info + org.apache: warn # 변경시 오류 유발 + org.hibernate: warn # 변경시 오류 유발 + file: + path: /jw/logs + name: /jw/logs/logs.log + logback: + rollingpolicy: + file-name-pattern: /jw/logs/logs-%d{yyyy-MM-dd}.%i.log + max-file-size: 100MB + total-size-cap: 1GB + max-history: 30 + clean-history-on-start: false \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..f9de8e6 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,38 @@ +spring: + profiles: + active: prod + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB + +jwt: + # 50? ?? ??? : https://1password.com/ko/password-generator/ + secret-key: JQgRklFZ9cD0fhg7hQsz6FU815gvqrye9ztvQUpgVdQNr6mcVKG7sKQQi2P + +jasypt: + encryptor: + bean: jasyptEncryptor + +jcms: + permitted-pattern: /, /util/** , /error/**, /login/**, /public/** + manager-path: cms + attr: + main-url: /cms/main + new-user-st: 9 # 1: ??, 9:???? + cms-name: VPP + cms-title: VPP + cms-bg-color: '#499' + cms-image-url: /public/images/logo_jcms3.png + copyright: Copyright 2026 ??????????? Inc. + authenticated-patten: /cms/**, /system/**, /api/** + pass-url: /cms/main + public-url: '' + remember-me: + enabled: true + days: 30 + api: + path: /api + key: + prefix: ak_ + header-name: X-API-KEY \ No newline at end of file diff --git a/src/main/resources/templates/system/main.html b/src/main/resources/templates/system/main.html new file mode 100644 index 0000000..709833e --- /dev/null +++ b/src/main/resources/templates/system/main.html @@ -0,0 +1,47 @@ + + + +
+
+
+
+
+
+
+
+ +
+
+
+

  사용자 접속자 통계

+
+ +
+
+
+
+
+
+
+
+
+
+ + + +
+ + \ No newline at end of file diff --git a/src/test/java/net/jwsi/jcms_vpp/JcmsVppApplicationTests.java b/src/test/java/net/jwsi/jcms_vpp/JcmsVppApplicationTests.java new file mode 100644 index 0000000..f2255e6 --- /dev/null +++ b/src/test/java/net/jwsi/jcms_vpp/JcmsVppApplicationTests.java @@ -0,0 +1,13 @@ +package net.jwsi.jcms_vpp; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class JcmsVppApplicationTests { + + @Test + void contextLoads() { + } + +}