이클립스를 3.6버전인 Helios로 업그레이드 하고나서부터 다음과 같이 자바스크립트 validation할때 NullPointerException이 발생하곤 했다.


아마도 헬리오스의 버그같은데 아직 완전한 해결방법은 없고 다음과 같이 javascript validator를 프로젝트의 builder에서 제외시켜서 오류를 막을 수 있는 것 같다.

프로젝트 우클릭->Properties->Builder->Javascript Validator uncheck



이렇게 하면 일단 NullPointerException은 뜨지 않는데 다른 부작용이 있을지도 모르겠다. 위에서 JavaScript Validator를 uncheck하면 side effect가 발생할 수도 있다고 알림창이 나온다.

참조사이트 - http://bit.ly/aqJ9Fg


이클립스IDE의 기능이 매우 강력하기 때문에 IDE빌드로 공식빌드를 만드는 경우도 많지만 결코 좋은 방법이 아닐것이다. 빌드는 별도의 빌드머신에서 수행되어야 하고 SVN 저장소에 있는 소스로 바로 빌드하여 결과물을 생성할 수 있어야 한다.  예전에는 작성해 놓은 유닛테스트들을 테스트하기 위해 AllTests 클래스를 작성하곤 했었는데 최근엔 Ant나 Maven의 유닛테스트 지원 기능을 사용하면 손쉽게 다수의 테스트클래스를 일괄적으로 테스트할 수 있다.
그런데 이클립스상의 Ant로 빌드 및 테스트를 수행하다 보면 outofmemory 에러가 나면서 진행이 안되는 경우가 있다.
이럴때는 다음과 같이 Ant설정 창에서 -Xms -Xmx 메모리를 직접설정해 주면 된다.

1. build.xml에서 오른버튼으로 Run As -> External Tools Configurations 실행


2. JRE탭에 vm arguments 추가
-Xms256m -Xmx512m -XX:MaxPermSize=256m




필자는 64bit windows7 ultimate edition을 쓰고 있다. 램이 4기가라서 64비트 운영체제를 쓰고 있는데 이클립스같은 경우 jdk를 32bit용으로 깔고 SpringSource Tool Suite 도 32비트용을 깔아서 써 왔었다.
그런데 한달전 쯤 SpringSource Tool Suite가 2.2.1 로 업그레이드 되었었고  64bit용 버전도 링크가 추가되어 있는걸 최근에야 발견했다.
64bit운영체제를 쓴다면 더 망설일 필요도 없이 64bit용 설치파일을 다운로드하면 될 것 같다.


SpringSource Tool Suite 2.2.1 다운

개발을 하다보면 캐릭터셋문제로 골머리를 앓는 경우가 많이 있다.  필자는 그래서 신규로 프로젝트를 시작할 경우 아예 모든 환경을 UTF-8로 셋팅해 버린다. 물론 UTF-8까지 필요가 있을까 하는 생각을 할 수도 있지만 나중에 다국어환경을 고려해도 아예 UTF-8로 시작하는게 나쁜 방법은 아닌것 같다.
다음은 UTF-8로 개발환경을 셋팅하는 방법이다.

1. 이클립스의 Content type을 UTF-8로 설정
   - 이렇게 설정하면 해당하는 type을 파일로 저장할 때 UTF-8형식으로 저장하게 된다.


2. Workspace의 Text file encoding을 UTF-8로 선택
   - 이렇게 설정해야 svn의 소스비교시 캐릭터셋이 깨지는 문제를 막을 수 있다.


3. 데이터베이스 인스턴스를 UTF-8형태로 생성
  - Mysql같은 경우 아래와 같은 방식으로 생성하면 된다.

CREATE DATABASE database_utf8 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

4. web.xml에 아래와 같이 인코딩 필터 셋팅
  - 서블릿과 통신할 때 데이터를 주고 받는 것에 대한 인코딩을 설정하는 부분이다.
<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>
        org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
</filter>

5. 톰캣설치디렉토리의 /conf/server.xml 에 URIEncoding 항목 추가
  - WAS와 get방식으로 데이터를 주고받는 것에 대한 인코딩 설정부분이다.
<Connector port="8080" URIEncoding="UTF-8" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />

6. JSP파일의 최상단에 UTF-8 directive 추가
  - JSP컴파일시 사용할 인코딩을 설정하는 부분이다.
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>

7. JSP파일의 meta태그에 UTF-8추가
  - 브라우저에서 인식할 캐릭터셋을 설정하는 부분이다.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

8. 메이븐을 쓴다면 다음과 같이 plugin에 UTF-8 설정을 추가해 준다.
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.5</source>
        <target>1.5</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>
<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
                <charset>UTF-8</charset>
                <docencoding>UTF-8</docencoding>
                <encoding>UTF-8</encoding>
                <quiet>true</quiet>
        </configuration>
</plugin>    
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-pmd-plugin</artifactId>
  <version>2.4</version>
  <configuration>
    <sourceEncoding>utf-8</sourceEncoding>
    <targetJdk>1.5</targetJdk>
    <minimumTokens>10</minimumTokens>
  </configuration>
</plugin>



이클립스의 Subversion플러그인은 SubclipseSubversive로 양분되어 있다.
Subversive가 이클립스진영으로 합류가 되긴 했지만 아직은 둘 중에 어느것이 좋다라고 단정하긴 힘들다.
필자도 두개를 번갈아 쓰고 있는 편인데 subclipse를 사용할 경우 utf8로 되어있는 자바소스코드를 compare with revision했을 때 한글문자가 모두 깨졌었다.
그런데 우연히 다음방법으로 이클립스를 셋팅해 줬더니 compare with했을때도 이상없이 한글이 표시됐다.

-  Preferences에서 encoding으로 검색텍스트박스 입력 후 Text File Encoding에 utf-8선택



- Subclipse 이클립스 업데이트 주소 - http://subclipse.tigris.org/update_1.6.x
- Subversive 이클립스 업데이트 주소 -  http://download.eclipse.org/technology/subversive/0.7/update-site
   * Subversive 같은 경우 이전과 달리 위의 플러그인만 업데이트 하면 이클립스를 재시작할 때 자동으로 Svn Connector라이브러리를 다운로드하도록 바뀌었다.(이전에는 따로 설치해야만 했음)








내가 주로 쓰는 이클립스 단축키는

-  Open Type(CTRL+SHIFT+T)
-  Open Resource(CTRL+SHIFT+R)
-  Open Task(CTRL+F12)
-  Code Assist(CTRL+Space)
-  JUnit Execute(ALT+SHIFT+X+T)
-  JUnit Debug(ALT+SHIFT+D+T)
-  Quick Access(CTRL+3)
-  Call Hierarchy(CTRL+ALT+H)
-  Refactoring(ALT+SHITF+T)
-  Generate getter and setters(ALT+SHIFT+S+R)
-  Search(CTRL+H)

이정도다. 그런데 KSUG에 올라온   이클립스 단축키 관련된 쓰레드 를 보니  Surround With(SHIFT+ALT+Z)라는 단축키가 있었고 꽤 유용한 것 같다.
아래는 JDT에서 SHIFT+ALT+Z를 누른 스샷.





가니메데버전까지는 이클립스JDT에디터에서 equals 및 hashCode메소드를 자동으로 생성시킬 수 있었는데 이번 갈릴레오 버전에서는 toString까지 추가되었다.  물론 Commons Lang 같은 라이브러리를 쓸 수도 있겠지만 나름대로 유용한 기능이라 생각된다.

1. equals와 hashCode 생성


2. 생성된 코드


3. toString 생성


4. 생성된 toString코드




가끔 이클립스에 플러그인을 설치하거나 했는데도 정상작동하지 않을 때가 있다. 그럴때는 다음과 같이 이클립스플러그인을 초기화 하여 충돌을 해결 할 수 있다.
만약 이클립스가 C:\eclipse 에 깔려있다고 하면

c:\eclipse\eclipse.exe -clean

이렇게 커맨드상에서 실행해 주면된다.

SpringSourceToolSuite를 쓰고 있는데 findbugs플러그인을 아무리 깔아도 설치가 안되는 문제를 위와 같은 초기화방법으로 해결할 수 있었다.

그동안 Courier New, Dejavu Sans mono, Bitstream Sans mono, 나눔고딕 코딩, Consolas등 여러가지코딩용 글꼴을 써왔는데 윈도우 환경에서는 그닥 딱히 마음에 드는 폰트는 없었다.
그런데 몇일 전 기선님의 블로그에서 Monaco폰트를 써봤는데 확실히 눈이 편안해 짐을 느낀다.
폰트 자체가 미려할 뿐더러 라인사이에 간격이 얼마정도 있어서 더 편안함을 주는게 아닌가 생각된다.
다음은 Monaco 9point 에서 캡쳐 뜬 화면이다.


폰트가 미려하고 눈에 부담이 적어지니 능률도 향상되는 것 같다. ^^
아래 링크를 따라가면 폰트를 다운로드 할 수 있음.
http://www.webdevkungfu.com/textmate-envy-aka-monaco-font-for-windows/

주의사항) 폰트의 효과를 제대로 보려면 반드시 cleartype 효과를 켜야한다.


지금 진행하고 있는 프로젝트에 Spring2.5와 iBatis를 쓰고 있는데 쓸만한 플러그인을 찾았다.
모두 유명한 플러그인인데 나만 아직까지 몰랐던듯 ㅡ.ㅡ;

이름은 SpringIDEEclibatis 라는 플러그인데 둘다 spring과 ibatis를 쓴다면 필수 플러그인이라고 해도 될듯 싶다.

업데이트 주소
SpringIDE - http://springide.org/updatesite
Eclibatis - http://eclibatis.sourceforge.net/updatesite/



티스토리 툴바