File name
Commit message
Commit date
Spring Boot + JPA 전환 진행 내역#
변경 목적#
- 기존 전자정부프레임워크(MyBatis 중심) 구조 위에 Spring Boot + JPA 기반을 추가해 점진 전환을 시작했습니다.
- MariaDB 스키마와 인덱스 정보를 반영해 JPA 엔티티/인덱스 매핑을 진행했습니다.
변경 요약#
- Spring Boot 1.5.22.RELEASE 기반 구성 추가
- JPA 엔티티 10종과 리포지토리 10종 신규 생성
- 테스트용 H2 구성 및 기본 JPA 저장/조회 테스트 추가
상세 변경 사항#
빌드 설정#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xmlspring-boot.version과java.version속성 추가spring-boot-dependenciesBOM 추가spring-boot-starter-web,spring-boot-starter-data-jpa,spring-boot-starter-tomcat추가spring-boot-starter-test추가h2의존성test스코프로 변경- 테스트 스킵 해제(
skipTests=false) spring-boot-maven-plugin추가
애플리케이션 부트스트랩#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/BaseCmsApplication.java- Spring Boot 진입점 추가
- WAR 배포를 위한
SpringBootServletInitializer확장
애플리케이션 설정#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/application.yml- MariaDB 접속 정보 환경변수 주입 방식 추가
- JPA 기본 설정(ddl-auto none, open-in-view false)
JPA 엔티티#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtccmmnclcode.java- 공통분류코드 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtccmmncode.java- 공통코드 엔티티, 인덱스
COMTCCMMNCODE_FK1매핑
- 공통코드 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtccmmndetailcodeId.java- 공통상세코드 복합키
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtccmmndetailcode.java- 공통상세코드 엔티티, 인덱스
COMTCCMMNDETAILCODE_FK1매핑
- 공통상세코드 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnmber.java- 회원정보 엔티티, 인덱스
COMTNMBER_IE1,COMTNMBER_IE2매핑
- 회원정보 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnauthorinfo.java- 권한정보 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnroleinfo.java- 롤정보 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnauthorrolerelateId.java- 권한롤관계 복합키
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnauthorrolerelate.java- 권한롤관계 엔티티, 인덱스
COMTNAUTHORROLERELATE_FK2매핑
- 권한롤관계 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnrolesHierarchyId.java- 롤 계층구조 복합키
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnrolesHierarchy.java- 롤 계층구조 엔티티, 인덱스
COMTNROLES_HIERARCHY_FK1매핑
- 롤 계층구조 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnsiteinfo.java- 사이트정보 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnsitemnu.java- 사이트메뉴 엔티티, 인덱스
COMTNSITEMNU_IE1,COMTNSITEMNU_IE2매핑
- 사이트메뉴 엔티티, 인덱스
JPA 리포지토리#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtccmmnclcodeRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtccmmncodeRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtccmmndetailcodeRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnmberRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnauthorinfoRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnroleinfoRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnauthorrolerelateRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnrolesHierarchyRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnsiteinfoRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnsitemnuRepository.java
테스트#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/test/resources/application-test.yml- H2 인메모리 DB 설정
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/test/java/com/foxedu/basecms/BaseCmsJpaTest.java- 공통분류코드 저장/조회 테스트
남은 작업(요약)#
- 나머지 테이블 엔티티/리포지토리 생성
- 관계 매핑(FK) 및 복합키 정교화
- 관리자 기능별 서비스/컨트롤러 전환
- MariaDB 실제 연결 기반 통합 테스트
추가 변경(2차)#
JPA 엔티티#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comschulinfo.java- 학교정보 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtecopseq.java- 시퀀스정보 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbanner.java- 배너 엔티티, 인덱스
COMTNBANNER_IE1매핑
- 배너 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbsctgrymaster.java- 게시판카테고리마스터 엔티티, 인덱스
COMTNBBSCTGRYMASTER_IE1매핑
- 게시판카테고리마스터 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbsctgry.java- 게시판카테고리 엔티티, 인덱스
COMTNBBSCTGRY_IE1,COMTNBBSCTGRY_IE2매핑
- 게시판카테고리 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbsmaster.java- 게시판마스터 엔티티, 인덱스
COMTNBBSMASTER_IE1,COMTNBBSMASTER_IE2매핑
- 게시판마스터 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbs.java- 게시판 엔티티, 인덱스
COMTNBBS_IE1,COMTNBBS_IE2,COMTNBBS_IE3매핑
- 게시판 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtncomment.java- 댓글 엔티티, 인덱스
COMTNCOMMENT_FK1매핑
- 댓글 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbssourc.java- 게시판소스 엔티티, 인덱스
COMTNBBSSOURC_IE1매핑
- 게시판소스 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbstmplat.java- 게시판템플릿 엔티티, 인덱스
COMTNBBSTMPLAT_IE1매핑
- 게시판템플릿 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnpopupmanage.java- 팝업관리 엔티티, 인덱스
COMTNPOPUPMANAGE_IE1매핑
- 팝업관리 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnfile.java- 파일속성 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnfiledetailId.java- 파일상세정보 복합키
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnfiledetail.java- 파일상세정보 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnlogininfoId.java- 로그인정보 복합키
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnlogininfo.java- 로그인정보 엔티티, 인덱스
COMTNLOGININFO_IE1매핑
- 로그인정보 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnloginlog.java- 로그인로그 엔티티, 인덱스
COMTNLOGINLOG_IE1매핑
- 로그인로그 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnsitemaincntntsId.java- 사이트메인컨텐츠 복합키
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnsitemaincntnts.java- 사이트메인컨텐츠 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnweblog.java- 웹로그 엔티티, 인덱스
COMTNWEBLOG_IE1매핑
- 웹로그 엔티티, 인덱스
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtsbbssummaryId.java- 게시물통계요약 복합키
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtsbbssummary.java- 게시물통계요약 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtsweblogsummaryId.java- 웹로그요약 복합키
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtsweblogsummary.java- 웹로그요약 엔티티
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtsmlglogsummaryId.java- 마일리지로그요약 복합키
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtsmlglogsummary.java- 마일리지로그요약 엔티티
JPA 리포지토리#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComschulinfoRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtecopseqRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbannerRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbsctgrymasterRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbsctgryRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbsmasterRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbsRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtncommentRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbssourcRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbstmplatRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnpopupmanageRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnfileRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnfiledetailRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnlogininfoRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnloginlogRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnsitemaincntntsRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnweblogRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtsbbssummaryRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtsweblogsummaryRepository.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtsmlglogsummaryRepository.java
남은 작업(요약)#
- 나머지 테이블 엔티티/리포지토리 생성
- FK 관계 매핑 및 복합키 정교화
- 관리자 기능 서비스/컨트롤러 전환
추가 변경(3차)#
빌드 설정#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xml- Thymeleaf 사용을 위한
spring-boot-starter-thymeleaf추가 - Lombok 사용을 위한
lombok의존성 추가
- Thymeleaf 사용을 위한
추가 변경(4차)#
빌드 설정#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xml- Spring Boot 버전을
2.7.18로 변경 - Java 버전을
17로 변경 - 컴파일러 설정을
java.version프로퍼티 기반으로 통일
- Spring Boot 버전을
Lombok 리팩터링#
- 엔티티 30종에 Lombok 적용(
@Getter,@Setter,@NoArgsConstructor) - 기존 getter/setter 메서드 제거
적용된 엔티티 예시:
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbs.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnmber.java/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnsiteinfo.java
추가 변경(5차)#
JSP → Thymeleaf 1차 이관(기계적 변환)#
WEB-INF/jsp및 루트 JSP 292개를 Thymeleaf 템플릿으로 변환해 복사- 위치:
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates - 변환 내용(기본 규칙)
- JSP 디렉티브/스크립틀릿 제거
c:if,c:forEach,c:out,spring:message일부 변환<html>에xmlns:th추가
주의 사항
<form:*>,<spring:*>일부 태그, 커스텀 태그, 스크립틀릿 로직은 수동 보정 필요- 화면 동작 검증은 아직 미완료
Swagger(OpenAPI)#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xmlspringdoc-openapi-ui추가
추가 변경(6차)#
관리자 화면 수동 보정(1차)#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/egovframework/mng/template/top.html- 타임리프 문법으로 재작성
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/egovframework/mng/template/bottom.html- 타임리프 문법으로 재작성
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/mng/sym/ccm/CcmCmmnClCodeList.html- 공통분류코드 목록 화면 타임리프 수동 변환
컨트롤러-뷰 바인딩 보정#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/sym/ccm/web/CcmCmmnClCodeManageController.java- 타임리프 페이지네이션 표시용
paginationHtml모델 추가
- 타임리프 페이지네이션 표시용
Swagger 샘플#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/api/SampleApiController.java/api/health샘플 엔드포인트 추가
추가 변경(7차)#
네이밍 축약 및 URL 통일#
- 엔티티/리포지토리/복합키 클래스명을 짧은 이름으로 일괄 변경
/mng경로를/manage로 통일(컨트롤러 매핑, 템플릿 링크, JSP/HTML/JS 내 URL 문자열)- 템플릿 디렉터리 구조를
/templates/manage및/templates/egovframework/manage로 이동
변경 예시
Comtnmber→MemberComtnsitemnu→MenuComtnbbs→Bbs- URL:
/mng/...→/manage/...
추가 변경(8차)#
공통코드 상세/등록 화면 이관#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/CcmCmmnClCodeRegist.html- 공통분류코드 등록 화면 타임리프 이관
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/CcmCmmnClCodeModify.html- 공통분류코드 수정 화면 타임리프 이관
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/CcmCmmnClCodeDetail.html- 공통분류코드 상세 화면 타임리프 이관
추가 변경(9차)#
공통코드 화면 이관#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cca/CcmCmmnCodeList.html/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cca/CcmCmmnCodeRegist.html/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cca/CcmCmmnCodeModify.html/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cca/CcmCmmnCodeDetail.html
공통상세코드 화면 이관#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cde/CcmCmmnDetailCodeList.html/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cde/CcmCmmnDetailCodeRegist.html/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cde/CcmCmmnDetailCodeModify.html/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/CcmCmmnDetailCodeDetail.html
팝업 템플릿 보정#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/egovframework/manage/template/popTop.html/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/egovframework/manage/template/popBottom.html
컨트롤러 바인딩 보정#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/sym/ccm/web/CcmCmmnCodeManageController.javapaginationHtml모델 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/sym/ccm/web/CcmCmmnDetailCodeManageController.javapaginationHtml모델 추가
추가 변경(10차)#
Gradle 전환#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/build.gradle추가/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/settings.gradle추가- Gradle Wrapper 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/gradlew/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/gradle/wrapper/gradle-wrapper.properties/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/gradle/wrapper/gradle-wrapper.jar
추가 변경(11차)#
Java 버전 상향#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/build.gradle- Gradle toolchain을 Java 21로 변경
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xmljava.version을 21로 변경
추가 변경(12차)#
Spring Boot 3 전환#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xml- Spring Boot 버전
3.2.5로 변경 - Springdoc 의존성
springdoc-openapi-starter-webmvc-ui로 변경 - JSP/JSTL 의존성 Jakarta 기반으로 변경
- Spring Boot 버전
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/build.gradle- Spring Boot 플러그인
3.2.5로 변경 - Springdoc 의존성
springdoc-openapi-starter-webmvc-ui로 변경 - JSTL 의존성 Jakarta 기반으로 변경
- Spring Boot 플러그인
패키지 전환#
javax.*→jakarta.*전역 변경(엔티티/컨트롤러 포함)
추가 변경(13차)#
Gradle 의존성 보정#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/build.gradle- eGovFrame 저장소를
https://maven.egovframe.go.kr/maven/로 변경 - okhttp/okio 버전 상향 및 log4jdbc3 제거
- eGov MVC 의존성에서 spring-modules-validation 제외 처리
- eGovFrame 저장소를
추가 변경(14차)#
Spring Boot 3 호환 보정#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/egovframework/spring/context-common.xml- 멀티파트 리졸버를
StandardServletMultipartResolver로 교체
- 멀티파트 리졸버를
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/application.yml- 멀티파트 용량 설정 추가 및 주석 한글화
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/cmm/view/AbstractPoiExcelView.java- POI 기반 엑셀 뷰 공통 클래스 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/cmm/view/ExcelView.javaAbstractPoiExcelView상속으로 변경
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/cmm/service/ExcelDownloadView.javaAbstractPoiExcelView상속으로 변경
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/front/sym/log/web/EgovWebLogInterceptor.javaHandlerInterceptorAdapter→HandlerInterceptor변경/mng경로 검사 →/manage로 변경
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/cmm/web/EgovBindingInitializer.javainitBinder시그니처를 Spring 6 기준으로 수정
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/org/springmodules/validation/commons/DefaultBeanValidator.java- 기존 spring-modules 의존성 대체 구현 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/org/springmodules/validation/commons/DefaultValidatorFactory.java- 검증 팩토리 대체 구현 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/egovframework/spring/context-validator.xml- 주석 한글화
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/build.gradle- 구버전 Jackson 의존성 제거
테스트 전환#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/test/java/com/foxedu/basecms/BaseCmsJpaTest.java- JUnit 5로 전환
추가 변경(15차)#
공통코드 검증 어노테이션 적용#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/sym/ccm/ccc/service/CmmnClCodeVO.java- 필수값/길이 제약 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/sym/ccm/cca/service/CmmnCodeVO.java- 필수값/길이 제약 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/sym/ccm/cde/service/CmmnDetailCodeVO.java- 필수값/길이 제약 어노테이션 추가
추가 변경(16차)#
회원관리 검증 어노테이션 적용#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/uss/umt/service/UserManageVO.java- 회원관리 필드에 Bean Validation 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/uss/umt/web/UserManageController.java- 등록/수정 시
@Valid적용 및 오류 시 화면 복귀 처리
- 등록/수정 시
추가 변경(17차)#
게시판 검증 어노테이션 적용#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/cop/bbs/service/BoardMasterVO.java- 게시판 속성 필드에 Bean Validation 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/cop/bbs/service/BoardVO.java- 게시물 필수값/길이 제약 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/cop/bbs/service/CommentVO.java- 댓글 필수값/길이 제약 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/cop/bbs/service/CtgryMasterVO.java- 카테고리마스터 필수값/길이 제약 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/cop/bbs/service/CtgryVO.java- 카테고리 필수값/길이 제약 어노테이션 추가
추가 변경(18차)#
사이트/메뉴 검증 어노테이션 적용#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/sym/mpm/service/MpmVO.java- 메뉴 필드에 Bean Validation 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/sym/sit/service/SiteManageVO.java- 사이트 필드에 Bean Validation 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/sym/sit/service/SiteMainContentsManageVO.java- 사이트 메인컨텐츠 필드에 Bean Validation 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/sym/mpm/web/MpmController.java- 메뉴 등록 시
@Valid적용 및 검증 중복 제거
- 메뉴 등록 시
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/sym/sit/web/SiteManageController.java- 사이트 등록/수정 시
@Valid적용 및 검증 중복 제거
- 사이트 등록/수정 시
추가 변경(19차)#
팝업/배너 검증 어노테이션 적용#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/uss/ion/bnr/service/BannerVO.java- 배너 필드에 Bean Validation 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/uss/ion/pwm/service/PopupManageVO.java- 팝업 필드에 Bean Validation 어노테이션 추가
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/uss/ion/bnr/web/BannerManageController.java- 배너 등록/수정 시
@Valid적용 및 오류 처리
- 배너 등록/수정 시
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/uss/ion/pwm/web/PopupManageController.java- 팝업 등록/수정 시
@Valid적용 및 오류 처리
- 팝업 등록/수정 시
추가 변경(20차)#
Maven 흔적 제거#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xml삭제/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/.gitignore- Maven 관련 ignore 항목 제거
추가 변경(21차)#
README 갱신#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/README.md- Gradle/Boot3/Java21 기준으로 수정
- DB 연결 설정 내용은 유지
추가 변경(22차)#
DB 설정 기본값 적용#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/application.yml- datasource 기본값을 요청한 MariaDB 접속 정보로 변경
추가 변경(23차)#
로그인 페이지 연결#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/config/SecurityConfig.java- 스프링 시큐리티 기본 로그인 비활성화
- 커스텀 로그인 페이지(
/uat/uia/egovLoginUsr.do)로 연결 - CSRF 비활성화
추가 변경(24차)#
템플릿 오류 방지#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/index.htmlsiteInfo가 null일 때도 렌더링되도록 안전한 표현식 적용
추가 변경(25차)#
로그 상세화#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/application.yml- 에러 응답 상세 설정 추가
- 하이버네이트/로그4jdbc SQL 로그 레벨 상향
추가 변경(26차)#
템플릿 오류 방지#
/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/index.htmlcurrRootMpm/currMpmnull 안전 처리