<< 2008년 3월 13일 (목) | | 2008년 3월 15일 (토) >>

BCI에 대해서

Byte Code Instrumenation이란 Java의 Byte Code에 대해 직접 수정을 가해서, 소스 파일의 수정 없이 원하는 기능(모니터링, 성능 분석)을 부여하는 기법을 말합니다.

자, 그럼 BCI를 활용하는 것들에는 무엇이 있는지 살펴볼까요?
첫째, Java 프로파일러나 모니터링 툴들이 대부분 BCI기능을 활용하고 있으며, BCI를 통해 모니터링 대상이 되는 어플리케이션의 수정을 가하지 않고 성능 측정에 필요한 요소들을 삽입할 수 있습니다.
제품으로는 Jennifer, Performizer, Lambda Probe for Apache Tomcat, JXInsight, infraRED가 있습니다.

둘째, AOP(Aspected Oriented Programming)를 구현하는 핵심 기술이 바로 BCI입니다. AOP 컴포넌트들이 컴파일 시간이나 로딩 시간,  런타임 시간에 Aspect와 Business Logic을 Weaving할 수 있는 이유가 바로 BCI, 즉 Java 바이트 코드를 직접 수정할 수있는 기술을 사용하기 때문입니다.

많은 오픈 소스 커뮤니티들이 Bytecode 조작을 가능하게 하는 라이브러리들을 제공하고 있습니다.

BCI를 지원하는 라이브러리들
  • ASM : Object Web에서 제공, Eclipse사용자라면 Eclipse Plugin - AMS Bytecode Outline Plugin을 활용 가능
  • BCEL : Apache 프로젝트에서 제공
태그 :