이번 릴리즈는 IoC 컨테이너의 핵심 기능인 dependsOn 지원, 분산 환경을 위한 작업 잠금(Job Lock) 메커니즘 도입, 그리고 와일드카드 매칭 엔진의 전면적인 개편에 집중했습니다. 엔터프라이즈 환경에서의 안정성과 운영 효율성을 높이기 위한 다양한 기능 추가와 내부 아키텍처 개선이 이루어졌습니다.
✨ 새로운 기능
- 빈(Bean) 의존성 제어 기능 추가 (
dependsOn)- 모든 설정 방식(XML, APON, Annotation)에서
dependsOn속성을 지원하여 빈 간의 명시적인 초기화 및 소멸 순서를 보장할 수 있습니다. - 순환 의존성 감지 로직을 도입하여 설정 오류를 방지하고 라이프사이클 관리의 안정성을 높였습니다.
- 모든 설정 방식(XML, APON, Annotation)에서
- 분산 스케줄링을 위한 작업 잠금(Job Lock) 메커니즘 도입
- 클러스터 환경에서 스케줄된 작업의 중복 실행을 방지하기 위한
ScheduledJobLockProvider인터페이스 및 작업 잠금 메커니즘을 도입했습니다. - 이를 통해 외부 잠금 구현체를 연결하여 노드 간 작업 실행을 제어할 수 있습니다.
- 클러스터 환경에서 스케줄된 작업의 중복 실행을 방지하기 위한
- 스케줄 및 작업 제어 속성 확장
- 스케줄과 개별 작업에
isolated(격리 실행) 및disabled(비활성화) 속성을 추가하여 런타임 제어 능력을 강화했습니다.
- 스케줄과 개별 작업에
- 암호화 설정의 동적 리로드 지원
PBEncryptionUtils가 시스템 속성 변경을 실시간으로 감지하여 설정을 다시 로드할 수 있도록 리팩토링했습니다.- 고정 솔트(Fixed Salt) 지원 및 작업별 커스텀 솔트 적용 기능을 추가하여 보안 설정의 유연성을 높였습니다.
- 통합 테스트를 위한 TestCoreService 도입
- 테스트 시 컨텍스트 부트스트랩과 라이프사이클 관리를 단순화하고 표준화할 수 있는 전용 서비스를 도입했습니다.
🚀 개선 사항
- 와일드카드 매칭 엔진(
WildcardEngine) 전면 리팩토링- 정교한 백트래킹 알고리즘을 도입하여 복잡한 패턴 매칭 및 마스킹의 정확도를 획기적으로 높였습니다.
- 이중 별표(
**)가 빈 세그먼트와 매칭되는 케이스(“separator swallowing”)를 완벽하게 지원합니다.
- REST 응답 및 페이로드 구조 표준화
ResponsePayload와ErrorPayload의 구조를 정교화하여 성공/실패 여부에 따라 필드를 동적으로 포함하도록 개선했습니다.
- 데몬 서비스 아키텍처 및 명령 실행 구조 정제
- 명령 실행 로직을 동기(Sync)와 비동기(Async) 역할로 분리하고 관리 기능을
DaemonService레이어로 통합했습니다.
- 명령 실행 로직을 동기(Sync)와 비동기(Async) 역할로 분리하고 관리 기능을
- AsEL 표현식 평가 로직 중앙화
Activity및Translet인터페이스에서 AsEL 표현식을 직접 평가할 수 있는 메서드를 추가하고 관련 로직을 통합했습니다.
🐞 버그 수정
- 와일드카드 엔진 매칭 버그 수정
- 세그먼트를 가로지르는 와일드카드가 뒤따르는 리터럴을 잘못 소비하던 문제를 해결했습니다.
- 패턴 매칭 정확도 개선
- ’?’ 및 ‘+’ 와일드카드의 동작을 정의에 맞게 수정했습니다.
- 데몬 명령 격리 규칙 수정
- 데몬 서비스에서 격리된 명령과 지연 명령의 처리 로직이 일관되게 적용되지 않던 문제를 수정했습니다.
🛠️ 의존성 라이브러리 업그레이드
- JLine (4.0.13)
- Commons IO (2.22.0)
- Thymeleaf (3.1.5.RELEASE)
- Apache HttpClient5 (5.6.1)
- Hibernate Core (7.3.2.Final)
Juho Jeong NEWS
Release