인스트루먼테이션
1. 개요
인스트루먼테이션은 프로그래밍에서 애플리케이션의 실행에 관한 정보를 수집하는 능력을 의미한다. 코드 추적, 디버깅 및 예외 처리, 프로파일링, 성능 카운터, 컴퓨터 데이터 로깅 등의 기능을 포함한다. 인스트루먼테이션은 실행 범위에 따라 정보 획득에 제한이 있으며, 일부 유형의 인스트루먼테이션은 실행 시간을 증가시킬 수 있다.
-
관리 시스템 -
윈도우 관리 도구
윈도우 관리 도구(WMI)는 관리 정보를 공유하고 시스템 관리 표준을 정의하며, 다양한 인터페이스를 통해 관리 작업을 용이하게 하는 마이크로소프트의 환경 독립적인 사양 집합이다. -
관리 시스템 -
비행 관리 시스템
비행 관리 시스템은 조종사가 입력한 비행 계획을 바탕으로 최적 경로를 계산하고 자동 비행 장치를 제어하여 연료 효율성을 높이고 안전 운항을 지원하는 핵심 항공 전자 장비이다. -
소프트웨어 최적화 -
성능 공학
성능 공학은 시스템의 비즈니스 수익 증대를 위해 정해진 시간 안에 트랜잭션을 처리하도록 보장하고, 시스템 개발 실패 및 유지보수 비용 증가를 방지하며, 성능 관리와 모니터링을 통해 서비스 수준 계약을 준수하도록 한다. -
소프트웨어 최적화 -
프로파일링 (컴퓨터 프로그래밍)
프로파일링(컴퓨터 프로그래밍)은 프로그램의 성능 분석 및 개선을 위한 기술로, 실행 시간 측정과 병목 현상 파악에 사용되며, 다양한 종류의 프로파일러가 존재한다. -
디버깅 -
스택 추적
스택 추적은 프로그램 실행 중 함수 호출 기록을 추적하여 오류 발생 시 디버깅 및 문제 해결에 필수적인 도구로, 호출 스택의 스택 프레임을 분석하여 프로그램 실행 경로를 파악하고 오류 원인을 추적하며 프로그램 안정성을 향상시키는 기술이다. -
디버깅 -
메모리 디버거
메모리 디버거는 메모리 접근, 할당, 해제를 모니터링하여 메모리 오류를 찾아내고 소프트웨어의 신뢰성을 높이는 도구이다.
2. 인스트루먼테이션의 기능
2.2. 디버깅 및 예외 처리
인스트루먼테이션은 개발 과정에서 애플리케이션의 프로그래밍 오류를 찾아내고 수정하는 데 사용된다. 구조화된 예외 처리를 포함한다.
2.3. 프로파일링
프로파일링은 입력을 가진 상태에서 실행하는 동안 동적으로 프로그램의 행위를 측정하는 것이다. 정적 프로그램 분석으로 제대로 파악하기 어려울 때 유용한 속성이다.
3. 한계
인스트루먼테이션은 실행 범위에 의해 제한된다. 프로그램 실행 시 특정 지점에 도달하지 못하면, 인스트루먼테이션은 해당 지점에 대한 정보를 얻을 수 없다. 예를 들어, 워드 프로세서가 인스트루먼트되었지만 사용자가 인쇄 기능을 사용하지 않으면, 인쇄 기능 관련 루틴에 대한 정보는 얻을 수 없다.
몇몇 인스트루먼테이션 유형은 실행 시간을 크게 늘릴 수 있어, 디버깅 환경에서 제한적으로 사용될 수 있다.
3.1. 실행 범위 제한
인스트루먼테이션은 실행 범위에 의해 한계를 갖는다. 만약 프로그램이 실행 시에 특정한 지점에 도달할 수 없다면, 인스트루먼테이션은 정보를 얻지 못한다. 예를 들면 워드 프로세서 애플리케이션이 인스트루먼트되었지만 사용자가 프린트 기능을 사용하지 않는다면, 인스트루먼테이션은 프린트 기능에서만 사용되는 루틴에 대한 정보를 얻지 못한다.