
JVM 위에서 실행되는 Java는 메모리 구조를 명확히 이해해야 성능/안정성 문제를 잡기 쉽다.특히 Memory Leak은 Java는 GC가 있어서 메모리 누수 안 생긴다는 오해를 깨야 할 중요한 주제이다.이 글에서는 JVM의 메모리 구조를 먼저 살펴보고, 메모리 누수

최근 면접에서 Java가 어떻게 실행되는지 컴파일 과정을 질문 받았다.나는 "Java 가 실행될 때 .java 파일이 .class 로 번역되고 JVM 의 클래스로더가 실행시킨다."정도로 답했지만, 솔직히 말하면 답변을 하면서도 내 설명이 부족하다는 걸 느꼈다. 그리고

이전에 JVM의 구조와 동작 과정을 정리하면서, 클래스 로더에 대해 더 깊이 알아보고 싶다는 생각이 들었다. 클래스 로더는 JVM이 프로그램을 실행하기 전에 필요한 클래스를 메모리로 불러오는 역할을 한다.이번 글에서는 클래스 로더 시스템이 무엇인지, 그리고 어떤 방식으

0. 들어가며 런타임 데이터 영역이란 무엇인가? JVM이 실행 중에 메모리를 어떻게 구분해서 사용하는지 1. 런타임 데이터 영역 전체 구조 런타임 데이터 영역 개요 JVM 메모리 구조 한눈에 보기 (Heap, Stack, Method Area, etc.) 2.

애플리케이션 레벨에서 부하 테스트와 쿼리 튜닝을 진행하면서 APM 도구로 병목 지점을 모니터링하던 중, 애플리케이션이 처음 실행될 때 예측하지 못한 지표들이 포착되었다.특히 테스트 초반에는 동일한 조건임에도 불구하고 응답 속도가 눈에 띄게 느렸음.이 현상의 원인을 파악