고전적인 자바 클래스의 테스트는 main() 메소드에 값을 찍어보는 코드를 넣어서 콘솔에서 확인합니다. 이클립스에 익숙해진 덕에 JUnit에서 System.out.println() 집어 넣는 것은 초딩같은 습관이라고 생각을 "저만"했었습니다. 하지만, 찍어본다는 것 그리고 그것을 눈으로 확인하는 것은 굉장한 심리적 안정감을 주기는 합니다. 아직 assertEquals() 는 보이지 않는 신뢰가 필요하기 때문이죠.

httpunit의 테스트코드를 보니 재밌는 부분이 있었습니다. 상당히 많은 수의 테스트케이스에 main() 메소드가 있었고, 그 메인메소드는 JUnit을 기반으로 해당 테스트코드를 수행하도록 만들어주는 것이었습니다.


suite() 메소드를 inline 리팩토링하면 junit.textui.TestRunner.run( new TestSuite( EncodingTest.class ));  를 통해서 실행을 합니다. Java Application 으로 실행한 결과는 다음과 같습니다.

..............
Time: 3.813

OK (14 tests)

물론 이 클래스는 JUnit을 통해서도 실행됩니다.

다른 사람의 코드를 읽는 것, 프로그래머 소통의 시작이 아닐까 생각해봅니다.

참고로 HttpUnitTest 클래스의 상속구조입니다. ctrl+T 로 이클립스에서 볼 수 있습니다.


 

dw 기사를 보다가 JSDT(JavaScript Development Toolkit)를 알게 되었습니다. JavaScript 자동완성에 실시간 문법체크를 해줍니다. 어~ 좋은데, 그런데 어떻게 설치하지 찾아봤습니다만 WTP3.0 (Ganymede JEE 버전과 동일합니다.)에 기본적으로 포함되어 있더군요.

다음 이미지를 보시면 알 수 있듯이 다른 js 파일에서 선언된 변수도 가져다 쓸 수 있습니다.

위키를 보니 JSDT는 ATF(Ajax Toolkit Framework) 프로젝트의 서브 프로젝트로 진행중이네요.

JSDT에 대해 잘 요약된 DW기사도 일독을 권합니다.

앞서 오픈소스를 통해서 소스 저장소에 등록되는 디렉토리 구조를 살펴보았습니다. 그리고 프로젝트 소스를 일괄처리하는 build.xml 도 살짝 들여다 보았습니다. 이클립스 툴을 쓰면 다 되는 작업을 왜 Ant 빌드스크립트를 만들어야하는지 질문을 종종 들어봤습니다. 지속적인 통합 빌드 같이 주기적으로 반복되는 작업이나 단계가 복잡한 작업들은 빌드스크립트가 효과적입니다. 클릭클릭하는 일도 지겨울 때가 있거든요. 이클립스 작업의 자동화가 빌드 스크립트라고 생각하시면 될 것입니다.

지난 번 소스 가져오기(import) 이후로 소스의 빌드 경로를 잡아보려고 합니다. 로컬pc에서 컴파일되나 안되나 확인하는 것이죠. 소스가 패키지에 맞게 제자리에 있어야 할 것이고, 참조하는 jar파일의 경로도 함께 지정해줘야 합니다.

일단 이클립스 자바 프로젝트에서 소스 폴더를 추가합니다. 자바소스가 있는 폴더를 소스폴더라고 합니다. *.java 파일과 *.properties 파일들이 위치합니다. httpunit-1.7 아래 src 폴더가 바로 소스폴더입니다. 그리고 httpunit-1.7 아래 test 라는 곳도 소스 폴더로 추가합니다. src 아래 있는 클래스들을 테스트하는 테스트케이스들의 소스 폴더입니다.

자동 빌드가 일어나면서 에러가 무진장 일어납니다. jar 파일 연결이 안되서 그렇습니다.

왼쪽 패키지 익스플로러에서 프로젝트를 선택하고 Properties 창을 엽니다. 컨텍스트 메뉴에서 제일 아래 Properties 메뉴를 선택하면 됩니다. 단축키는 alt+Enter
Java Build Path 항목을 선택하고 Libraries 탭을 클릭합니다.

우측의 Add JARs... 버튼을 클릭해서 httpunit-1.7/jars 폴더의 *.jar 파일들을 선택합니다.

오호, 에러가 줄기는 했는데, 하나 남았네요. fnfe를 클릭해서 해당 소스를 열어보겠습니다. 흠, 겁을 상실했군요. 에~ 뭐 꼭 고친다는 뜻은 아닙니다. ^^;

소스를 살짝 보니 캐릭터셋 문제로 Roger Lindsj 이름 옆에 이상한 문자가 생긴 것 같네요. 그것 때문에 아랫줄 if라인이 주석 줄로 따라 올라온 듯 합니다.

if 앞에서 엔터로 줄바꿔주니 고쳐졌습니다. ^^; 잠시 우쭐~

Problems 탭에 에러는 싹 사라졌군요. Warnings는 살짝 봐주기로 하죠. ^^;

소스 폴더가 추가된 모습입니다.

작업공간은 에러 없는 코드로 관리되는 것이 개발자 심리에 좋다고 생각을 합니다. ^^;

http://www.eclipse.org/users 페이지를 가보면 다음과 같은 화면을 볼 수 있습니다. Help Topic 페이지입니다.

우측 상단의 Switch View를 클릭하면 이클립스의 기둥들이라고 하는 주요한 프로젝트들에 대한 아이콘들이 나타납니다. 상단 메인 영역가 우측 하단의 내용이 스위치됩니다. 재밌게 만들어 놓았습니다.

많은 컨텐츠들을 효과적으로 배치해 놓았다는 느낌이 듭니다.

사용자는 생태계 피라미드에서 바닥을 깔아주는 넓고, 광범위한 영역입니다. 이들에게 필요한 것은 가이드, 매뉴얼, 튜토리얼 등 입문과 활용에 관한 문서들이죠. 그에 관한 접근을 쉽고 재밌게 만들어 놓은 노력은 높이 살만합니다.
 
http://www.eclipse.org/users


update site url 입니다. http://findbugs.cs.umd.edu/eclipse/
설치가 완료되면 다음과 같은 메뉴가 보입니다.

테스트용으로 에러를 발생시키는 소스를 만들어서 테스트 해봅니다.

package net.okjsp;

public class HelloWorld {

 /**
  * @param args
  */
 public static void main(String[] args) {
  String arg = null;
  System.out.println("Hello World! "+arg.equals("0"));

 }

}


문제가 되는 라인 앞에 버그가 표시됩니다. 더블클릭하면 하단에 findbugs 뷰가 생깁니다.


해당 버그의 내용과 수정 방법에 대해서 표시됩니다.

뷰 메뉴 중 findbugs 퍼스펙티브로 전환하는 아이콘도 있습니다.

클릭하면 다음과 같은 정보를 확인할 수 있습니다.

이제 쎄스코를 부르지 않아도 될 것 같습니다.

 

http://www.eclipse.org 사이트의 메인이 확 바뀌었습니다.

Users > Ecosystems > Members > Committers 사이클의 의미가 새롭게 다가옵니다.

일반적인 서비스는 제공자(Provider)와 소비자(Consumer)로 나뉩니다. 하지만 다른 제품들은 생태계(Ecosystem)를 만들어냅니다. 블리자드의 스타크래프트를 떠올려 볼 수 있습니다. Map을 사용자가 직접 만들어서 배틀넷에서 플레이할 수 있습니다. 놀이터를 만들어서 자유롭게 게임을 즐길 수 있도록 한 것입니다. 시나리오 모드에 감격하고 끝나면 소비에서 마치게 되지만 배틀넷에서 Use Map Setting 모드의 게임들은 상상초월의 재미를 가져다 주게 됩니다. 물론 모든 사용자가 만든 맵들이 공평하게 대우받지는 못합니다. 재미 요소를 가진 맵들이 생존하고 주도권을 잡게 되는 것이죠.

이클립스 플랫폼이 추구하는 것도 같다고 봅니다. PDE(Plugin Development Environment)를 제공해서 스스로 진화할 수 있는 통로를 열어놓았습니다.

"너희는 주는대로 받아 먹어라"는 서비스와 "자 이제 같이 함께 놀아봅시다 당신의 생각은 어떤 것인가요"라고 판(플랫폼)을 펼쳐 놓는 것은 다릅니다.

내일 강의하게 되는 내용의 대략입니다.

비즈니스 월드에서는 MBO라여 팀원관리방식이 있습니다. Management By Objectives 과업을 정하게 하고 그에 대한 평가기준 5가지 (S, A, B, C, D) 등급의 목표치를 정하도록 합니다. 과업 종료 후 그 기준으로 업무를 평가하는 방식이죠. 물론 적용하는 곳마다 차이가 있을 수 있습니다.

업무를 잘 수행한다는 것은 이러한 자기 자신의 업무 목표에 충실하다는 뜻이죠.

전 참 업무적 성과를 잘 못 남깁니다. 일한 티가 잘 안 나는 것이죠. 시작이나 과정은 참 요란하고 그럴 듯 한데, 매번 용머리에 뱀꼬립니다.

뭔가 티나는 것을 해야할 때가 된 듯 합니다.
그게 꼭 회사를 위한 것만 있는 것도 아닌데 말이죠.

조직 내에서 존재감은 참 중요합니다.

Eclipse 3.4 기준으로 이클립스의 기본 기능들을 설명합니다.

기존에 강의를 들으셨던 분들은 동일한 강의입니다.

  • 이클립스 개요
  • 이클립스 자바 개발
  • 이클립스 코드 네비게이션
  • 이클립스를 활용한 디버깅
  • 협업 (svn 연결 code.google.com)
  • 이클립스 3.4 What's new

일시: 2008/09/20 09:00~12:00 (3시간)

회비: 2만원 (현장납부)

교재: 온라인 공개 http://okjsp.tistory.com/tag/eclipse

대상: 이클립스 입문 희망자

        선착순 30명

장소는 강남 토즈입니다.

http://www.toz.co.kr/v2/02place/03_main.htm

메일로 신청받습니다.
kenu 골뱅 okjsp.pe.kr

이름:
닉네임:
이메일:
휴대폰:

본 강의는 실습강의가 아닙니다.


 

이클립스 3.4 JEE버전에서는 톰캣을 자동으로 다운받는 기능이 추가되어있군요.
사용자 삽입 이미지

Download and Install 메뉴가 보입니다.
선택하고 다운로드가 마치면 사용할 수 있군요.

+ Recent posts