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() }