java
-
[Spring Cloud Gateway][업그레이드] locator만 다를 때 route id collision과 locator enabled 설정을 어떤 smoke test로 분리하나백엔드/Java 2026. 8. 13. 09:16
IT 리서치 노트 [Spring Cloud Gateway][업그레이드] locator만 다를 때 route id collision과 locator enabled 설정을 어떤 smoke test로 분리하나 Spring Cloud Gateway 업그레이드에서 discovery locator 분기까지 좁혔는데도 실제 route 결과가 계속 어긋나는 순간이 있다. 2026년 8월 13일 기준 Spring 공식 문서를 다시 보면 locator는 명시적으로 enabled를 켜야 하고, appendix는 generated route ID가 prefix와 serviceId로 만들어진다고 설명하며, actuator API는 /actuator/gateway/routes로 현재 route dump를 확인할 수 있다고 보..
-
[Java][업그레이드] JDK 26에서 jdk.NativeLibraryLoad에 임시 추출 경로만 남을 때 실제 native owner를 어떻게 좁히나기타개발지식/풀스택개발 2026. 7. 29. 20:20
IT 리서치 노트 [Java][업그레이드] JDK 26에서 jdk.NativeLibraryLoad에 임시 추출 경로만 남을 때 실제 native owner를 어떻게 좁히나 JDK 26으로 올린 뒤 JFR의 jdk.NativeLibraryLoad 이벤트를 보면, 가끔 원래 JAR 이름이 아니라 임시 추출 경로만 남는 경우가 있다. 이때 가장 흔한 실수는 temp path를 곧바로 실제 owner처럼 읽는 것이다. 2026년 7월 29일 기준 Oracle 공식 문서를 다시 보면 System.loadLibrary는 restricted method이고, 일부 Java native packaging은 런타임에 JAR 안 native libraries를 임시 디렉터리로 자동 추출한 뒤 거기서 JVM에 load할..
-
[Java][업그레이드] JDK 26에서 jnativescan 결과와 jdk.NativeLibraryLoad 이벤트가 다를 때 shaded JAR와 transitive native loader를 어디부터 의심하나기타개발지식/풀스택개발 2026. 7. 29. 09:20
IT 리서치 노트 [Java][업그레이드] JDK 26에서 jnativescan 결과와 jdk.NativeLibraryLoad 이벤트가 다를 때 shaded JAR와 transitive native loader를 어디부터 의심하나 JDK 26으로 올린 뒤 native access warning을 줄이려고 jnativescan과 JFR의 jdk.NativeLibraryLoad 이벤트를 함께 보기 시작하면, 두 결과가 서로 안 맞는 순간이 온다. 2026년 7월 29일 기준 Oracle JDK 문서는 jnativescan을 정적 스캔 도구로, jdk.NativeLibraryLoad를 런타임 로드 추적용 이벤트로 설명한다. 이 글은 jnativescan 결과와 JFR 이벤트가 다를 때 shaded JAR와..
-
[Java][업그레이드] JDK 26에서 Automatic-Module-Name이 있는 JNI JAR를 module path로 옮길 때 split package와 native access 범위를 어떤 순서로 줄이나백엔드/Java 2026. 7. 24. 09:17
IT 리서치 노트 [Java][업그레이드] JDK 26에서 Automatic-Module-Name이 있는 JNI JAR를 module path로 옮길 때 split package와 native access 범위를 어떤 순서로 줄이나 JDK 26으로 올린 뒤 JNI 경고를 급히 끄느라 `--enable-native-access=ALL-UNNAMED`를 남겨 두는 팀이 많다. 하지만 2026년 7월 23일 기준 Oracle 문서를 다시 보면, native 사용 JAR를 좁히고 automatic module 이름을 확인한 뒤 module path 기반으로 범위를 줄이는 편이 훨씬 안전하다. 이 글은 Automatic-Module-Name이 있는 JNI JAR를 module path로 옮길 때 split p..
-
[Java][업그레이드] JDK 26에서 jnativescan으로 JNI 의존 JAR를 찾을 때 restricted method와 native 선언을 같이 읽는 법백엔드/Java 2026. 7. 23. 09:17
IT 리서치 노트 [Java][업그레이드] JDK 26에서 jnativescan으로 JNI 의존 JAR를 찾을 때 restricted method와 native 선언을 같이 읽는 법 JDK 26에서 native access warning을 좁히려면 결국 어느 JAR가 JNI나 restricted method를 쓰는지 먼저 알아야 한다. 2026년 7월 22일 기준 Oracle migration guide는 이를 위해 `jnativescan`과 JFR의 `jdk.NativeLibraryLoad` 이벤트를 함께 제시한다. 이 글은 `jnativescan`으로 정적 후보를 찾고, restricted method와 `native` 선언을 서로 다른 의미로 읽어 실제 owner triage까지 연결하는 방법을..
-
[Java][업그레이드] JDK 26 final field mutation debug와 JFR을 같이 볼 때 serializer·ORM·test utility owner를 어떤 필드로 가르나백엔드/Java 2026. 7. 23. 09:17
IT 리서치 노트 [Java][업그레이드] JDK 26 final field mutation debug와 JFR을 같이 볼 때 serializer·ORM·test utility owner를 어떤 필드로 가르나 JDK 26의 final field mutation warning을 처음 보면 많은 팀이 '라이브러리에서 뭔가 반사(reflection)를 쓰나 보다' 정도로만 끝낸다. 하지만 2026년 7월 22일 기준 Oracle과 OpenJDK 문서를 다시 보면, JDK는 이미 owner를 좁히는 두 도구를 준다. `--illegal-final-field-mutation=debug`는 모든 mutation stack trace를 남기고, JFR은 `jdk.FinalFieldMutation` 이벤트로 fie..
-
[Java][업그레이드] JDK 26에서 module path로 옮길 때 enable-native-access 범위를 ALL-UNNAMED에서 어떻게 줄이나백엔드/Java 2026. 7. 23. 09:17
IT 리서치 노트 [Java][업그레이드] JDK 26에서 module path로 옮길 때 enable-native-access 범위를 ALL-UNNAMED에서 어떻게 줄이나 JDK 26에서 native access warning을 없애려고 `--enable-native-access=ALL-UNNAMED`를 넣는 순간은 많다. 하지만 2026년 7월 22일 기준 Oracle JDK 26 문서를 다시 읽어 보면, 이 옵션은 출발점이지 도착점이 아니다. Oracle은 관련 JAR를 module path로 옮겨 더 선택적으로 열라고 권한다. 이 글은 class path 전체 허용에서 module 단위 허용으로 어떻게 줄여 가는 편이 실무적으로 안전한지 정리한다. 목차 개요 어디서 실제로 막..
-
[Java][업그레이드] JDK 26 final field mutation 경고가 뜰 때 애플리케이션 코드와 라이브러리 원인을 로그에서 먼저 가르는 법백엔드/Java 2026. 7. 22. 20:14
IT 리서치 노트 [Java][업그레이드] JDK 26 final field mutation 경고가 뜰 때 애플리케이션 코드와 라이브러리 원인을 로그에서 먼저 가르는 법 JDK 26에서 final field mutation 경고를 처음 보면 옵션 이름부터 눈에 들어온다. 하지만 2026년 7월 22일 KST 기준 Oracle JDK 26 문서를 다시 읽어 보면, 더 먼저 해야 할 일은 옵션 선택이 아니라 원인 소유자 분리다. 이 글은 경고가 떴을 때 애플리케이션 reflection 코드인지, 서드파티 라이브러리인지, 테스트 전용 유틸리티인지 로그와 스택 기준으로 먼저 가르는 순서를 정리한다. 목차 개요 어디서 실제로 막히는가 실무에서 적용하는 순서 공식 문서와 예시 화면으로..