본문 바로가기

프로그래밍/BCI

ASM 개요

참고 : ASM User Guide


ASM 라이브러리(이하 ASM)는 XML의 SAX 와 DOM에 비교될 수 있는 두가지 모델의 API를 가지고 있다.


  • 이벤트 기반(event based)
    • Core API
    • 소스 디렉토리 : src/org/objectweb/asm/
    • XML의 SAX에 비교될 수 있다.
  • 객체 기반(object based)
    • Tree API
    • 소스 디렉토리 : src/org/objectweb/asm/tree/
    • XML의 DOM에 비교될 수 있다.


이벤트 기반 모델을 사용한 어플리케이션은 다음 순서로 만든다.

  1. 이벤트 생성자(event producer : class parser), 이벤트 사용자(event consumer : class write), 이벤트 필터들(event filters)을 조합한다.
  2. 코드의 생성이나 변환을 위해 이벤트 생성자를 동작 시킨다.

라이브러리 구성


  • org.objectweb.asm & org.objectweb.asm.signature
    • 이벤트 기반 API
    • parser & writer
    • asm.jar
  • org.objectweb.asm.util
    • 개발이나 디버깅 중에 사용할 수 있는, 이벤트 기반 API로 만들어진 다양한 도구 제공
    • asm-util.jar
  • org.objectweb.asm.commons
    • 대부분 이벤트 기반 API로 만들어진, 몇가지 유용한 미리 정의된 변환 클래스 제공
    • asm-commons.jar
  • org.objectweb.asm.tree
    • 객체 기반 API
    • 이벤트 기반 API <-> 객체 기반 변환 도구 제공
    • asm-tree.jar
  • org.objectweb.asm.tree.analysis
    • 객제 기반 API로 만들어진  클래스 분석 프레임웍 및 몇가지 미리 정의된 클래스 분석기를 제공
    • asm-analysis.jar