[Modern Backend] 강좌의 Part 1 여덟 번째 시간의 두 번째 강의, "문법 & 성능 개선 (2)" 이론 및 원리 편입니다.
이번 강의에서는 Java 25의 유연한 생성자 본문(Flexible Constructor Bodies)이 동작하는 엄격한 규칙과 초기화 순서, 그리고 컴팩트 객체 헤더(Compact Object Headers) 설정 및 Java 25 성능 최적화의 다각적 접근 방식을 다룹니다.
📌 주요 학습 내용:
-
생성자 첫 문장 제약(super/this)의 한계와 유연한 생성자(Flexible Constructor)의 등장
-
프롤로그(Prologue) 영역의 역할: 부모 생성자 호출 전 파라미터 유효성 검증 및 사전 가공 로직 응집
-
프롤로그 영역의 엄격한 스펙 규칙:
-
허용: 파라미터 유효성 검증/예외 발생, 로컬 변수 연산, 자신의 인스턴스 필드 초기값 대입
-
금지: 인스턴스 필드 읽기, 인스턴스 메서드 호출, this 참조 외부 유출, 비정적 내부 클래스 생성
-
상속 구조에서의 초기화 순서 함정(상위 생성자 내 오버라이딩 메서드 호출)과 프롤로그 필드 초기화의 동작 차이
-
컴팩트 객체 헤더(Compact Object Headers, JEP 519) 활성화 플래그
-XX:+UseCompactObjectHeaders) 및 실제 적용 여부 검증 커맨드 -
Java 25 성능 개선의 경계와 분류:
-
시간 축(기동 시간/웜업 단축 - AOT 캐시, 추후 Part 3 GraalVM에서 연계)
-
메모리 축(힙 메모리 점유율 절감, GC 빈도/STW 감소, 장기적 처리량 향상)
-
백엔드 엔지니어 관점의 성능 병목 진단(기동 시간 vs 힙 메모리/GC 부하) 기준 정립
언어 문법의 유연성과 JVM 레벨의 메모리 튜닝 원리를 깊이 있게 이해해 보세요.