기본 콘텐츠로 건너뛰기

12월, 2023의 게시물 표시

Java Thread ContextClassLoader 완전 정리: getContextClassLoader() 개념과 활용법

Java Thread ContextClassLoader 완전 정리: getContextClassLoader() 개념과 활용법 AI 생성 이미지: Java Thread ContextClassLoader 완전 정리: getContextClassLoader() 개념과 활용법 클래스 로더는 자바 런타임에서 클래스와 리소스를 찾는 핵심 메커니즘입니다. 그중 getContextClassLoader() 는 단순한 조회 호출이 아니라, 표준 위임 모델이 닿지 않는 상황에서 올바른 구현체나 리소스를 찾도록 돕는 실무용 도구입니다. 이 글에서는 개념을 명확히 하고, 실제 환경에서 어떻게 안전하게 활용하는지 단계별로 설명합니다. 1. 🏛️ 자바 클래스 로더의 기본 원칙 (위임 모델) JVM의 클래스 로더는 기본적으로 위임(Delegation) 모델을 따릅니다. 하위 로더가 클래스를 직접 로드하기 전에 먼저 상위 로더에게 요청하며, 상위 로더가 로드를 실패하면 하위 로더가 시도합니다. 이 설계는 충돌 방지와 안정성을 위해 고안되었습니다. 클래스 로더 로드 경로 Bootstrap (부트스트랩) JRE의 핵심 라이브러리 ( rt.jar 등) Extension (확장) JRE의 확장 디렉토리 ( lib/ext ) ...

JBoss에 EgovFramework 배포 시 spring-modules-validation 충돌 오류 완벽 해결 가이드

JBoss에 EgovFramework 배포 시 spring-modules-validation 충돌 오류 완벽 해결 가이드 AI 생성 이미지: JBoss에 EgovFramework 배포 시 spring-modules-validation 충돌 오류 완벽 해결 가이드 레거시 전자정부프레임워크를 JBoss나 WildFly에 올릴 때, 로컬에서는 문제없던 기능이 운영 환경에서 ClassLoader 관련 예외로 배포가 실패하는 일이 자주 발생합니다. 이 문서는 JBoss에 EgovFramework 배포 시 spring-modules-validation 충돌 오류 완벽 해결 가이드 를 목표로, 원인 분석과 실무에서 바로 적용 가능한 대응 방법을 단계별로 정리합니다. 핵심은 구형 Validation 라이브러리( spring-modules-validation:0.9 )와 JBoss가 제공하는 javax.validation 모듈, 그리고 공통 로깅류( commons-logging ) 간의 충돌을 적절히 정리하는 것입니다. 아래에서 pom.xml 의존성 관리와 jboss-deployment-structure.xml 설정을 통해 문제를 해결합니다. 📚 목차 1. 발생 환경과 대표 증상 정리 2. 근본 원인: JBoss ClassLoader vs 구형 Validation 라이브러리 3. 해결 1단계: pom.xml 에서 의존성 정리 4. 해결 2단계: jboss-deployment-structure.xml 설정 5. 실무 체크리스트 & FAQ 6. 마무리: ...