Java 기초 문법과 핵 개념 정리
Java의 설계 목표
단순성
객체 지향
분산 환경 지원
강건성
보안성
아키텍처 중립
높은 이식성
바이트코드 해석 실행
른 실행 성능
멀티스레드
동적 성질
번째 Java 프로그램
public class Intro {
public static void main(String[] args) {
System.out.println("Java 기초 학습 시작");
}
}
프로그램 구성 요소:
public: 접근 제어자로, 외부에서 ...
9월 10일 21:23에 게시됨
JVM 네이티브 메모리 추적을 통한 메모리 사용 분석
네이티브 메모리란?
네이티브 메모리는 운영체제가 프로세스에 직접 할당하는 물리적 또는 가상 메모리 영역을 의미한다. 자바 애플리케이션은 JVM 내에서 실행되며, 이는 힙(Heap)과 같은 관리 메모리 외에도 VM 내부 구조 및 네이티브 코드를 위해 별도의 시스템 메모리를 사용한다. 이러한 비관리형 메모리는 자바 힙 덤프나 GC 로그로는 확인할 수 없으므로, 성능 문제 ...
9월 9일 22:21에 게시됨
JVM 가비지 컬렉션(GC)의 메커니즘과 주요 알고리즘 분석
가비지 컬렉션의 핵심 개념과 특징
가비지 컬렉션(Garbage Collection, GC)은 자바 가상 머신(JVM)이 프로그램에서 더 이상 사용하지 않는 메모리를 자동으로 탐지하여 해제하는 프로세스입니다. 개발자가 명시적으로 메모리를 해제할 필요가 없어 생산성이 높고 메모리 누수 위험이 줄어들지만, 제어할 수 없는 실행 타이밍과 'Stop-the-World'로 인한 성능 오버헤드라는 ...
9월 4일 03:31에 게시됨
자바 풀스택 개발 면접 기술 가이드: 백엔드, 프론트엔드 및 아키텍처
자바 핵심 기능 및 JVM 메모리 모델
최신 자바 개발 환경에서 Java 8 이후 도입된 기능들은 필수적인 지식으로 간주됩니다. 특히 람다 표현식(Lambda Expressions), 함수형 인터페이스, Stream API는 컬렉션 데이터 처리를 간결하게 만들며, 병렬 스트림을 통한 성능 향상도 가능합니다. 또한 Optional 클래스는 NullPointerException을 예방하는 데 유용하게 활용됩니다.
...
9월 3일 12:41에 게시됨
Tomcat 성능 분석 및 최적화를 위한 10가지 핵심 지표
Tomcat 성능 테스트의 핵심 지표와 실질적 최적화 전략
Apache Tomcat은 자바 웹 애플리케이션을 배포하는 대표적인 오픈소스 서블릿 컨테이너로, 시스템의 응답성과 안정성에 직접적인 영향을 미칩니다. 본 문서는 실제 운영 환경에서 유의미한 성능 개선을 가능하게 하는 10가지 주요 지표를 중심으로 분석하고, 각 지표에 따른 구체적인 조정 방안을 제시합니다.
초당 ...
8월 12일 14:19에 게시됨
Java 클래스 초기화 순서: 정적 블록, 인스턴스 초기화 블록, 생성자의 실행 메커니즘
생성자 (Constructor)
생성자는 객체가 메모리에 생성될 때 자동으로 호출되는 특수한 메서드입니다. 주요 목적은 객체의 초기 상태를 설정하는 것이며, 객체 하나당 정확히 한 번만 실행됩니다. 반면 일반적인 메서드는 객체가 존재하는 동안 여러 번 호출될 수 있습니다.
public class UserAccount {
// 생성자
public UserAccount() {
System.out.print ...
8월 3일 15:32에 게시됨
Java 애플리케이션 진단을 위한 강력한 JVM 분석 도구, Arthas
Arthas는 알리바바(Alibaba)에서 오픈소스로 공개한 Java 진단 도구로, 운영 중인 서비스의 가동을 중단하지 않고도 실시간으로 JVM의 상태를 확인하거나 코드를 분석할 수 있는 기능을 제공합니다. 복잡한 마이크로서비스 환경이나 직접적인 디버깅이 어려운 운영 환경에서 발생하는 다양한 기술적 난제를 해결하는 데 최적화되어 있습니다.
Arthas가 해결하는 주요 시나 ...
7월 31일 17:53에 게시됨
JVM 심층 분석: 아키텍처, 메모리 및 가비지 컬렉션
1. JVM 아키텍처 개요
자바 가상 머신(JVM)은 자바 애플리케이션의 핵심 실행 환경입니다. 운영체제 위에서 동작하며 하드웨어와 직접 상호작용하지 않습니다. JVM은 클래스 로더, 런타임 데이터 영역, 실행 엔진 등 여러 서브시스템으로 구성되어 자바 바이트코드를 실행합니다.
1.1. 클래스 로더 (ClassLoader)
클래스 로더는 .class 파일을 JVM 메모리 영역으로 로드하 ...
7월 30일 20:15에 게시됨
Prometheus와 Grafana를 활용한 자바 애플리케이션 모니터링
Prometheus 아키텍처
Prometheus는 모니터링 및 경고 시스템으로 다음과 같은 핵심 구성 요소를 가집니다:
서버: 시계열 데이터 수집 및 저장
클라이언트 라이브러리: 애플리케이션 통합용 (Micrometer 등)
Push Gateway: 일시적 서비스 데이터 수집
익스포터: MySQL/Kafka 등 외부 서비스 모니터링
경고 관리자: 웹훅 통합 경고 시스템
Micrometer 지표 수집 ...
7월 23일 19:14에 게시됨
JVM 메모리 할당 및 객체 생존 전략
JVM 힙 메모리 구조
Java 가상 머신(JVM)의 메모리 관리는 자바 애플리케이션의 성능과 안정성에 매우 중요합니다. 효율적인 메모리 할당과 객체 승격 메커니즘은 가비지 컬렉션(GC) 빈도를 줄이고 메모리 사용 효율을 높여 전체 프로그램 성능을 향상시킵니다. 여기서는 JVM의 메모리 할당 전략과 객체 승격 메커니즘을 심층적으로 다룹니다.
JVM의 힙 메모리는 주로 영( ...
7월 21일 22:03에 게시됨