kintex/src/backend/build.gradle
zio 92572df511 feat(backend): visitor/ticket/parking/livenotice/session domains, Jasper PDF, tenant switch (V86-V106)
- Jasper grid report (PDF), fonts + extension config
- Subscription/live-notice, parking congestion, session RSVP
- Smart ticket TOTP guard, ticket cancel policy
- Visitor membership/contact/notification/pay-method/feed
- Multitenancy demo tenant + tenant switch response
- M2 layout version DTO; unit/integration tests for above

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 00:41:37 +09:00

82 lines
3.2 KiB
Groovy

plugins {
id 'java'
id 'org.springframework.boot' version '3.2.5'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'com.zioinfo.kintex'
version = '0.1.0-SNAPSHOT'
java {
sourceCompatibility = JavaLanguageVersion.of(17)
targetCompatibility = JavaLanguageVersion.of(17)
}
// 한글 문자열 리터럴 손상 방지 — Windows javac 기본 인코딩(CP949) 대신 UTF-8 강제.
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}
repositories {
mavenCentral()
}
ext {
mybatisStarterVersion = '3.0.3' // Spring Boot 3.2.x 호환
jjwtVersion = '0.12.5'
}
dependencies {
// --- Web / REST + WebSocket(STOMP) 실시간 알림(RenderJob 완료·승인 이벤트) ---
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-websocket'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-security'
// --- MyBatis + PostgreSQL(PostGIS) — 공간 SQL은 매퍼 XML(kintex-db-engineer 공유) ---
implementation "org.mybatis.spring.boot:mybatis-spring-boot-starter:${mybatisStarterVersion}"
runtimeOnly 'org.postgresql:postgresql'
// --- Flyway 마이그레이션(순번 DDL·시드 권위) — Spring Boot 3.2.x 관리 버전(Flyway 9.x, PG 내장) ---
implementation 'org.flywaydb:flyway-core'
// --- Redis 작업 큐 (RenderJob·서류 생성·알림 발행) ---
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
// --- 메일 발송(자체 Postfix SMTP — 옥션 개설 통지·EDM·비밀번호 재설정) ---
implementation 'org.springframework.boot:spring-boot-starter-mail'
// --- 서류 PDF 생성(M6 G-05) — HTML→PDF 경량 렌더러. NanumGothic 폰트 임베드(한글 보존). ---
implementation 'com.openhtmltopdf:openhtmltopdf-pdfbox:1.0.10'
// --- 범용 그리드 PDF 출력(전 그리드 공용, JasperReports) — WISE/UIWS 패턴 이식. ---
// 6.21.x는 PDF(iText) 익스포터가 코어에 포함. 한글은 fonts.xml 폰트확장으로 Identity-H 임베딩.
implementation('net.sf.jasperreports:jasperreports:6.21.3') {
// Spring Boot 관리 버전과 충돌 방지 — commons-logging 전이 의존성 정리.
exclude group: 'commons-logging', module: 'commons-logging'
}
// --- JWT (행사 단위 RBAC 인증) ---
implementation "io.jsonwebtoken:jjwt-api:${jjwtVersion}"
runtimeOnly "io.jsonwebtoken:jjwt-impl:${jjwtVersion}"
runtimeOnly "io.jsonwebtoken:jjwt-jackson:${jjwtVersion}"
// --- 2차 인증 TOTP(RFC6238) — WISE/UIWS 이식 (dev.samstevens.totp) ---
implementation 'dev.samstevens.totp:totp:1.7.1'
// --- AOP (@Audited 감사 어드바이스, Phase B B-2/B-4) ---
implementation 'org.springframework.boot:spring-boot-starter-aop'
// --- Lombok ---
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
// --- Test ---
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
}
tasks.named('test') {
useJUnitPlatform()
}