Search Results for 'XDoclet'

1 POSTS

  1. 2006.08.30 XDoclet

XDoclet

Posted 2006. 8. 30. 21:27
XDoclet은 오픈 소스 코드 생성 엔진으로, 자바에서 관점 지향 프로그래밍 (Attributed-Oriented Programming)을 가능하게 해준다. 쉽게 말해서 자바 소스 코드에 메타 데이터를 더해서, 코드만으로 표현하지 못했던 여러 가지 정보를 추가한 후에 관련된 코드 및 데이터 생성을 자동화하는 것이다. 이런 메타 정보는 기존 JavaDoc에 특수한 태그를 추가해서 지정할 수 있다.

예를 들어 어플리케이션을 JAR 파일로 묶을 때는 디스크립토 파일을 만들어서 더해주어야 한다. 개발 과정에서 이 작업이 반복되면 무척 귀찮은데, 디스크립토에 들어갈 정보를 XDoclet을 이용해 소스 코드에 직접 기술해주면 XDoclet 프로그램이 이 정보를 추출해 자동으로 JAR 디스크립토를 만들어준다. 특히 복잡한 컴포넌트의 경우 여러 개의 파일을 별도로 관리할 필요 없이 자바 파일 하나만 업데이트 하면 되기 때문에 유지보수성(maintainability)가 좋아진다.

특히 EJB의 경우 보통 7개 이상의 보조 파일을 필요로 하는데, 이런 메타 데이터와 자바 소스 코드의 싱크를 맞추려면 상당한 노력이 든다. 소스 코드만 업데이트하고, 메타 데이터는 업데이트하지 않을 경우 이상한 문제에 부딪힐 수도 있다. XDoclet을 이용하면 자바 소스 파일에 기술된 특수 태그를 통해 EJB가 필요한 각종 메타 데이터를 생성해 낼 수 있다. XDoclet의 통계에 따르면, EJB 프로그램에서 필요한 코드의 85%를 XDoclet이 자동으로 생성해 준다고 한다.

XDoclet은 처음에 EJB 개발을 돕기 위해 출발했지만, 지금은 범용적인 어트리뷰트 지향 프로그래밍을 표방하고 있다. 스텁(stub)과 스켈레톤(skeleton) 클래스를 생성해 주어야 했던 과거 자바 RMI 경우도 XDoclet을 사용했다면, 보조 클래스 생성을 자동화시킬 수 있었을 것이다.

XDoclet은 Java 5의 어노테이션(annotation)의 필요성을 인식시키는데 많은 영향을 미쳤다. 현재 XDoclet의 기능 중 상당수는 자바 어노테이션을 이용해서 가능하지만, XDoclet은 여러 프로젝트에 적용해온 노하우가 있으므로, 이와 같은 기능을 필요로 한다면 XDoclet은 대안이 될 것이다.