프로그래밍 언어/JAVA 23

[명령어] JDK 제공 툴

소스/클래스 파일 툴 java, javac, javadoc, javah, javap, apt 기타 코어 툴 extcheck, jar, native2ascii, rmiregistry, serialver, rmic, rmid AWT 툴 appletviewer 보안 관련 툴 keytool, policytool, jarsigner Serviceability 툴 jconsole, jcontrol, jrunscript, jsadebugd, jdb, jhat, jinfo, jmap, jps, jstack, jstat, jstatd 1. 소스/클래스파일 툴 java : 자바 런타임 javac : 자바 컴파일러 javadoc : 소스 코드의 문서 주석에서 API javadoc 유형 문서를 생성 javah : Java 클..

[정보] Java SSL 관련 시스템 프로퍼티 (-D)

JVM 기동 시에 시스템 프로퍼티로 SSL 관련 옵션을 설정합니다. 즉, 프로그램을 실행할 때 설정하거나(java -D....) System.setProperty를 수행하여 코드에서 설정할 수 있습니다. 관련 옵션은 다음과 같습니다. javax.net.ssl.keyStore - 애플리케이션 프로세스의 자체 인증서 및 개인 키를 포함하는 Java 키 저장소 파일의 위치입니다. Windows에서 지정된 경로 이름은 백슬래시 대신 슬래시(/)를 사용해야 합니다. javax.net.ssl.keyStorePassword - javax.net.ssl.keyStore에 지정된 키 저장소 파일에서 개인 키에 액세스하기 위한 비밀번호입니다. 이 암호는 두 번 사용됩니다: 키 저장소 파일 잠금 해제(암호 저장) 및 키 저..

[정보] Java Mission Control(JMC) 이해

(원문) https://www.prosysopc.com/blog/using-java-mission-control-for-performance-monitoring/ 개요 Oracle Java Mission Control은 Java 애플리케이션을 관리, 모니터링, 프로파일링 및 문제 해결하기 위한 도구 모음입니다. Oracle Java Mission Control은 버전 7u40부터 표준 Java SDK에 포함되었습니다. JMC는 JMX Console과 Java Flight Recorder로 구성됩니다. 더 많은 플러그인을 Mission Control 내에서 쉽게 설치할 수 있습니다. JMC는 Eclipse IDE에도 설치할 수 있습니다. Java Mission Control은 JMX를 사용하여 원격 Jav..

[정보] 오라클, 자바 20 출시 - Java 20(Oracle JDK 20)

오스틴, 텍사스주 , 2023년 3월 21일 /PRNewswire/ -- 오라클은 오늘 세계 최고의 프로그래밍 언어 및 개발 플랫폼의 최신 버전인 Java 20 의 출시를 발표했습니다Java 20(Oracle JDK 20)은 개발자가 생산성을 향상하고 조직 전체에서 혁신과 성장을 주도하는 데 도움이 되는 플랫폼 향상을 포함하여 수천 가지의 성능, 안정성 및 보안 개선 사항을 제공합니다. 오라클은 3월 20일부터 23일까지 캘리포니아 레드우드 쇼어스에서 온라인으로 진행되는 Oracle DevLive Level Up 이벤트에서 오늘 열리는 Java Developer Day에서 Java 20의 최신 기능을 선보입니다. 최신 JDK(Java Development Kit)는 7개의 JEP(JDK Enhanceme..

[트러블슈팅] 자주 발생하는 Full GC

(원문) https://poonamparhar.github.io/frequent_full_gc/ Java 애플리케이션의 최적 성능은 빈번한 전체 가비지 수집 주기로 인해 심각하게 방해받을 수 있습니다. 이 게시물에서는 반복되는 Full GC로 이어질 수 있는 몇 가지 상황과 이를 인식하고 처리하는 방법에 대해 설명합니다. 전체 GC가 자주 발생하는 주요 원인 중 하나는 애플리케이션의 JVM 관리 메모리 공간이 잘못 구성되었기 때문입니다. Java 힙의 크기가 Java 객체의 라이브 세트보다 작거나 Metaspace가 너무 작게 구성되었을 수 있습니다. Misconfiguration of Memory Spaces Java 힙, 특히 이전 세대의 사용률과 Metaspace를 모니터링하여 이러한 공간에 대한 ..

[정보] JVM 아키텍처

(원문) https://dzone.com/articles/jvm-architecture-explained 모든 Java 개발자는 바이트코드가 JRE(Java Runtime Environment)에 의해 실행된다는 것을 알고 있습니다. 그러나 많은 사람들이 JRE가 바이트코드를 분석하고 코드를 해석하고 실행하는 JVM(Java Virtual Machine)의 구현이라는 사실을 모르고 있습니다. 코드를 보다 효율적으로 작성할 수 있게 해주는 JVM의 아키텍처를 아는 것은 개발자로서 매우 중요합니다. 이 기사에서는 Java의 JVM 아키텍처와 JVM의 다양한 구성 요소에 대해 자세히 알아볼 것입니다. 1. JVM 이란? VM은 물리적 머신의 소프트웨어 구현입니다. Java는 VM에서 실행되는 WORA(Writ..

[툴] 이클립스 MAT(Memory Analyzer)

(다운로드) http://www.eclipse.org/mat/ (매뉴얼) https://www.eclipse.org/mat/documentation/ (동영상) https://vimeo.com/21356498 MAT 실행 시에 MemoryAnalyzer.ini 파일에서 Heap 크기를 여유있게 설정 후에 실행해야 합니다. 문서는 아래 URL을 참고하여 작성한 내용입니다. (참고URL) https://help.eclipse.org/latest/index.jsp?topic=/org.eclipse.mat.ui.help/welcome.html 1. 힙덤프 파일 열기 "File > Open Heap Dump... " 메뉴를 통해 힙덤프 파일을 오픈합니다. 오른쪽에는 덤프의 크기와 클래스, 객체 및 클래스 로더의 ..

[정보] 힙덤프(HeapDump) 이해

1. 힙 덤프(Heap Dump) 란? 클래스의 인스턴스를 생성하여 Java 객체를 생성할 때마다 항상 힙이라는 영역에 배치됩니다. Java 런타임의 클래스도 이 힙에서 생성됩니다. JVM이 시작될 때 힙이 생성됩니다. 애플리케이션에서 생성되거나 소멸된 개체를 수용하기 위해 런타임 동안 확장되거나 축소됩니다. 힙이 가득 차면 더 이상 참조되지 않는(즉, 더 이상 사용되지 않는) 개체를 수집하기 위해 가비지 수집 프로세스(Garbage Collector Process)가 실행됩니다. 힙 덤프에는 Java 힙에서 실행 중인 Java 애플리케이션이 사용 중인 모든 활성 객체(Objects)의 스냅샷이 포함됩니다. 주소, 유형, 클래스 이름 또는 크기와 같은 각 개체 인스턴스에 대한 자세한 정보와 인스턴스에 다..

[Tips] Java에서 -XX:+PrintFlagsFinal 옵션

JVM에서 사용하는 기본 옵션을 알고 싶다면 "-XX:+PrintFlagsFinal" 옵션을 사용하여 출력할 수 있습니다. 예) java -XX:+PrintFlagsFinal -version [Global flags] int ActiveProcessorCount = -1 {product} {default} uintx AdaptiveSizeDecrementScaleFactor = 4 {product} {default} uintx AdaptiveSizeMajorGCDecayTimeScale = 10 {product} {default} uintx AdaptiveSizePolicyCollectionCostMargin = 50 {product} {default} uintx AdaptiveSizePolicyInit..

[Tips] 스레드 덤프 분석 툴/사이트

1. ThreadLogic (다운로드) https://github.com/sparameswaran/threadlogic/releases (실행예시) $ java -jar ThreadLogic-2.5.2.jar 2. IBM Thread and Monitor Dump Analyzer for Java (TMDA) (다운로드) https://www.ibm.com/support/pages/ibm-thread-and-monitor-dump-analyzer-java-tmda (실행예시) $ java -jar jca4614.jar 3. Fast Thread (사이트) https://fastthread.io (실행예시) 스레드 덤프 파일 업로드 후 분석