[One-Day Tech Talk] 프로파일링 툴과 APM툴의 차이는 무엇일까?

황제연·2025년 3월 4일
0

CS학습

목록 보기
22/193
post-thumbnail

서론

‘자바 성능 튜닝 이야기’ 책 2장을 읽으며 프로파일링 툴의 개념을 처음 접하게 되었습니다
프로파일링 툴이 무엇인지 정리하고, APM 툴과의 차이점을 비교해보겠습니다

프로파일링 툴

프로파일링 툴은 애플리케이션의 내부 동작을 소스 레벨에서 분석할 수 있도록 도와주는 도구입니다.

주요 특징

  • 애플리케이션의 세부 응답 시간, 메소드 실행 시간 등을 측정할 수 있습니다.
  • 객체, 클래스, 또는 소스 코드의 특정 라인 단위까지 메모리 사용량과 관련된 정보를 제공할 수 있습니다.
  • CPU 사용량, GC(Garbage Collection) 동작 등도 상세하게 분석할 수 있습니다.

사용처

  • 애플리케이션의 성능 저하 원인을 파악하거나, 병목 구간을 식별하기 위해 사용됩니다.
  • 주로 개발 및 테스트 환경에서 로컬로 실행하여 상세한 코드 레벨의 분석을 진행합니다.

대표적인 자바 프로파일링 툴

  • JProfilier,
  • VisualVM

APM 툴

APM(Application Performance Monitoring) 툴은 애플리케이션의 운영 환경에서 발생하는 장애 상황 및 성능 저하 문제를 모니터링하고 진단하는 도구입니다.

주요 특징

  • 사용자 수, 서버 리소스 사용량, 응답 시간, 트랜잭션 처리 등 애플리케이션 전반의 성능 데이터를 수집합니다.
  • 에이전트 기반으로 애플리케이션 내부에서 트랜잭션 추적, 요청 지연, DB 성능, 오류 발생 등 다양한 데이터를 수집하며, 이를 기반으로 문제를 진단합니다.
  • 단순 메트릭 수집을 넘어 Trace, 오류 분석 등 심층적인 분석 기능을 제공합니다.

사용처

운영 환경에서 애플리케이션의 안정성을 모니터링하고, 장애 발생 시 신속하게 원인을 분석하는 데 사용됩니다.

대표적인 APM 툴

  • DataDog
  • PinPoint
  • New Relic

APM툴과 단순 모니터링 툴 비교

책을 읽을 당시 APM 툴을 단순 모니터링 툴과 동일한 개념으로 이해했는데,
사실 둘의 개념은 엄밀히 다릅니다.

  • 단순 모니터링 툴은 기본적으로 시계열 메트릭이나 로그 데이터를 수집하는 데 초점을 맞춥니다.
    • 예시: Prometheus
    • 기능: 시스템의 리소스 사용량, 네트워크 트래픽 등 기초적인 데이터를 수집 및 시각화
  • APM 툴은 에이전트를 통해 트랜잭션 단위의 데이터, 요청 지연, DB 성능, 오류 발생 등 애플리케이션의 동작을 심층적으로 추적·분석합니다.
    • 기능: 단순 메트릭 수집을 넘어서 트랜잭션 추적, 오류 분석, 성능 병목 진단 등의 기능을 제공해야 APM 툴로 분류할 수 있습니다.

마무리

  • 프로파일링 툴은 개발자 환경에서 CPU 사용량, 메소드 실행 시간, GC 동작 등 심층적인 성능 분석을 위해 사용됩니다
  • APM 툴은 운영 환경에서 애플리케이션의 실시간 상태를 모니터링하고, 장애 상황 발생 시 원인을 빠르게 진단하기 위해 사용됩니다
  • 단순 메트릭 수집만을 목적으로 하는 모니터링 툴(Prometheus 등)과, 에이전트를 통한 트랜잭션 및 오류 분석 등 심층 진단 기능을 제공하는 APM 툴은 다른 개념입니다
profile
Software Developer

0개의 댓글