프로퍼티 파일을 쓰는 두 가지 경우가 있습니다. 설정 내용을 담고 있는 경우와 다국어를 지원하기 위해서 메시지를 보관하는 경우입니다.
이클립스에서 이 기능을 지원해주고 있습니다. 같이 보시죠.

샘플 자바소스입니다.

사용자 삽입 이미지

여기에 보면 다음과 같은 메소드가 있습니다. 여기에 하드코딩된 문자열을 properties 파일로 추출하려 합니다. 좀 많죠.
사용자 삽입 이미지

Source > Externalize Strings... 메뉴를 선택합니다.
사용자 삽입 이미지

Datelabel. 이라는 prefix가 상단에 보이고, 추출가능한 문자열 목록이 보입니다. 0,1,2,3,.. 으로 되어있는 것을 찍어보면 하단에 해당 소스 부분이 나옵니다. 제일 아래쪽에는 추출되서 나오는 properties 파일의 이름과 경로가 적혀있습니다.
사용자 삽입 이미지

이름을 적절히 수정합니다. prefix를 제외하고 쓰면 됩니다. 정리가 되면 Next 버튼을 클릭해서 다음으로 넘어갑니다.
사용자 삽입 이미지

바뀌게 될 소스가 보입니다.
사용자 삽입 이미지

항목을 찍어보면 어디가 어떻게 바뀐다는 것을 하단에 보여줍니다. Finish 버튼을 클릭하면 모든 작업이 끝나게 됩니다.
사용자 삽입 이미지

Messages.java 파일이 새로 생겼습니다. 그리고 mesages.properties 파일도 새롭게 생겼습니다.
사용자 삽입 이미지

properties 파일을 복사해서 messages_en.properties 로 새로 하나 만듭니다. 그리고 그 안의 메시지를 영어로 처리해줍니다. 한글이나 일어 중국어는 모두 native2ascii.exe 변환을 거쳐서 유니코드로 파일이 만들어져야합니다. 관련 글을 참고하세요.

다음과 같이 다국어 처리가 가능한 소스 구조로 만들어 주면 됩니다. Messages.java 는 DateLabel 쪽으로 모두 이동을 시켰습니다.
사용자 삽입 이미지
테스트 코드를 보면 다음과 같이 다국어 설정을 바꿔줄 수 있습니다.
사용자 삽입 이미지

DateLabel.setLocale() 을 열어보면 다음과 같습니다.
사용자 삽입 이미지


다국어를 처리하는 페이지를 만드는 경우가 많지 않지만, 만약 작업해야 할 경우 하드코딩을 메시지 프로퍼티로 추출해 낸 뒤에 작업하는 법이 유용할 것입니다.

전편에 이어서 프로젝트의 빠진 jar 파일을 보충하는 방법입니다.
Problems 뷰를 보면 에러 목록을 볼 수 있습니다.

사용자 삽입 이미지

빨간 에러 메시지를 따라가면 Jetty 관련 파일들이 필요함을 알 수 있습니다. WebContent 폴더 아래 WEB-INF/lib 폴더에 jetty 관련한 파일이 없죠. Web App Libraries 아래와 동일한 목록입니다.
사용자 삽입 이미지

http://getahead.org/dwr/download 페이지로 돌아가서 dwr-2.0.1-src.zip 파일을 받으면 있을 것 같다는 생각이 들지 않나요? 다운 받아서 압축을 풀어봅니다. 그럼 jar 디렉토리가 보입니다. jetty-6.1.1.jar 와 jetty-util-6.1.1.jar 파일 2개를 탐색기에서 복사합니다. 파일 선택하고 ctrl+C
사용자 삽입 이미지

WebContent/WEB-INF/lib 폴더를 선택하고 오른버튼의 컨텍스트 메뉴에서 Paste 로 붙여넣기 하면 됩니다. 위쪽의 Libraries에 Web App Libraries는 동일해 보여도 바로 붙여넣기가 안됩니다.
사용자 삽입 이미지

자연적으로 추가된 두 개의 jar파일이 Web App Libraries 에 보이게 됩니다.
사용자 삽입 이미지

물론 jetty 관련 에러도 모두 사라졌죠. 하나 더 있군요. JettySpringLauncher.java 에 GenericWebApplicationContext 클래스요. org.springframework.web.context.support.GenericWebApplicationContext 패키지를 보니 스프링프레임워크를 참조하는군요. 같은 방법으로 spring-2.0.jar 파일을 추가하면 됩니다.

쉽죠. ^^;
하나 더 말씀 드리자면, 탐색기에서 드래그앤드롭으로 추가가 가능합니다. 복사죠.
드래그앤드롭 추가

드래그앤드롭 추가

WAR (Web application ARchive)
TAR와 비슷하죠. 묶는 겁니다. 무엇을? 위에 있잖아요. Web application을.

dwr 이라는 것을 샘플로 해보겠습니다.
http://getahead.org/dwr/download 에서 구할 수 있습니다.
dwr.jar 는 class로 구성된 java archive 파일이고, 그래서 jar입니다.
dwr.war 는 웹애플리케이션 묶여있는 것입니다.

jar 파일과 zip 파일의 압축 알고리즘은 같다고 알고 있습니다.
war 파일 안에는 WEB-INF/web.xml 파일을 포함해서 하나의 온전한 웹애플리케이션이 디렉토리를 갖추어서 들어가 있습니다.

이클립스에서 이 파일을 통해서 다이나믹 웹 프로젝트를 만들 수 있게 되어있습니다.
패키지 익스플로러에서도 가능하지만 WTP에 포함된 프로젝트 익스플로러(Project Explorer)에서 시작하겠습니다.

빈 여백에서 오른버튼을 클릭하면 컨텍스트 메뉴에 Import 가 있고 WAR file을 선택합니다.

사용자 삽입 이미지

dwr.war 파일이 있는 곳을 찾아서 지정하면 Web project 도 자동으로 채워집니다. Target runtime이 없다면 우측의 New... 버튼을 클릭해서 지정하시면 됩니다.
사용자 삽입 이미지

Next 버튼 말고 Finish 버튼을 클릭하면 dwr 프로젝트가 생성됩니다.
일단 여기까지 가져온 프로젝트의 디렉토리 구조를 확인해 보시면 됩니다.

에러 메시지가 보일 수 있는데 정리는 다음 글에서 다루도록 하겠습니다.

아주 오래 전 소스를 불러왔습니다. 이클립스가 존재한다는 것을 모르던 시절, 울트라에디트로 열심히 삽질하던 시절의 소스를 불렀습니다. 허걱. 한글이 다 별이 되었어요.

JSP 한글이 안 보이는 경우

JSP 한글이 안 보이는 경우

문제가 생기면 여는 페이지 있죠. 렌치랑 드라이버 가져와 보네트 열고, 잘 몰라도 들여다 보죠. Window > Preferences... 화면이죠. 검색어로 types 을 타이핑합니다. JSP가 보일 것이고, ISO-8859-1 이라고 아래 보이죠. 이것을 euc-kr 이나 ms949로 바꿉니다. 절대 잊지 말아야 할 것. 옆에 있는 Update 버튼을 클릭합니다.

사용자 삽입 이미지

그럼 바로 보입니다. 한글이... 별~나라에서 한글이 돌아왔어요.
사용자 삽입 이미지

^^ 이유는 나중에...
자바프로그램에서 propeties 라는 파일이 있습니다. classpath에 위치하면서 설정이나 다국어 처리를 위한 파일로 많이 씁니다. 주의할 점은 한글을 써 놓으면 그대로 쓰지 못합니다. 유니코드로 바꿔줘야하는데, %JAVA_HOME%\bin\native2ascii.exe 프로그램을 쓰고는 합니다.
사용자 삽입 이미지

이렇게 파일의 한글을 알아볼 수 없게 되어버립니다. 이쯤되면 한 마디 나오죠. "어쩌라고"

이클립스에서 프로퍼티 편집을 쉽게 하도록 플러그인이 일본에서 만들어졌습니다.
구글에서 propedit 하면 처음에 나오는 사이트입니다.
http://propedit.sourceforge.jp/index_en.html
이클립스에서 바로 플러그인을 설치할 수 있습니다. 업데이트 주소가 필요한데, 사이트에서 다음과 같은 주소를 찾을 수 있습니다.
http://propedit.sourceforge.jp/eclipse/updates/

이 주소를 복사하고 다음과 같이 이클립스 메뉴에서 Help > Software Updates > Find and Install... 을 선택합니다.
사용자 삽입 이미지

두 번째 메뉴을 선택합니다. Search for new features to install
사용자 삽입 이미지
참고로 첫 번째 메뉴 Search for updates of the currently installed features 는 현재 이클립스에 있는 컴포넌트들의 업데이트들을 찾아서 설치하는 메뉴입니다.

우측의 New Remote Site... 버튼을 클릭하고 Name에는 propedit , 아래 URL에는 아까 복사한 업데이트 URL을 붙여넣기 합니다. 그리고 아래쪽의 Finish 버튼을 누릅니다.
사용자 삽입 이미지

이후 Updaes 타이틀이 붙어있는 창이 뜨고 Search Results가 나옵니다. propedit 를 펼쳐보면 항목이 3개 있는데, 가운데 플러그인은 3.3에서는 동작하지 않아서 체크하지 않았습니다. 세 번째 플러그인은 vi 키보드 편집처럼 에디터를 쓸 수 있도록 해주는 것입니다. 같이 설치하도록 하겠습니다. 잘도 만드네요.
사용자 삽입 이미지

설치를 마치면 이클립스를 재시작합니다.

프로퍼티 파일의 아이콘이 바뀝니다. 오른 버튼으로 Open With라는 메뉴를 보면 가능한 편집기 리스트가 나옵니다. 첫 번째 Properties File Editor는 이클립스 내장 에디터입니다. 맨 처음 보았던 것이죠. 두 번째 있는 PropertiesEditor가 새로 설치한 플러그인에서 지원하는 에디터입니다. 아이콘이 다름을 알 수 있습니다. 이것으로 열어보겠습니다.
사용자 삽입 이미지

에디터 탭을 옮겨서 두 에디터를 비교하면 다음과 같습니다. 에디터 탭의 아이콘으로 구분이 가능합니다.
사용자 삽입 이미지

같은 파일이 편집기에 따라서 다르게 보임을 알 수 있습니다. 편집은 가독성있는 문자코드로 하고 저장만 유니코드로 자동변환되어 저장됩니다.

잘 쓰시기 바랍니다.
오늘은 요기까지입니다.

http://www.eclipse.org/eclipse/development/freeze_plan_3_3_1.html#R3.3.1
eclipse 3.3.1 endgame plan

eclipse 3.3.1 endgame plan


eclipse 3.3.1 버전이 위와 같은 스케줄로 진행되었습니다. 굉장히 복잡도가 높은 프로그램인데, 일정에 따라서 착착 진행되는 것을 보면 대단하다고 생각됩니다.
수정된 내용은 버그질라에 쿼리해보면 됩니다만 일일이 확인해보고 싶지는 않네요.
 complete list of bugs fixed in 3.3.1

아울러 다운로드 페이지도 변경되었습니다.
http://www.eclipse.org/downloads/
다운로드 페이지 변경

다운로드 페이지 변경


다운로드 패키지 파일명에도 -fall 이라는 것이 추가되었습니다.
eclipse fall

eclipse fall

자바의 주석은 몇 가지 있지만, 자바독(javadoc) 주석은 좀 남 다릅니다. API 문서를 자동으로 만들 때 자바독에 있는 내용들이 적용되기 때문이죠.
저의 코딩 스타일은 먼저 // 로 주석을 만들고 로직 레이아웃을 잡은 다음에 그 아래 코드를 채워 넣어가는 식입니다. 메소드로 뽑을 것이 있다면 뽑아주고, 거기에 주석 달아주고 하는 습관이 생긴지는 오래되지 않았습니다.

아래 샘플은 주석이 많이 안 달린 소스입니다. 클래스에 주석을 달아보겠습니다.
public class Thumbnailer { 라인 위에 한 줄을 비웁니다.
주석달기 전

주석달기 전


/** 세 문자를 치고, 엔터를 치면
사용자 삽입 이미지

다음과 같이 템플릿에서 지정한 주석이 생깁니다. 클래스의 주석 위치는 package 와 import 아래, 클래스 선언 바로 위입니다.
사용자 삽입 이미지

생성자나 메소드도 마찬가지입니다. 이 때 특이한 것은 파라미터들도 자동으로 자바독 내용에 포함된다는 것이죠. 내용만 잘 채우면 됩니다.
사용자 삽입 이미지

마우스 오른버튼의 컨텍스트 메뉴에서 Source > Generate Element Comment 항목을 선택해도 됩니다. 단축키는 Alt+Shift+J 입니다. Javadoc 의 J 이겠죠. ^^; 설마 JuSeok의 J일까요.
사용자 삽입 이미지

변수명이나 메소드명을 잘 짓는 것도 중요하지만, 비영어권인 국내에서는 후일 프로그램을 유지보수하는 사람을 위해서 최소한의 주석이라도 달아주는 것이 좋을 것입니다.

행복하세요.
책갈피, 북마크 기능을 소개합니다. 소스 줄 번호 앞의 여백에 지난번 소개한 브레이크 포인트 외에 북마크 표시도 가능합니다. 여백에서 오른 클릭하면 나오는 컨텍스트 메뉴에서 Add Bookmark... 를 선택합니다.
사용자 삽입 이미지

북마크 이름을 입력하는 칸이 나오는데, 친절하게 해당 라인의 소스가 적혀있네요.
사용자 삽입 이미지

OK버튼을 클릭해서 북마크를 만들면 소스 앞에 파란 리본의 책갈피 표시가 나타납니다. 우측의 소스 전체 영역 포지션에서는 녹색 포인트가 나타납니다. 여기에 마우스를 가져대면 손가락으로 바뀌면서 링크가 가능합니다.
사용자 삽입 이미지

이렇게 만든 북마크의 목록을 보기 위해서는 Bookmarks 뷰가 필요합니다. 메뉴에서 Window > Show View > Bookmarks 항목을 클릭합니다.
사용자 삽입 이미지
퍼스펙티브 아래쪽 뷰에 나타날 것입니다. 해당 북마크를 더블클릭하면 파일이 열리면서 커서가 북마크 위치에서 깜박거리면서 대기할 것입니다.
사용자 삽입 이미지

다 있네요. ^^
퍼스펙티브 바는 이클립스 우측 상단에 있습니다. 퍼스펙티브(perspective) 단어는 조감도를 생각하면 쉽게 이해할 수 있습니다. 영어로 perspective view 라고 하고 한자어로 새(鳥)가 바라보는(監) 그림(圖)이 조감도라고 하죠.
이클립스에서 얘기하는 퍼스펙티브는 작업의 종류에 따라서 뷰와 에디터가 배치된 세트입니다. 자바 퍼스펙티브는 자바 작업에 편한 구도이고, 디버깅 퍼스펙티브는 디버깅에 적합한 뷰의 구성입니다.
퍼스펙티브가 열리면 퍼스펙티브 바에 보여집니다.
사용자 삽입 이미지

텍스트가 있어서 길어보이면 Show Text 항목을 체크를 없애면 아이콘들만 보입니다.
사용자 삽입 이미지

퍼스펙티브 바에 있는 아이콘을 누르면 해당 퍼스펙티브로 바뀌게 됩니다.
사용자 삽입 이미지

좋은 하루 되세요.
이클립스는 workspace 단위로 프로젝트들이 그룹지어집니다. workspace를 달리하면 여러개의 이클립스를 띄울 수 있습니다.
사용자 삽입 이미지
이 Workspace 가 저장되는 곳은 어디일까요.
eclipse 홈디렉토리의 configuration 아래 .settings 폴더에 다음과 같은 파일이 있습니다. org.eclipse.ui.ide.prefs
사용자 삽입 이미지

파일을 열어보면 다음과 같은 내용을 확인할 수 있습니다. RECENT_WORKSPACES 항목은 최근에 실행된 workspace 순서대로 재정열 하게 됩니다.
Workspace Launcher에서 Use this as the default and do not ask again 항목 체크를 하게 되면 SHOW_WORKSPACE_SELECTION_DIALOG 값이 false로 저장됩니다.
사용자 삽입 이미지

workspace 목록에 관한 정보는 .metadata가 아닌 eclipse 홈디렉토리 아래 위치한다는 것은 당연한 얘기인가요. 윈도우의 레지스트리를 이용하지 않는 것은 다행입니다. ㅎㅎ

+ Recent posts