JAVA · 성능/JVM
성능 최적화 체크리스트
Java 애플리케이션 성능 최적화의 종합 체크리스트입니다.
성능/JVM고급체크리스트최적화종합모범사례
핵심 설명
Java 애플리케이션 성능 최적화의 종합 체크리스트입니다.
Java code
public class PerformanceChecklist {
public static void main(String[] args) {
System.out.println("=== Java 성능 최적화 체크리스트 ===");
System.out.println("\n[JVM 설정]");
System.out.println("- Xms = Xmx (힙 크기 고정)");
System.out.println("- 적절한 GC 선택 (G1/ZGC)");
System.out.println("- HeapDumpOnOutOfMemoryError 활성화");
System.out.println("- JFR 상시 활성화 (1% 미만 오버헤드)");
System.out.println("\n[코드 레벨]");
System.out.println("- 컬렉션 초기 용량 지정");
System.out.println("- 루프에서 오토박싱 방지");
System.out.println("- 불필요한 객체 생성 최소화");
System.out.println("- Stream은 간결성 우선, 핫 경로는 for-loop");
System.out.println("- Pattern 컴파일 캐싱");
System.out.println("\n[동시성]");
System.out.println("- 스레드 풀 크기: CPU*2+1 (CPU 바운드)");
System.out.println("- I/O 바운드: Virtual Thread 사용");
System.out.println("- ConcurrentHashMap > synchronizedMap");
System.out.println("- Lock 경합 최소화");
System.out.println("\n[I/O]");
System.out.println("- 커넥션 풀 적정 크기");
System.out.println("- 배치 처리 (JDBC batch)");
System.out.println("- 로컬 캐시 (Caffeine)");
System.out.println("- 비동기 I/O 활용");
System.out.println("\n[측정]");
System.out.println("- JMH로 마이크로벤치마크");
System.out.println("- JFR/JMC로 프로파일링");
System.out.println("- Micrometer + Prometheus 모니터링");
System.out.println("- 변경 전후 반드시 측정");
}
}학습 팁
최적화의 첫 번째 규칙: 측정하기 전에 최적화하지 마세요. 두 번째 규칙: 아직 측정하지 마세요. 진짜 병목을 찾은 후에 최적화하세요.
주의할 점
성급한 최적화는 가독성을 해칩니다. 프로파일러로 확인된 핫스팟(상위 20%)에만 최적화를 적용하세요. 80/20 법칙을 기억하세요.
자주 묻는 질문
성능 최적화 체크리스트란 무엇인가요?
Java 애플리케이션 성능 최적화의 종합 체크리스트입니다.
성능 최적화 체크리스트 학습 시 주의할 점은 무엇인가요?
성급한 최적화는 가독성을 해칩니다. 프로파일러로 확인된 핫스팟(상위 20%)에만 최적화를 적용하세요. 80/20 법칙을 기억하세요.