 |  |
|
TPTP 소개
자바 코드로 애플리케이션이나 서블릿을 작성하는 것은, 견고하며 개발 완료 수준의 품질이 보장되는 프로그램을 전달하기 위한 긴 과정 중 첫 번째 단계일 뿐이다. 코드는 반드시 해당 오퍼레이션과 정확성을 점검하기 위해 테스트해야 한다. 코드는 성능 저하를 불러오는 병목 현상과 특히 메모리와 같은 자원 낭비와 부주의한 사용을 제거하기 위해 프로파일링되어야 한다. 또한 애플리케이션 오류와 미수로 그쳤거나 실제 행해진 공격을 세밀하게 찾아내기 위해서뿐만 아니라 개선과 최적화를 위한 가능성과 사용 패턴을 확인하기 위해 모니터링되어야 한다.
이클립스 TPTP는 무엇인가
테스트, 프로파일, 코드 모니터링을 위한 도구는 많이 존재하지만, 대규모로 통합된 도구는 거의 없다. 게다가 이러한 도구는 일반적으로 벤더 별로 각각 제공되어, 매번 다른 사용자 인터페이스(UI), 컴파일러, 진단 도구를 파악하고 배우는 데 값진 시간과 노력을 허비하게 된다. 시간과 돈을 측정해 볼 때, 이렇게 특정 회사 소유의(proprietary) 도구는 터무니 없을 정도의 투자를 필요로 한다.
그러나 만약 테스트, 프로파일러, 모니터링 도구가 오픈소스라면 어떻게 생각하는가? 그리고 이 도구가 확장성이 뛰어나, 어느 벤더나 개발자라도 새로운 도구를 만들거나 기존 도구를 향상시킬 수 있다면? 그리고 이 도구가 대중적이고 친숙한 기존 도구와 매우 훌륭하게 통합된다면? 꿈 같은 얘기일까? 전혀 꿈이 아니다.
이클립스 TPTP는 소프트웨어 아키텍처이며 테스트, 성능, 모니터링 도구를 포함하도록 이클립스 플랫폼을 확장한 몇 가지 컴포넌트로 되어 있다. 일부 자바, C, C++ 개발자들은 다른 개발자들을 위해 독특한 도구를 만드는 데 TPTP를 이용하기도 하고 또 다른 개발자들은 사용자들을 위해 애플리케이션을 빌드하고 배치하는 데 TPTP 기반 도구와 기타 이클립스 기능을 한데 엮기도 한다.
TPTP의 목적
간단하게 말해 TPTP는 "소프트웨어 개발자들이 전문화되고, 차별성을 갖고, 공동으로 사용할 수 있는 일반적이고, 확장 가능하며, 표준 기반 도구 플랫폼 구축"을 목적으로 하는 이클립스 재단의 최고 수준(top-level) 프로젝트다. 핵심만 다시 정리해 보면, TPTP는 자동화된 소프트웨어 품질 관리를 위해 또 다른 도구를 빌드해 주는 도구다.
실제로 현재 발표된 TPTP는 핵심 부분과 핵심 부분에 기반을 둔 세 가지 도구를 포함한다.
-
TPTP
- TPTP는 UI 개발, 데이터 컬렉션, 역할 기반(rule-based)의 데이터 쿼리와 애플리케이션 컨트롤을 위한 핵심 기반을 제공한다. 예를 들어, TPTP는 다른 도구가 재사용하고, 확장할 수 있는 많은 마법사 기능을 제공한다. 또한 프로그래밍 인터페이스와 로컬 혹은 원격에서 데이터 컬렉션 실행을 편리하게 해주는 데몬을 제공한다.
-
TPTP 테스팅 도구
- 이 프로젝트는 모든 종류의 애플리케이션 테스트를 자동화하기 위한 부가 서비스를 제공한다. 현재 발표된 버전에서는 자동화된 테스트 기능을 갖춘 JUnit을 지원한다. 이 기능은 직접 테스트를 작성하고, 결과를 보관하며, 테스트 지점을 지정할 수 있는 시스템과 웹 애플리케이션 테스트를 위한 자동화된 시스템을 제공한다. 이 웹 애플리케에션 테스트 시스템에는 웹 브라우저 세션과 인증 결과를 녹화하고, 다시 재생할 수 있는 기능을 갖고 있는 녹화기(recorder)가 포함된다. 또한 이클립스 V4.1에는 SWT 기반 인터페이스에서 마우스와 키보드 이벤트를 녹화하고, 재생할 수 있는 GUI 녹화기(recorder)의 초기 배포 버전이 이미 포함되어 있다.
-
TPTP 모니터링 도구
- 이 프로젝트는 애플리케이션에서 수집된 통계 정보와 로그 파일에서 데이터를 수집 분석해 시각화한다.
-
TPTP 트레이싱/프로파일링 도구
- 이 프로젝트는 운용중인 애플리케이션에서 CPU와 메모리를 포함한 자원 사용을 수집하고 분석하기 위해 TPTP를 확장한다. 또한 트레이싱 도구를 이용해 실행중인 프로세스와 상호 작용할 수 있다. 예를 들어, 가비지 컬렉션을 직접 강제로 실행할 수 있고, 메모리 "누수"를 찾아내 수정하기 위해 현재 있는 객체 풀을 점검할 수 있다.
그 외에도 TPTP에는 에이전트 컨트롤러라는 데몬이 들어있다. 에이전트 컨트롤러는 이클립스 워크벤치(Eclipse Workbench)와 테스트 대상이 되는 애플리케이션 사이의 연락을 책임진다. 이클립스 대신에 자바 애플리케이션을 로컬이나 원격에서 실행할 수 있으며, 애플리케이션 로그 파일을 포함해서 애플리케이션 메트릭스를 워크벤치에 전달한다.
이제 이번 튜토리얼에서 남은 것은 자바 기술을 위한 TPTP 프로파일링 도구의 몇몇 부분을 시연하는 것이다.
|  |