인스트루먼테이션

위키백과, 우리 모두의 백과사전.

컴퓨터 프로그래밍에서 인스트루먼테이션(instrumentation)은 오류를 진단하거나 추적 정보를 쓰기 위해 제품의 성능 정도를 모니터하거나 측정하는 기능을 가리킨다.[1] 프로그래머들은 시스템에서 특정한 구성 요소를 모니터링하는 코드 명령어 형태로 인스트루먼테이션을 구현할 수 있다(예를 들면 명령어는 로깅 정보를 모니터에 출력할 수 있다). 애플리케이션이 인스트루먼테이션 코드를 포함할 때 관리 도구를 사용해서 관리될 수 있다. 인스트루먼테이션은 애플리케이션의 성능을 검토할 때 필요하다. 인스트루먼테이션 접근법으로는 두 종류가 있다: 소스 인스트루먼테이션과 바이너리 인스트루먼테이션.

결과[편집]

프로그래밍에서 인스트루먼테이션은 애플리케이션이 다음을 포함하는 능력을 의미한다:

  • 코드 추적 - 런타임 시에 애플리케이션의 실행에 관한 정보를 메시지로 받는 것.
  • 디버깅 그리고 (구조화된) 예외 처리 - 개발 하에 애플리케이션의 프로그래밍 오류를 찾아내고 고치는 것.[2]
  • 프로파일링 - 입력을 가진 상태에서 실행하는 동안 동적으로 프로그램의 행위를 측정하는 것. 이것은 정적 프로그램 분석을 제대로 수행할 수 없을 때 유용한 속성이다.
  • 성능 카운터 - 애플리케이션의 성능을 추적하게 하는 속성
  • 컴퓨터 데이터 로깅 - 애플리케이션 실행 중의 주요한 이벤트들의 추적과 로깅.

한계[편집]

인스트루먼테이션은 실행 범위에 의해 한계를 갖는다. 만약 프로그램이 실행 시에 특정한 지점에 도달할 수 없다면, 인스르루먼테이션은 정보를 얻지 못한다. 예를 들면 워드 프로세서 애플리케이션이 인스트루먼트되었지만 사용자가 프린트 기능을 사용하지 않는다면 인스트루먼테이션은 프린트 기능에서만 사용되는 루틴에 대한 정보를 얻지 못한다.

인스트루먼테이션의 몇몇 타입들은 실행 시간을 심하게 끌어올릴 수 있다. 이것은 인스트루먼테이션의 애플리케이션이 문맥을 디버깅하는 것을 제한할 수 있다.

같이 보기[편집]

각주[편집]

  1. Source Code Instrumentation Overview at IBM website[깨진 링크(과거 내용 찾기)]
  2. “Commenting, Testing, and Instrumenting Code”. 2011년 1월 3일. 2016년 3월 4일에 원본 문서에서 보존된 문서. 2014년 1월 29일에 확인함.