공공부하자개발 · 영어 학습 노트
자바
실무 확장Excel · 파일 업로드 · DB 연동0/22 완료
  • 01Excel(XLSX) 구조와 순수 JDK로 읽기/쓰기
  • 02Apache POI로 Excel 업로드/다운로드
  • 03파일 업로드/다운로드 서버 (HttpServer)
  • 04JDBC 기초와 트랜잭션 (H2)
  • 05MyBatis 어노테이션 매퍼로 쿼리 연동
  • 06MyBatis XML 매퍼 · Oracle 방언 · PageHelper · Spring Boot
  • 07REST API 서버와 JSON
  • 08Vue 3 SPA 와 Java 서버 연동
  • 09@Scheduled 운영
  • 10로깅 실무: 레벨·계층, MDC 추적, 예외·성능, 마스킹, 롤링, JSON 로그
  • 11외부 API 연동
  • 12테스트 실무
  • 13암호화·개인정보 보호
  • 14인코딩·한글 실무
  • 15@Transactional 심화
  • 16긴 작업 비동기 처리와 진행률
  • 17SFTP·FTP 파일 연계
  • 18로컬 캐시와 @Cacheable
  • 19메일·알림 발송
  • 20웹 보안 체크리스트
  • 21빌드 도구와 폐쇄망 의존성 반입
  • 22성능 측정: p50·p95·p99, 측정 계층, JFR, JMH 함정, 자체 부하 테스트, 병목 순위
사이트 소개개인정보처리방침연락처
© 2026 공부하자
홈 › 실무 확장 › 22 / 22

성능 측정: p50·p95·p99, 측정 계층, JFR, JMH 함정, 자체 부하 테스트, 병목 순위

섹션 7진행 0 / 22
1왜 배우는가2핵심 원리3코드 예제4응용 변형 예제5자주 하는 실수 (Tip)6연습 문제7정리‹ 이전다음 ›

5. 자주 하는 실수 (Tip)

실수 1: 평균 응답 시간만 보고 정상이라 판단한다

평균은 소수의 매우 느린 요청을 희석시킵니다. p95·p99 를 반드시 함께 봅니다.

실수 2: 워밍업 없이 nanoTime 으로 한 번 재고 결론짓는다

콜드 상태와 JIT 컴파일 후 상태는 수 배에서 수십 배 차이 납니다. 최소 수백 회 워밍업 후 측정합니다.

실수 3: GC 부터 의심해 힙 크기를 키운다

2.8절의 병목 순위에서 GC 는 마지막입니다. N+1 쿼리·인덱스 부재부터 확인합니다.

실수 4: spring.jpa.show-sql 만 켜고 바인딩 값을 못 본다

실제 실행되는 값이 안 보이면 실행 계획을 재현할 수 없습니다. p6spy 나 MyBatis 로그로 바인딩 값을 함께 남깁니다.

실수 5: 부하 테스트를 램프업 없이 한 번에 쏜다

시작 직후에는 커넥션 풀·JIT 워밍업이 안 되어 있어 초반 결과가 실제보다 나쁘게 나옵니다. 서서히 늘려 안정 구간의 수치를 봅니다.

실수 6: 개선 전 수치를 남기지 않고 코드부터 고친다

"전" 데이터가 없으면 "후"가 정말 나아졌는지 비교할 수 없습니다. 고치기 전에 반드시 먼저 측정합니다.

실수 7: 운영 서버에서 프로파일러를 켜는 것을 두려워한다

JFR 오버헤드는 1~2% 로 작습니다. 문제가 재현될 때만 기다리며 끄고 켜기를 반복하다 정작 장애 순간을 놓치는 것이 더 큰 손해입니다.

자주 하는 실수 (Tip)
  • 실수 1: 평균 응답 시간만 보고 정상이라 판단한다
  • 실수 2: 워밍업 없이 nanoTime 으로 한 번 재고 결론짓는다
  • 실수 3: GC 부터 의심해 힙 크기를 키운다
  • 실수 4: spring.jpa.show-sql 만 켜고 바인딩 값을 못 본다
  • 실수 5: 부하 테스트를 램프업 없이 한 번에 쏜다
  • 실수 6: 개선 전 수치를 남기지 않고 코드부터 고친다
  • 실수 7: 운영 서버에서 프로파일러를 켜는 것을 두려워한다
이전 섹션4 응용 변형 예제5 / 7다음 섹션6 연습 문제