APM
IT 위키
더 많은 작업
- Application Performance Management / Monitoring
- 애플리케이션의 응답 시간, 트랜잭션 흐름, 자원 사용량을 실시간으로 수집·분석하여 성능 문제를 찾아내고 관리하는 활동과 도구
- 운영 중인 애플리케이션의 성능 저하와 장애를 사용자보다 먼저 발견하고, 병목 지점을 코드·SQL 단위까지 추적하는 것이 목적이다.
- 대부분 애플리케이션(주로 WAS)에 에이전트를 설치하여 바이트코드 계측 등으로 데이터를 수집하고, 수집 서버와 대시보드로 보여 준다.
- 개발 단계에서는 성능 테스트 결과를 분석하는 도구로, 운영 단계에서는 애플리케이션 모니터링 도구로 쓴다.
정보처리기사 교재에서는 애플리케이션 모니터링 도구를 수집 방식에 따라 다음과 같이 나눈다.
| 유형 | 설명 | 예 |
|---|---|---|
| 리소스 측정 방식 | 서버와 네트워크 자원(CPU, 메모리, 디스크, 트래픽) 사용량을 측정 | Nagios, Zabbix, Cacti |
| 엔드투엔드(End-to-End) 방식 | 사용자 요청부터 애플리케이션 내부 처리, DB 호출까지 전 구간을 추적 | VisualVM, 제니퍼(Jennifer, 상용), 스카우터(Scouter) |
- 좁은 의미의 APM은 엔드투엔드 방식이다. Nagios, Zabbix, Cacti는 인프라(서버·네트워크) 모니터링 도구로 분류하는 것이 일반적이다.
| 도구 | 설명 |
|---|---|
| Scouter | LG CNS가 공개한 오픈소스 APM. Java 애플리케이션(WAS)과 호스트 자원을 모니터링한다. |
| Pinpoint | 네이버가 공개한 오픈소스 APM. 대규모 분산 시스템에서 서버 사이 호출 관계(서버 맵)와 트랜잭션을 추적한다. |
| Zabbix | 오픈소스 인프라 모니터링 도구. 서버, 네트워크 장비, 서비스 상태를 수집·경보한다. |
| VisualVM | JVM의 CPU·메모리·스레드 상태를 보는 프로파일링·모니터링 도구 |
정보처리기사 필기 출제기준(2026년 적용분과 2027~2029년 적용분 모두)에서는 '제품소프트웨어 패키징' 항목의 세세항목 '애플리케이션 모니터링 도구'로 다룬다. 비슷한 이름의 도구와 구분해 둔다.
- 소스 코드 품질 분석 도구(애플리케이션 성능 개선 항목): 정적 분석(PMD, Checkstyle, SonarQube, cppcheck), 동적 분석(Valgrind, Avalanche)
- 성능 테스트 도구: 가상 사용자로 부하를 주어 측정(JMeter, LoadUI, OpenSTA)
- 모니터링 도구(APM): 운영 중 성능과 자원 사용을 지속적으로 관찰
- 필기·실기 단답형: "애플리케이션 성능을 모니터링·관리하는 도구"의 약어로 APM을 묻는다.
- 리소스 측정 방식과 엔드투엔드 방식의 구분과 예시 도구
- 성능 테스트 도구(JMeter 등)와 모니터링 도구(Scouter, Pinpoint 등)의 구분