본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

JDK 버전별 활용 방안

by 3604 2026. 5. 28.
728x90

. "중요한 서비스는 JDK 1.8, 덜 중요한 서비스는 JDK 21"이라는 전략은 현실적이고 합리적인 접근 방식입니다.

다만, 신규 구축 시스템이라는 점과 TLS 1.3 적용 목표를 고려할 때, 몇 가지 중요한 제약사항과 권장 사항을 먼저 말씀드리는 것이 좋겠습니다.


🔄 JDK 1.8과 JDK 21 병행 사용의 핵심 조건

⚠️ TLS 1.3 관련 중요 제약

병행 구성의 핵심은 어떤 서비스가 TLS 1.3을 사용해야 하는가입니다.

 
JDK 버전TLS 1.3 지원 여부비고
JDK 1.8 (구버전) ❌ 지원 안 함 TLS 1.2까지만 가능
JDK 1.8 (8u261 이상) ⚠️ 가능하나 기본 비활성화 설정 필요 (-Djdk.tls.client.protocols=TLSv1.3)
JDK 21 ✅ 기본 지원 별도 설정 없이 TLS 1.3 사용 가능

TLS 1.3이 꼭 필요한 상황이라면:

  • JDK 1.8 서비스는 TLS 1.3 클라이언트 역할을 할 수 없습니다 (보안 강화 필요시 JDK 21로 통일 필요)
  • JDK 1.8 서비스는 TLS 1.3으로 업그레이드된 외부 API 호출 시 연결 실패 가능성 있음

 병행 구성의 실질적 조건

가장 중요한 전제 조건: JEUS 버전 지원 여부

JEUS 공식 문서에 따르면, JEUS는 JDK 8 또는 JDK 11까지만 공식 지원합니다.

text
JEUS 설치 요구사항:
- JDK 8 또는 JDK 11 설치 필요
- JDK 8 이상 버전 권장

즉, 현재 사용 중인 JEUS 버전이 JDK 21을 공식 지원하는지 반드시 확인해야 합니다.

  • JEUS 8.5 Fix#3 이상 또는 JEUS 9 버전에서 JDK 11 지원
  • JDK 21 지원은 JEUS 21(Fix) 이상에서 가능할 수 있음 (TmaxSoft에 직접 확인 필요)

🏗️ 권장 아키텍처 구성안

방안 1: WAS 인스턴스 분리 (권장)

text
[동일 JEUS 도메인 내]

JDK 1.8 기반 서버 인스턴스 (핵심 서비스)
├── JEUS Server 1 (포트 8081)
│   └── 중요 업무 서비스 (결제, 계정, 인증 등)
│
JDK 21 기반 서버 인스턴스 (일반 서비스)
├── JEUS Server 2 (포트 8082)
│   └── 부가 서비스 (게시판, 통계, 로그 등)

장점:

  • JDK 버전별로 독립적 실행 환경 보장
  • 문제 발생 시 영향도 최소화 (서버 인스턴스 단위隔离)
  • TLS 통신 설정 개별 관리 가능

방안 2: 물리적/가상 서버 분리 (더 안전한 방법)

text
서버 A (JDK 1.8 환경)
└── 중요 서비스 전용

서버 B (JDK 21 환경)  
└── 일반 서비스 + TLS 1.3 적용 서비스

장점:

  • 완전한 독립성 보장
  • 리소스 경합 없음
  • JEUS 버전도 각각 최적화 가능

🔧 실질적 구현을 위한 체크리스트

1️⃣ JEUS 호환성 확인

bash
# 현재 JEUS 버전 확인
cat $JEUS_HOME/version.txt

# TmaxSoft 고객지원 포털에서 JDK 21 지원 여부 확인

2️⃣ JDK 21 설치 및 환경 구성

  • JDK 21 설치는 독립적 디렉토리에 (예: /usr/lib/jvm/jdk-21)
  • 각 JEUS 인스턴스마다 다른 JAVA_HOME 지정
  • 환경 변수 분리 (jeus.properties 또는 시작 스크립트)

3️⃣ Tibero JDBC 드라이버 호환성

xml
<!-- Tibero 6 이상 필요, JDBC 드라이버 버전 확인 -->
<driver-class>com.tibero.jdbc.TiberoDriver</driver-class>
<!-- JDK 21 호환 드라이버로 교체 필수 -->

4️⃣ Tmax 프레임워크 호환성

  • Tmax 버전 확인 후 JDK 21 지원 여부 검증
  • 특히 javax.*  jakarta.* 패키지 변환 영향 검토

5️⃣ TLS 1.3 설정 차별화

JDK 21 서버 (TLS 1.3 자동 활성화):

xml
<!-- jeusmain.xml 또는 domain.xml -->
<ssl>
    <protocol>TLSv1.2,TLSv1.3</protocol>
</ssl>

JDK 1.8 서버 (TLS 1.2까지만):

xml
<ssl>
    <protocol>TLSv1.2</protocol>  <!-- TLS 1.3 불가 -->
</ssl>

📊 통신 시나리오별 가능 여부

 
시나리오가능 여부비고
JDK 1.8 서비스 ↔ JDK 21 서비스 (내부 통신) ✅ 가능 HTTP/RMI 통신, 하위 호환성 보장
JDK 1.8 서비스 ↔ 외부 TLS 1.3 API ❌ 불가 JDK 1.8은 TLS 1.3 클라이언트 불가
JDK 21 서비스 ↔ 외부 TLS 1.3 API ✅ 가능 기본 지원
동일 JEUS 인스턴스 내 JDK 혼용 ❌ 불가 WAS 인스턴스 단위로 JDK 고정 필요
Tibero DB 연결 ✅ 가능 JDBC 드라이버만 호환되면 OK

🚨 주의사항

  1. JDK 21은 JEUS 공식 지원 대상이 아닐 수 있음
    • 반드시 TmaxSoft에 확인 필수 (영업대표 또는 기술지원)
    • 미지원 시 JDK 11을 고려 (TLS 1.3은 JDK 11도 지원함)
  2. 데이터 포맷 호환성
    • JDK 1.8과 21 간 직렬화(Serialization) 호환성 문제 가능
    • 세션 클러스터링 사용 시 반드시 테스트 필요
  3. 운영 복잡성 증가
    • 배포 파이프라인 분리
    • 로그 수집 및 모니터링 이중화
    • 장애 대응 프로세스 복잡도 상승
  4. 라이선스 이슈
    • JDK 21 LTS는 2026년 9월까지 무료
    • 이후 유료화 시 Oracle Java SE 구독 필요

💡 최종 권장사항

단기적 전략 (당장 TLS 1.3 도입 긴급):

  1. 중요 서비스는 JDK 1.8 유지 (안정성 우선)
  2. 일반 서비스는 JDK 11로 우선 전환 (JEUS 공식 지원)
  3. JDK 11도 TLS 1.3 지원하므로 목표 달성 가능

중장기적 전략 (2026년 이후 고려):

  1. JEUS 버전을 JDK 21 지원 버전으로 업그레이드
  2. 모든 서비스를 JDK 21로 통일
  3. TLS 1.3 + 최신 보안 기능 완전 활용

당장 실행 액션:

  1. TmaxSoft에 현재 JEUS 버전의 JDK 21 지원 여부 문의
  2. 지원 불가시 JDK 11 도입 검토
  3. 중요/일반 서비스 구분 기준 문서화
  4. 파일럿 환경에서 병행 구성 테스트

혹시 현재 사용 중인 JEUS의 정확한 버전을 알 수 있을까요? (예: JEUS 7 Fix#2, JEUS 8.5 등)
해당 버전에 맞춰 더 구체적인 병행 구성 가이드를 제공해 드릴 수 있습니다.

728x90