자바를 하다 보면 소스 날려먹고, class 파일만 갖고 서비스하는 곳도 있습니다.
이클립스에서는 class 파일만 있는 디렉토리도 참조할 수 있도록 되어있습니다.
디컴파일할 것이 아니라면 이런 클래스들은 jar로 압축해서 관리하는 것이 괜찮습니다.
예를 들어 cos.jar 가 압축이 풀린 상태로 있다면 다음과 같은 디렉토리 구조를 가질 것입니다. jar는 처음부터 없다고 가정하겠습니다.


사용자 삽입 이미지

주의할 점은 class의 루트는 com이 아니라 classes 폴더입니다. 패키지별로 폴더가 구성되는데, 최상위 패키지가 있는 폴더가 기준 위치입니다.
사용자 삽입 이미지

자바계열 프로젝트 속성에서 Java Build Path를 선택하면 나오는 화면입니다. Libraries 탭을 누르면 보입니다. 여기서 우측에 있는 Add Class Folder 버튼을 선택합니다.
사용자 삽입 이미지

클래스의 기준폴더를 선택합니다.

사용자 삽입 이미지

완료된 모습입니다.

좋은 하루 되십시오. ^^

이클립스 Workspace 외부에 있는 자원은 모두 external 이라는 제한이 걸립니다. 하지만 일정부분 읽고, 쓰기가 가능합니다. Open Resource를 통해서 검색도 됩니다.
단 history관리는 되지 않습니다.

다른 디렉토리를 이클립스 프로젝트에 붙여보도록 하죠. 만만한게 temp라 c:\temp 디렉토리를 붙여보겠습니다.

new Folder

new Folder

새로운 폴더를 만듭니다. 다이얼로그 창이 다음과 같이 뜹니다. 하단의 Advance... 버튼이 보입니다. 감 잡으셨죠. 네 거깁니다. 쩜쩜쩜이 왜 있겠습니까. ㅎㅎ

Link to folder in the file system

Link to folder in the file system

Link to folder in the file system 첵크박스에 체크해주시면 아래가 활성화됩니다. Browse... 버튼을 클릭하시고, 원하는 외부 디렉토리를 선택하세요.

external link

external link

temp 아이콘에 이물질 보이시죠. 윈도우 바로가기 아이콘과 비스타네요. ^^

다 됩니다. 이클립스.

이클립스 콘솔뷰에도 좋은 기능이 있습니다. 바로 resource연결입니다. 스택트레이스 같이 예외 메시지가 뿌려질 때 java파일일 경우 에러난 위치를 바로 보여줍니다.
모든 경우 적용 되는 것은 아닙니다만 똑똑해진 Open Resouce와 연결되면 편리하게 디버깅이 가능합니다.

WTP를 통해서 톰캣을 시작하면 콘솔뷰에 시스템 로그가 남습니다. 또 볼 수 있구요.
제 사이트를 돌려 보는 중에 메시지가 눈에 띄었습니다.

console log

console log


try catch에서 잡은 로그 메시지인 듯합니다. MemoServlet:... 로그가 보이는군요. 엇, 링크까지.
클릭해봤습니다.
Source not found

Source not found


Source not found for MemoServlet:java.lang.NumberformatException 라고 나옵니다.
보통 이쯤 되면 ctrl+shift+R을 눌러서 파일을 찾겠지만, 잠깐!
MemoServlet 글자를 마우스로 드래그해서 선택해보시죠. 그리고, ctrl+shift+R 를 하시면 다음과 같이 착하게 나옵니다.
Open Resource after text selection

Open Resource after text selection

착합니다. ^^ 파일을 열어서 살펴보겠습니다. 아마 이 부분인 듯 합니다.
review source

review source

디버깅을 해보니 || 가 아니라 && 이 되어야 되는군요.

^^ 요기까지입니다.
파일 검색을 많이 하는 편입니다. ctrl+H 를 클릭하거나 그림처럼 메뉴를 부를 때 해당 창이 뜹니다.
사용자 삽입 이미지

제일 먼저 나타나는 게 Java Search 탭입니다. 그런데 저는 보통 File Search 탭을 많이 사용하고 나머지 탭은 거의 사용하지 않습니다. 그래서 File Search 탭만 남겨보겠습니다. 창 하단의 Customize 버튼을 클륵하면 됩니다.
사용자 삽입 이미지

다른 두 개의 옵션은 꺼둡니다. 그리고 OK 버튼을 클릭하면 끝!
사용자 삽입 이미지

탭이 깔끔하게 정리됩니다.
사용자 삽입 이미지

간단하게 탭 조정에 대해서만 알아보았습니다. Replace... 를 통해서 찾은 패턴을 일관 대치할 수 있기도 합니다.

이클립스 프로젝트를 통째로 압축하면 그것을 바로 가져올(import) 수 있습니다.
http://code.google.com/p/daysago/ 에 올려 놓은 파일은 이클립스 프로젝트를 압축해 놓은 것입니다.

zipped project

zipped project

daysago-0.22.zip 파일을 다운로드 받습니다.

project import

project import

이클립스의 패키지 익스플로러에서 import를 선택합니다.
filter text에 "ex"를 입력하면 Existing Projects into Workspace 라는 항목이 보입니다.
Select archive file

Select archive file

두 번째 옵션인 Select archive file 를 선택하고 Browse... 버튼을 클릭해서 다운로드 받은 daysago-0_22.zip 파일을 선택합니다. daysago라는 프로젝트가 보입니다.

imported project

imported project


가져오기 작업 끝이죠. ^^


콘솔(Console) 에는 보통 로그가 찍힙니다. 그래서 중요합니다.
콘솔뷰는 로그가 상황에 따라 다르게 관리됩니다. 마치 레이어처럼 말이죠.
Tomcat 서버를 시작하면 나오는 로그가 콘솔 뷰에 보입니다.
Servers Console

Servers Console


뷰의 우측상단에 Open Console의 역삼각형 부분을 클릭하면 다른 뷰를 열 수 있죠.
Open Console View

Open Console View


CVS를 열어보겠습니다.
다음과 같이 CVS 로그가 보이게 됩니다.
CVS Console

CVS Console


구석 구석 세심함이 묻어있는 좋은 도구입니다. ^^
두 개의 프로젝트의 차이점은 일반 자바 애플리케이션이냐 웹 애플리케이션이냐 입니다. 그에 따라서 개발하는 소스의 디렉토리 구조가 달라집니다. 이클립스에서 프로젝트 아이콘의 모양도 차이가 있습니다. J 글자는 Java라는 의미이고, 웹프로젝트는 동그란 지구 이미지가 하나 더 붙어있습니다.
Java Project and Dynamic Web Project

Java Project and Dynamic Web Project


일단 eclipse 3.3 wtp에서 옵션 조정없이 Java 프로젝트와 Dynamic Web Project를 만들어서 설정파일을 비교해 보았습니다. 퍼스펙티브는 모든 파일이 다 보이는 Resource Perspective로 정했습니다.
compare with each other

compare with each other


만들어진 두 개의 프로젝트를 선택하고 Compare With > each other를 선택합니다. 두 프로젝트의 디렉토리, 파일이 비교됩니다.

directory, file diff

directory, file diff

.classpath 파일은 프로젝트의 클래스패스가 지정되는 파일입니다. 이 파일 덕분에 환경변수에 클래스패스를 지정하는 고전적인 자바 개발법에서 벗어날 수 있죠. 하단의 파일 비교를 보면 웹 프로젝트 쪽에 2줄이 더 추가된 것을 알 수 있습니다.
일반 자바 프로젝트에서 자바 웹 프로젝트로 변하면서 추가된 디렉토리는 .settings , build, WebContent 디렉토리 셋입니다. build/classes 디렉토리는 bin 디렉토리의 대체입니다.
.project를 더블클릭해서 비교해 보시면 프로젝트 속성이 어떻게 변경이 되었는지 확인할 수 있습니다.

이크립스를 사용하면서 왼쪽에 나오는 패키지 익스플로러의 디렉토리 구조가 익숙하지 않은 경우가 많이 있을 것입니다. 워낙 윈도우 탐색기에 익숙해져서 패키지별로 나열되는 것이 눈에 거슬리는 것이죠.

flat list
사용자 삽입 이미지
그래서 Navigator뷰를 띄워서 탐색기처럼 사용하는 경우가 종종 있습니다.
Navigator View

Navigator View

자바 개발시 네비게이터 뷰를 사용하게 되면 파일에 에러가 난 경우 표시가 되지 않습니다. 패키지 익스플로러에서는 하위에서 에러가 난 경우 최상단까지 상태가 안 좋다는 표시를 해줍니다. 다시 패키지 익스플로러로 돌아가서 디렉토리 보기 형태를 바꿔보도록 하겠습니다.
사용자 삽입 이미지
뷰의 상단 우측에 보이는 역삼각형을 클릭하면 메뉴가 나옵니다. Package Presentation 메뉴 위에 마우스를 가져가면 두 가지 서브메뉴가 나오는데, 감잡으셨을 겁니다. Flat과 Hierachical 중에 Hierachical을 선택하면 다음과 같이 변합니다. 탐색기와 유사하게 되죠.
Hierachical

Hierachical

도구의 맛이랄까요. 옵션을 하나씩 알아갈 수록 맛있지 않습니까.
더운 여름 시원하게 보내시길 바랍니다. ^^

kenu
매주 토요일 회사에서 플렉스 세미나가 있는 관계로 개인적으로 추진하는 세미나를 하지 못했었습니다. 마지막 한 주를 남기고 강사님이 입원하였기 때문에 토요일에 시간을 낼 수 있었습니다. 강사님 빨리 완쾌하길 바랍니다.

언제 완성될지도 모르는 책을 쓴답시고 떠들고 다니는데, 책 쓰고 있는 내용을 정리하는 겸 해서 오늘 세미나를 합니다. 2시간이라는 시간은 아주 짧은 시간입니다. 다룰 수 있는 내용도 한정적입니다. 적어도 오늘 전달하고 싶은 내용은 eclipse WTP 환경을 설정하는 방법과, 디버깅하는 방법, 그리고 이클립스에서 재미있게 노는 방법들 입니다.

20명 넘게 신청을 하셨는데, 이미 만난 적이 있는 분이 반, 그리고 새로운 만남이 반입니다. 지식전달보다 가치 있는 것은 정신적인 교감입니다. 마음이 맞아야 일이 진행이 되는데, 또 한 번 노력을 해야겠습니다.

매번 책을 협찬해주시는 에이콘 분들에게도 고맙다고 써야 되겠지요. ^^

오늘 오신 분들 잘 오셨습니다. ^^

이클립스 3.0 오면서 들어간 텍스트 박스가 굉장히 인상적이 었습니다.
처음엔 관심 갖지도 못했지만, 이 기능을 알고 나서 굉장히 강한 인상을 받았습니다.
이후 3.3 까지 업그레이드 되면서 text 필터링이 곳곳에 배치됩니다.
바로 이놈이죠. type filter text

type filter text

type filter text

설정할 메뉴가 많다는 것은 은근히 압박을 줍니다. 트리 구조의 메뉴를 펼치는 것도 만만치 않는 수고가 필요하죠. 하지만 필터 박스에 원하는 키워드를 입력하면 해당 키워드를 포함하고 있는 메뉴가 나타납니다.

type keyword "font"

type keyword "font"


좌측 아래의 메뉴가 정리됩니다. 깨끗해지죠. 지독한 이클립스입니다. 왜냐구요. 우측 상단에 도 보이시죠. 아래 항목이 많으니까 또 나선 것입니다. 사용법(인터페이스)은 같습니다.

이 기능은 다른 곳에도 존재합니다. 리소스(파일)을 찾는 ctrl+shift+R (또는 alt+n, u) 창에도 동일한 인터페이스가 있습니다.
Open Resouce Pop

Open Resource Pop

파일 두 개가 보이는 것은 최근에 열었던 파일입니다. 필터는 *, ? 패턴을 사용할 수 있습니다. *.java 라고하면 .java로 끝나는 모든 파일이 나타나게 됩니다.
filter pattern

filter pattern

계속 더 보겠습니다. 자바 파일에서 ctrl+O 로 클래스의 아웃라인을 볼 수 있습니다. 여기도 위에 있는 공백에 단어를 입력할 수 있도록 되어있습니다.

사용자 삽입 이미지


더 있지만 마지막으로 하나 보겠습니다.
task find

task find

task list에서도 Find: 라는 텍스트박스가 있습니다. 많은 항목에서 검색은 필수입니다.

이클립스를 보면 UI에서 배울 점이 너무 많습니다. 디테일에 강한 툴이라고 자신있게 얘기해 봅니다.

+ Recent posts