|
|
|
|
@ -84,6 +84,10 @@ XIT Framework는 Spring Boot 기반의 웹 애플리케이션 프레임워크로
|
|
|
|
|
| Lombok | - | 자바 코드 생성 라이브러리 |
|
|
|
|
|
| Apache Commons Text | 1.10.0 | 텍스트 처리 유틸리티 |
|
|
|
|
|
| Apache POI | 5.3.0 | 엑셀 파일 처리 라이브러리 |
|
|
|
|
|
| Quartz | - | 배치 스케줄링 라이브러리 |
|
|
|
|
|
| jsqlparser | 4.5 | SQL 파싱 라이브러리 |
|
|
|
|
|
| Spring Mail | - | 메일 발송 라이브러리 |
|
|
|
|
|
| openhtmltopdf | 1.0.10 | HTML을 PDF로 변환하는 라이브러리 |
|
|
|
|
|
|
|
|
|
|
## 3. 프로젝트 구조
|
|
|
|
|
|
|
|
|
|
@ -114,23 +118,20 @@ xit-framework/
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
go.kr.project/
|
|
|
|
|
├── batch/ # 배치 작업 관련 기능
|
|
|
|
|
├── bbs/ # 게시판 관련 기능
|
|
|
|
|
├── common/ # 공통 컴포넌트
|
|
|
|
|
├── login/ # 로그인 관련 기능
|
|
|
|
|
│ ├── controller/ # 컨트롤러 클래스
|
|
|
|
|
│ ├── mapper/ # MyBatis 매퍼 인터페이스
|
|
|
|
|
│ ├── model/ # 데이터 모델 클래스
|
|
|
|
|
│ └── service/ # 서비스 클래스
|
|
|
|
|
└── system/ # 시스템 관리 기능
|
|
|
|
|
├── auth/ # 권한 관리
|
|
|
|
|
├── code/ # 코드 관리
|
|
|
|
|
├── group/ # 그룹 관리
|
|
|
|
|
├── menu/ # 메뉴 관리
|
|
|
|
|
├── role/ # 역할 관리
|
|
|
|
|
└── user/ # 사용자 관리
|
|
|
|
|
├── controller/ # 컨트롤러 클래스
|
|
|
|
|
├── mapper/ # MyBatis 매퍼 인터페이스
|
|
|
|
|
├── model/ # 데이터 모델 클래스
|
|
|
|
|
└── service/ # 서비스 클래스
|
|
|
|
|
├── main/ # 메인 페이지 관련 기능
|
|
|
|
|
├── mypage/ # 마이페이지 관련 기능
|
|
|
|
|
├── system/ # 시스템 관리 기능
|
|
|
|
|
│ ├── auth/ # 권한 관리
|
|
|
|
|
│ ├── code/ # 코드 관리
|
|
|
|
|
│ ├── group/ # 그룹 관리
|
|
|
|
|
│ ├── menu/ # 메뉴 관리
|
|
|
|
|
│ ├── role/ # 역할 관리
|
|
|
|
|
│ └── user/ # 사용자 관리
|
|
|
|
|
└── template/ # 템플릿 관련 기능 (예: PDF, Excel)
|
|
|
|
|
|
|
|
|
|
egovframework/
|
|
|
|
|
├── config/ # 프레임워크 설정
|
|
|
|
|
@ -144,287 +145,133 @@ egovframework/
|
|
|
|
|
|
|
|
|
|
<h3 id="application-yml">4.1 application.yml</h3>
|
|
|
|
|
|
|
|
|
|
애플리케이션의 공통 설정을 정의하는 파일입니다.
|
|
|
|
|
애플리케이션의 공통 설정을 정의합니다.
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
# 공통 설정
|
|
|
|
|
spring:
|
|
|
|
|
profiles:
|
|
|
|
|
active: local
|
|
|
|
|
application:
|
|
|
|
|
name: xit-framework
|
|
|
|
|
active: local # 활성화 프로필 (local, dev, prd)
|
|
|
|
|
mvc:
|
|
|
|
|
view:
|
|
|
|
|
prefix: /WEB-INF/views/
|
|
|
|
|
suffix: .jsp
|
|
|
|
|
|
|
|
|
|
# 데이터베이스 타입 설정
|
|
|
|
|
Globals:
|
|
|
|
|
DbType: maria
|
|
|
|
|
|
|
|
|
|
# MyBatis 설정
|
|
|
|
|
mybatis:
|
|
|
|
|
config-location: classpath:mybatis/mybatis-config.xml
|
|
|
|
|
mapper-locations: classpath:mybatis/mapper/**/*_${Globals.DbType}.xml
|
|
|
|
|
type-aliases-package: go.kr.project.**.model,egovframework.**.model
|
|
|
|
|
|
|
|
|
|
# 서버 설정
|
|
|
|
|
server:
|
|
|
|
|
port: 8080
|
|
|
|
|
servlet:
|
|
|
|
|
context-path: /
|
|
|
|
|
encoding:
|
|
|
|
|
charset: UTF-8
|
|
|
|
|
multipart:
|
|
|
|
|
max-file-size: 10MB
|
|
|
|
|
max-request-size: 50MB
|
|
|
|
|
|
|
|
|
|
# Swagger UI 설정
|
|
|
|
|
# 데이터베이스 및 MyBatis 설정
|
|
|
|
|
Globals:
|
|
|
|
|
DbType: maria # DB 종류
|
|
|
|
|
mybatis:
|
|
|
|
|
config-location: classpath:mybatis/mybatis-config.xml
|
|
|
|
|
mapper-locations: classpath:mybatis/mapper/**/*_${Globals.DbType}.xml
|
|
|
|
|
|
|
|
|
|
# Swagger UI 경로
|
|
|
|
|
springdoc:
|
|
|
|
|
api-docs:
|
|
|
|
|
enabled: true
|
|
|
|
|
swagger-ui:
|
|
|
|
|
enabled: true
|
|
|
|
|
path: /swagger-ui.html
|
|
|
|
|
operations-sorter: method
|
|
|
|
|
tags-sorter: alpha
|
|
|
|
|
display-request-duration: true
|
|
|
|
|
doc-expansion: none
|
|
|
|
|
disable-swagger-default-url: true
|
|
|
|
|
filter: true
|
|
|
|
|
supportedSubmitMethods: [get, post]
|
|
|
|
|
packages-to-scan: go.kr.project
|
|
|
|
|
paths-to-match: /**
|
|
|
|
|
default-consumes-media-type: application/json
|
|
|
|
|
default-produces-media-type: application/json
|
|
|
|
|
model-converters:
|
|
|
|
|
pageable-converter:
|
|
|
|
|
enabled: true
|
|
|
|
|
|
|
|
|
|
# 로그인 설정
|
|
|
|
|
|
|
|
|
|
# 로그인 페이지 URL
|
|
|
|
|
login:
|
|
|
|
|
url: /login/login.do
|
|
|
|
|
lock:
|
|
|
|
|
count: 5
|
|
|
|
|
DefaultPassword: xitpassword
|
|
|
|
|
allowMultipleLogin: true
|
|
|
|
|
|
|
|
|
|
# 인터셉터 설정
|
|
|
|
|
interceptor:
|
|
|
|
|
interceptorExclude:
|
|
|
|
|
- /html/*.html
|
|
|
|
|
- /login/**
|
|
|
|
|
- /
|
|
|
|
|
- /.well-known/**
|
|
|
|
|
- /common/**
|
|
|
|
|
- /resources/**
|
|
|
|
|
- /css/**
|
|
|
|
|
- /img/**
|
|
|
|
|
- /js/**
|
|
|
|
|
- /xit/**
|
|
|
|
|
- /plugins/**
|
|
|
|
|
- /font/**
|
|
|
|
|
- /error/**
|
|
|
|
|
- /favicon.ico
|
|
|
|
|
- /swagger-ui/**
|
|
|
|
|
- /v3/api-docs/**
|
|
|
|
|
refererExclude:
|
|
|
|
|
- /**
|
|
|
|
|
- /html/*.html
|
|
|
|
|
- /login/**
|
|
|
|
|
- /
|
|
|
|
|
- /main.do
|
|
|
|
|
- /error/**
|
|
|
|
|
- /common/**
|
|
|
|
|
- /swagger-ui/**
|
|
|
|
|
- /v3/api-docs/**
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
<h3 id="application-local-yml">4.2 application-local.yml</h3>
|
|
|
|
|
|
|
|
|
|
로컬 개발 환경에 대한 설정을 정의하는 파일입니다.
|
|
|
|
|
로컬 개발 환경(`local` 프로필)의 설정을 정의합니다.
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
# 로컬 프로필 설정
|
|
|
|
|
# 로컬 프로필 활성화
|
|
|
|
|
spring:
|
|
|
|
|
config:
|
|
|
|
|
activate:
|
|
|
|
|
on-profile: local
|
|
|
|
|
devtools:
|
|
|
|
|
livereload:
|
|
|
|
|
enabled: true
|
|
|
|
|
restart:
|
|
|
|
|
enabled: true
|
|
|
|
|
# 데이터베이스 연결
|
|
|
|
|
datasource:
|
|
|
|
|
driver-class-name: org.mariadb.jdbc.Driver
|
|
|
|
|
url: jdbc:mariadb://211.119.124.9:4407/xitframework?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
|
|
|
|
|
username: egov
|
|
|
|
|
password: xit1807
|
|
|
|
|
hikari:
|
|
|
|
|
maximum-pool-size: 10
|
|
|
|
|
minimum-idle: 5
|
|
|
|
|
connection-timeout: 30000
|
|
|
|
|
idle-timeout: 600000
|
|
|
|
|
max-lifetime: 1800000
|
|
|
|
|
validation-timeout: 60000
|
|
|
|
|
|
|
|
|
|
# 서버 설정
|
|
|
|
|
server:
|
|
|
|
|
servlet:
|
|
|
|
|
session:
|
|
|
|
|
timeout: 30m
|
|
|
|
|
tracking-modes: cookie
|
|
|
|
|
persistent: false
|
|
|
|
|
url: jdbc:mariadb://[HOST]:[PORT]/[DB_NAME]?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
|
|
|
|
|
username: [USER]
|
|
|
|
|
password: [PASSWORD]
|
|
|
|
|
|
|
|
|
|
# 로깅 설정
|
|
|
|
|
logging:
|
|
|
|
|
config: classpath:logback-spring.xml
|
|
|
|
|
file:
|
|
|
|
|
path: d:/data/xit-framework/logs
|
|
|
|
|
name: xit-framework
|
|
|
|
|
logback:
|
|
|
|
|
rollingpolicy:
|
|
|
|
|
max-file-size: 10MB
|
|
|
|
|
max-history: 30
|
|
|
|
|
path: d:/data/xit-framework/logs # 로그 파일 경로
|
|
|
|
|
level:
|
|
|
|
|
go.kr.project: DEBUG
|
|
|
|
|
egovframework: DEBUG
|
|
|
|
|
org.mybatis: DEBUG
|
|
|
|
|
org.springframework: INFO
|
|
|
|
|
go.kr.project: DEBUG # 프로젝트 패키지 로그 레벨
|
|
|
|
|
|
|
|
|
|
# 파일 업로드 설정
|
|
|
|
|
# 파일 업로드 경로
|
|
|
|
|
file:
|
|
|
|
|
upload:
|
|
|
|
|
path: D:\xit-framework-file
|
|
|
|
|
max-size: 10
|
|
|
|
|
max-total-size: 50
|
|
|
|
|
max-files: 10
|
|
|
|
|
allowed-extensions: hwp,jpg,jpeg,png,gif,pdf,doc,docx,xls,xlsx,ppt,pptx,txt,zip
|
|
|
|
|
real-file-delete: true
|
|
|
|
|
sub-dirs:
|
|
|
|
|
bbs-notice: bbs/notice
|
|
|
|
|
bbs-post: bbs/post
|
|
|
|
|
html-editor: common/html_editor
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
<h3 id="application-dev-yml">4.3 application-dev.yml</h3>
|
|
|
|
|
|
|
|
|
|
개발 환경에 대한 설정을 정의하는 파일입니다.
|
|
|
|
|
개발 서버 환경(`dev` 프로필)의 설정을 정의합니다.
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
# 개발 프로필 설정
|
|
|
|
|
# 개발 프로필 활성화
|
|
|
|
|
spring:
|
|
|
|
|
config:
|
|
|
|
|
activate:
|
|
|
|
|
on-profile: dev
|
|
|
|
|
# 데이터베이스 연결
|
|
|
|
|
datasource:
|
|
|
|
|
driver-class-name: org.mariadb.jdbc.Driver
|
|
|
|
|
url: jdbc:mariadb://211.119.124.9:4407/xitframework?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
|
|
|
|
|
username: egov
|
|
|
|
|
password: xit1807
|
|
|
|
|
hikari:
|
|
|
|
|
maximum-pool-size: 10
|
|
|
|
|
minimum-idle: 5
|
|
|
|
|
connection-timeout: 30000
|
|
|
|
|
idle-timeout: 600000
|
|
|
|
|
max-lifetime: 1800000
|
|
|
|
|
validation-timeout: 60000
|
|
|
|
|
|
|
|
|
|
# 서버 설정
|
|
|
|
|
server:
|
|
|
|
|
servlet:
|
|
|
|
|
session:
|
|
|
|
|
timeout: 30m
|
|
|
|
|
url: jdbc:mariadb://[DEV_HOST]:[PORT]/[DB_NAME]?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
|
|
|
|
|
username: [USER]
|
|
|
|
|
password: [PASSWORD]
|
|
|
|
|
|
|
|
|
|
# 로깅 설정
|
|
|
|
|
logging:
|
|
|
|
|
config: classpath:logback-spring.xml
|
|
|
|
|
file:
|
|
|
|
|
path: d:/data/xit-framework/logs
|
|
|
|
|
name: xit-framework
|
|
|
|
|
logback:
|
|
|
|
|
rollingpolicy:
|
|
|
|
|
max-file-size: 10MB
|
|
|
|
|
max-history: 30
|
|
|
|
|
path: /data/logs/xit-framework # 로그 파일 경로
|
|
|
|
|
level:
|
|
|
|
|
go.kr.project: DEBUG
|
|
|
|
|
egovframework: DEBUG
|
|
|
|
|
org.mybatis: DEBUG
|
|
|
|
|
org.springframework: INFO
|
|
|
|
|
|
|
|
|
|
# 파일 업로드 설정
|
|
|
|
|
# 파일 업로드 경로
|
|
|
|
|
file:
|
|
|
|
|
upload:
|
|
|
|
|
path: D:\xit-framework-file
|
|
|
|
|
max-size: 10
|
|
|
|
|
max-total-size: 50
|
|
|
|
|
max-files: 10
|
|
|
|
|
allowed-extensions: hwp,jpg,jpeg,png,gif,pdf,doc,docx,xls,xlsx,ppt,pptx,txt,zip
|
|
|
|
|
real-file-delete: true
|
|
|
|
|
sub-dirs:
|
|
|
|
|
bbs-notice: bbs/notice
|
|
|
|
|
bbs-post: bbs/post
|
|
|
|
|
html-editor: common/html_editor
|
|
|
|
|
path: /data/upload/xit-framework-file
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
<h3 id="application-prd-yml">4.4 application-prd.yml</h3>
|
|
|
|
|
|
|
|
|
|
운영 환경에 대한 설정을 정의하는 파일입니다.
|
|
|
|
|
운영 서버 환경(`prd` 프로필)의 설정을 정의합니다.
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
# 운영 프로필 설정
|
|
|
|
|
# 운영 프로필 활성화
|
|
|
|
|
spring:
|
|
|
|
|
config:
|
|
|
|
|
activate:
|
|
|
|
|
on-profile: prd
|
|
|
|
|
# 데이터베이스 연결
|
|
|
|
|
datasource:
|
|
|
|
|
driver-class-name: org.mariadb.jdbc.Driver
|
|
|
|
|
url: jdbc:mariadb://211.119.124.9:4407/xitframework?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
|
|
|
|
|
username: egov
|
|
|
|
|
password: xit1807
|
|
|
|
|
hikari:
|
|
|
|
|
maximum-pool-size: 10
|
|
|
|
|
minimum-idle: 5
|
|
|
|
|
connection-timeout: 30000
|
|
|
|
|
idle-timeout: 600000
|
|
|
|
|
max-lifetime: 1800000
|
|
|
|
|
validation-timeout: 60000
|
|
|
|
|
url: jdbc:mariadb://[PRD_HOST]:[PORT]/[DB_NAME]?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
|
|
|
|
|
username: [USER]
|
|
|
|
|
password: [PASSWORD]
|
|
|
|
|
|
|
|
|
|
# 서버 설정
|
|
|
|
|
# 서버 세션 타임아웃
|
|
|
|
|
server:
|
|
|
|
|
servlet:
|
|
|
|
|
session:
|
|
|
|
|
timeout: 60m
|
|
|
|
|
|
|
|
|
|
# 로깅 설정
|
|
|
|
|
# 로깅 설정 (WARN 레벨)
|
|
|
|
|
logging:
|
|
|
|
|
config: classpath:logback-spring.xml
|
|
|
|
|
file:
|
|
|
|
|
path: /data/logs/xit-framework-file
|
|
|
|
|
name: xit-framework
|
|
|
|
|
logback:
|
|
|
|
|
rollingpolicy:
|
|
|
|
|
max-file-size: 10MB
|
|
|
|
|
max-history: 30
|
|
|
|
|
path: /data/logs/xit-framework # 로그 파일 경로
|
|
|
|
|
level:
|
|
|
|
|
go.kr.project: WARN
|
|
|
|
|
egovframework: WARN
|
|
|
|
|
org.mybatis: WARN
|
|
|
|
|
org.springframework: WARN
|
|
|
|
|
|
|
|
|
|
# 파일 업로드 설정
|
|
|
|
|
# 파일 업로드 경로
|
|
|
|
|
file:
|
|
|
|
|
upload:
|
|
|
|
|
path: /data/upload/xit-framework-file
|
|
|
|
|
max-size: 10
|
|
|
|
|
max-total-size: 50
|
|
|
|
|
max-files: 10
|
|
|
|
|
allowed-extensions: hwp,jpg,jpeg,png,gif,pdf,doc,docx,xls,xlsx,ppt,pptx,txt,zip
|
|
|
|
|
real-file-delete: true
|
|
|
|
|
sub-dirs:
|
|
|
|
|
bbs-notice: bbs/notice
|
|
|
|
|
bbs-post: bbs/post
|
|
|
|
|
html-editor: common/html_editor
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
<h3 id="build-gradle">4.5 build.gradle</h3>
|
|
|
|
|
@ -642,7 +489,7 @@ MyBatis 설정을 정의하는 파일입니다.
|
|
|
|
|
|
|
|
|
|
<h3 id="database-schema">4.8 데이터베이스 스키마</h3>
|
|
|
|
|
|
|
|
|
|
주요 테이블 구조는 `DB-DDL/maria/all_ddl.sql`에 정의되어 있습니다:
|
|
|
|
|
주요 테이블 및 시퀀스 생성 스크립트는 `DB-DDL/maria/ddl/xitframework/` 디렉토리에 각 객체별 파일로 정의되어 있습니다:
|
|
|
|
|
|
|
|
|
|
- **tb_user**: 사용자 정보
|
|
|
|
|
- **tb_group**: 그룹 정보
|
|
|
|
|
|