박찬욱님이 멋있게 스크린캐스트로 진행한 동영상입니다.

http://www.ibm.com/developerworks/kr/library/tutorial/os-dw-os-eclipse-europatimesave.html

첫번째 영상: 이클립스 유로파 탐험하기
두번째 영상: IDE 설정하기
세번째 영상: 리팩토링

순서로 되어있으니 이클립스 처음 사용하는 분들에게는 요긴할 것입니다.
ganymede 와 europa 에서 공통되는 부분을 설명하고 있으니 버전 걱정하지 않아도 됩니다.
junit 기초입니다.

http://www.eclipse.org/ecf
재밌는 일이 펼쳐집니다.

사용자 삽입 이미지

http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-5040&yr=2008&track=tools

"The many moons of eclipse" 강의를 검색해보니 위와 같은 링크가 나왔습니다.
오~ 강의 PDF 뿐만 아니라 강의 녹화 MP3와 멀티미디어 강의도 나옵니다. 우오~

사용자 삽입 이미지


강의자료와 음성이 같이 나오는 멀티미디어 강의장면입니다.
사용자 삽입 이미지

이쯤 되면 자바원 고맙죠. ^^b

다음과 같은 테스트케이스를 프로파일링 해봤습니다.

package kr.pe.okjsp.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;

import junit.framework.TestCase;

public class DateUtilTest extends TestCase {
 public void testIsValidDate() {
  assertTrue(isValidDate("20080229"));
  assertFalse(isValidDate("20090229"));
 }

 public boolean isValidDate(String date) {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
  String format = null;
  try {
   format = sdf.format(sdf.parse(date));
  } catch (ParseException e) {
   e.printStackTrace();
  }
  return date.equals(format);
 }
}


TPTP를 이용해서 나온 프로파일링 퍼스펙티브의 좌측 Profiling Monitor에서 오른 버튼을 눌러나오는 Open With > UML2 Class Interactions 메뉴를 선택하면 다음과 같이 시퀀스 다이어그램이 나옵니다.

사용자 삽입 이미지


빨간 포인트가 실행시간이 가장 오래 걸리는 부분임을 알 수 있지만, 그래프의 길이가 불필요하게 긴 듯 합니다.
홈 아이콘을 클릭한 뒤에 제일 좌측에 있는 TestSuite 클래스를 가려보겠습니다. 오른버튼 클릭해서 Hide selected lifeline 을 선택합니다.
사용자 삽입 이미지

이런 식으로 TestResult 와 TestResult$1 을 가리면 다음과 같은 그래프를 볼 수 있습니다.
사용자 삽입 이미지

가려진 클래스를 다시 보게 하려면 우측 상단의 하얀 역삼각형 ViewMenu 를 선택하고 Hide/Display Patterns... 메뉴를 클릭합니다.
사용자 삽입 이미지
여기에서 체크를 지워주면 보입니다.
사용자 삽입 이미지

천천히 하나씩 알아가야죠. ^^
TPTP
Test and Performance Tools Platform
TPTP는 테스트 툴과 퍼포먼스 툴의 플랫폼 프로젝트입니다. 자바 프로그램 실행시 CPU, 메모리 등과 객체 호출 및 인스턴스의 갯수 상태를 확인하기 위해 만들어진 것입니다.
자바 VM 뿐만 아니라 OS 등과 맞물려 각종 정보를 수집합니다.

http://www.eclipse.org/tptp
Windows와 Linux 용 all-in-one 버전을 받아서 설치하면 간편하게 설치됩니다. Active Control Server의 설치가 자동으로 되기 때문이죠. 맥용은 없습니다. ㅡㅡ;

Run, Debug 에 이은 Profile 기능을 이용하면 다음과 같이 Monitor 탭이 생깁니다. Execution Time analysis 는 클래스, 메소드 간의 실행시간 등을 기초로 하여 실행과정을 보여줍니다.
사용자 삽입 이미지

실행을 하면 Profiling Manager View가 열립니다.
사용자 삽입 이미지

Execution Time Analysis를 클릭해서 열린 보다 구체적인 내용입니다.
사용자 삽입 이미지

아래 탭을 클릭하면 다른 내용들을 볼 수 있습니다. Call Tree 탭을 클릭한 경우 다음과 같이 CPU 소모비율도 확인 가능합니다.
사용자 삽입 이미지

Profiling Manager 에서 오른클릭메뉴로 UML2 Class Trace를 선택하면 시퀀스다이어그램을 볼 수 있습니다. 이거 대박이죠. ^^
사용자 삽입 이미지
http://www.ibm.com/developerworks/kr/library/os-eclipse-ganymede/index.html?ca=drs-kr
사실 쓰는 것만 씁니다. 그래서 가니메데를 통해서 동시에 배포된 24개의 프로젝트 중에서 아는 것은 몇 개 안 됩니다.
하지만 dW에 소개된 글을 통해서 그 얄팍한 지식을 좀 더 두껍게 만들 수 있습니다.

책을 읽는 경우가 있고, 책의 목차만 보는 경우도 있고, 책의 요약본만 보는 경우도 있습니다.
세 가지 경우 중에서 시간 대비 효과가 가장 큰 것이 마지막 요약본을 보는 경우인데요. 이클립스의 24가지 프로젝트를 정독하기는 힘든 상황에서 요약본은 거의 대학교 시험 앞서서 족보를 보는 것과 같은 효율성을 지니고 있습니다.

하긴 답답함은 해소하겠지만, 어디서 아는 척은 삼가는 것이 좋겠죠. 경험이 없는 지식은 선무당과 같으니까요.
정규 표현식(Regular Expression)은 문자열 패턴을 이용하는 기술입니다. 어렵죠. 특히나 초보 개발자에게는 말이죠. 하지만 자꾸 하면 늡니다.
이클립스에서 이것을 쉽게 개발할 수 있도록 도와주는 플러그인이 있습니다. 구글신에게 구걸해보면 QuickREx가 현재 가장 먼저 노출됩니다.


라이브러리 View와 Editor가 있습니다. 물론 커스텀라이브러리도 만들 수 있습니다. 아래는 라이브러리에서 불러온 앞 뒤의 공백을 잡아내는 정규표현식입니다. ^[\t]+|[\t]+$ 가 바로 그 부분입니다.
사용자 삽입 이미지

RE editor입니다. Test-Text에 테스트할 문자들을 집어넣고 정규표현식은 맨 윗줄에서 만들어 갑니다. 코드 어시스트 기능이 있어서 많이 도움이 됩니다.
사용자 삽입 이미지

잘 쓰시기 바랍니다.
http://www.eclipse.org/articles/Article-TPTP-Profiling-Tool/tptpProfilingArticle.html
문서에 있는 내용은 TPTP 초보자 가이드입니다. 프로파일링을 할 수 있도록 도와주는 것이죠. Test and Performance Tools Platform 이라는 말에서 알 수 있듯이 테스트와 성능진단을 위한 툴들의 플랫폼입니다. 기능이 무진장 많아서 어떻게 시작해야될지 막막한 느낌이 들기는 합니다.

설치를 간편히 하시려면 기존의 이클립스는 놔두시고, all-in-one버전을 받으시길 권장합니다.
ㅠㅠ; 맥용은 all-in-one버전이 없습니다. ^^;
http://www.eclipse.org/tptp/home/downloads/
사용자 삽입 이미지

문서에 있는 샘플을 실행해서 나온 리포트입니다.
사용자 삽입 이미지

몇 번 호출이 되었는지 CPU는 얼마나 사용되었는지, 호출 시간은 어떻게 되고 누적시간은 어떤지 보여줍니다.

공부할 게 또 생겼습니다. 그려~

related:
http://www.eclipse.org/tptp/home/documents/tutorials/profileOnServer/TPTP-WTP.html
http://www.ibm.com/developerworks/kr/library/os-eclipse-plugindev1/index.html?ca=drs-kr

소프트웨어 엔지니어를 들어보셨나요? ^^; 제가 가장 좋아하는 직업 중에 하나입니다. 개발자도 아니고 기획자도 아니고, 그렇다고 디자이너도 아니죠. 이 셋을 포괄한 명칭이 소프트웨어 엔지니어입니다. 무슨 일을 하는지는 아시겠죠. 서비스를 만들어가는 직업입니다.

Chris Aniszczyk, 소프트웨어 엔지니어, IBM에 의해서 쓰여진 기사입니다. OSGi라고 떠드는 기술을 사용하는데, Pervasive라는 단어와 연관이 있다는 정도만 저도 알고 있습니다. jar hell(jar 지옥)을 벗어나기 위한 기술이라고 들었는데, eclipse에 밀접하게 적용된 것입니다.

단순 유저에서 벗어나서 하드코어 유저로 올라서는 방법 중 하나가 플러그인 개발이겠죠. ^^; 자동차 운전과 정비에 빗대어 생각해 볼 수 있을 것입니다.

+ Recent posts