2012년 7월 31일 화요일

7/2

이제부터는 날짜를 맞추기 위해서 여러가지 자료를 모아 보려고 한다.

이클립스란 툴이 점점 익숙해져 간다. 참... 대단하다. 초기 개발 자금이 500억이라고 했었는데

여러 회사가 참여했다고 한다. 그럴만도 한 것이 오픈소스로 개발하면서 프로젝트에 참여한 후

알고리즘을 얼마든지 자기 회사의 제품에 넣을 수가 있기 때문이겠지.

내가 지금 사용하고 있는 프로그램들이 얼마나 대단한 수고와 노력으로 이루어졌는지 조금씩

깨달을 수가 있는 것 같다. 문제는 복사가 너무 쉽다는 것. CPU 같은 하드웨어는 복사가 안되니

참으로 대단. 하기사 칩의 재료도 백사장에 반짝이는 것들이라고 하니... 하드웨어든지 소프트웨어

든지 오로지 기술력으로만 이루어져 있다고 할 수가 있겠지...

슬슬. 캡춰를 시작해 볼까.

참... 내가 쓰는 글들을 누군가 읽을까 하지만. 우선은 밀린 다이어리에 대한 반성과 앞으로 디지털

의 행보를 꾸준히 하려는 나의 의지다. 그리고 누군가에게 분명 도움이 될 것이라 생각된다
 
 
 
 
 
 
 
옵션 설정에 도움되는 몇가지 팁.
이클립스 2.x 영문 버젼에서 나오는 것인데 그냥 알아두면 도움이 될 것 같은 내용.

Conflict of interface method with protected `Object` method : Object 클레스에 protected 메소드로 정의된 메소드를 인터페이스에서 호환되지 않게 정의했다. 즉 인터페이스에서 당므과 같은 식으로 메소드를 선언한 경우.

interface XXX {
public int clone();
public int finalize();
}
원래 있는 것인디.

Hidden catch blocks : 앞의 catch 블록에 의해 뒤의 catch 블록이 가려진다.

try { new FileInputStream("aFilePath"); }
catch (FileNotFoundException e) {}
catch (IOException e) { // 예외 상황이 안 옴 }

FileNotFoundException은 IOException의 서브타입이고, FileInputStream의 생성자가 던지는 예외 상황은 FileNotFoundException 뿐이므로, 두 번째 catch 블록ㅇ느 절대 실행되지 않는다.

Non-static access to static member : 정적 멤버를 인스턴스 멤버인 것처럼 사용하고 있따.

class A {
...
public static void methodA() { ... }
}
...
A a = new A();
a.methodA(); // 여기

Access to a non-accessible member of an enclosing type : 내부 클래스에서 자신을 감싸는 클래스의 private 멤버에 접근하고 있따. 예를 들어 다음과 같은 경우다.
class A {
...
private String str;
...
class InnerOfA {
...
void innerMethodA() {
...
System.out.println(str); //여기
...
}
}
}
 
 
 
 
 
 
 
 
 
 
자바에서 MYSQL 이나 JDBC 드라이버를 사용하려면 어떻게 할까?
우선 JAR 파일을 받는다. mysql 이나 jdbc 드라이버는 하나의 jar 파일로 구성된다. C에서 말하는

라이브러리와 같다. 패키지 익스플로어에서 프로젝트를 하나 연 다음 .... 주 메뉴의 프로젝트로

간다. 제일 밑에 특성쪽으로 가면 프로젝트의 환경설정 창이 뜬다. 빌드 경로를 클릭하면 메뉴가

나오는데 거기서 라이브러리를 선택한다. 그리고 오른쪽에 보면 외부 Jar 파일 추가가 있는데 거기

서 추가해주면 된다. 보통 java/jre/lib/ext에 넣으면 자동으로 인식을 한다.

프로젝트마다 추가하기 힘들면 창 - 환경 설정으로 가서 java를 열고 빌드 경로를 선택하면 된다.

참.... 이클립스 한글 패치는 그냥 이클립스 폴더에 한글 패치를 덮어 씌우면 된다. 문제점은 영문판

에서 전환이 어렵다. 영문판 쓰는게 편한 사람들은 잘 적응을 못하는 경우도 있었다.
 
 
 
 
 
 
http://eclipse.org
http://eclipsewiki.swiki.net
http://okjsp.pe.kr
http://www.javastudy.co.kr
http://jlab.net
http://www.javajigi.net
http://eclipsians.net
 
 
 
 
 
 
 
CVS란 무엇인가? Concurrent Version System의 약자로 말 그대로 공동의 버젼 시스템? 좀 이상한다. 여하튼 버젼 컨트롤 시스템이다. CVS는 윈도우 버젼과 리눅스 버젼을 사용해 봤는데 윈도우 버젼은 자기 컴퓨터에 쓸 때 유용하게 이용할 수 있는 것 같다. 그냥 저장보다는 CVS를 이용하면 고쳤을 때 버젼이 JAVA화일에 버젼이 매겨지고 자동으로 버젼이 올라간다. 그리고 버젼별로 파일이 저장된다. 패키지 익스플로러에서 Ctrl+N 하면 해서 프로젝트 -> CVS -> CVS에서 체크아웃을 하면 현재 CVS에 있는 자료들을 받을수가 있다. 계정하고 저장소 포트 번호들을 넣어주면 된다.

패키지 익스플로러로 가서 마우스 오른쪽 버튼을 눌러 Team(팀)에 가면 CVS관련 메뉴가 나오는데 싱크로나이즈하고 커밋(Commit), Update밖에 안쓴다. 기타 태그나 여기 좋은 기능이 있지만 알아야 쓰제... 여하튼 Commit은 현재 자기 자료를 올릴 때 Update는 자료를 받을 때, Sincronized.. 어쩌구는 자기가 편집하고 있는 자료가 최신 업데이트가 되지 않은 채... 즉 현재 자기가 편집한 화일이 저장소에 파일로 충돌이 있을 때(동시에 두사람이 작업한 경우) 사용하는 것이다. 마지막으로 편집한 사람이 싱크로를 해 줘야 하는데 싱크로 해보면 자동으로 싱크로 퍼스펙티브로 변경되면서 로컬 파일과 서버에 있는 파일이 같이 뜬다.

Ctrl+F8로 CVS로 관점을 변경하고 Alt+W에서 보기 표시를 보게 되면 CVS관련 보기가 Other에서 찾기 않아도 자동으로 나와 있다. CVS 자원 히스토리를 클릭하면 밑에 창이 뜬다. 패키지 익스플로러에서 아무 클래스나 클릭하면 그 클래스가 Commit될 때 적어논 메모가 보여진다.
 
 
 
 
 
 
이클립스의 Windows에 가서 이래저래 하다보면 보기 표시(난 한글 패치를 해서... 메뉴이름이 한글로 나온다)에 가면 타스크 라는 것이 있다. 타스크를 열면 현재 프로젝트에서 TODO 라고 씌여진 부분이 나타나게 되는데 공동작업 할 때 유용하다.
어떤 매서드를 만들다가 중단한 경우 // TODO : 여기서 중단되었음 길동아 좀 봐도... 라고 해 놓으면 TASK 창을 열면 TODO라인이 뜨면서 설명이 나오고 바로 가기가 된다.

오늘 단축키는

Alt+Shift+S 와 Alt+Shift+T이다. 각각 소스메뉴와 리펙토링 메뉴에서 중요한 메뉴가 뜬다. 단축키를 다 외우는 것이 더 좋기는 하다만....

Ctrl+M 의 경우 현재 편집창의 크기를 크게 한다.

그리고 가장 유용한 기능

Ctrl + A 해서 전체를 선택하고 Ctrl+Shift+F를 누르면 소스가 정렬이 된다. 정말 좋은 기능이다.

 
 
이클립스는 퍼스펙티브라는 관점에 따라서 필요한 창이 뜬다. 그리고 배치도 틀리다. windows에서 perspective 사용자 정의나 불러 오는 옵션들이 있다. 기본적으로 JAVA, DEBUG, CVS Repository Exploring, Resource 등을 많이 쓴다. Ctrl + F8을 누르면 변경시킬 수 있다. 숏컷바를 이용해도 되는데 내 일기장에는 되도록 단축키만 적으려고 한다.

Ctrl + F8 퍼스펙티브 변경
Ctrl + F7보기 이동 (아웃라인이나 패키지 탐색쪽으로...)
Ctrl + F6 열려진 창끼리 이동.

어디에 있던지 F12를 누르면 편집창으로 이동된다.

Alt+Shift+Q P 패키지 익스플로러로 바로 가고
Alt+Shift+Q X 문제점창으로 바로 간다.
Alt+Shift+Q T 계층 구조로 바로 간다. 계층 구조를 열려고 하면 편집기에서
해당 매소드나 클레스로 간 다음. F4 키나 Ctrl+T를 누르면 된다. 둘의 기능은 틀리다.
 
 
 
 
 
 
 
이클립스를 실행시켜 보려고 한다.
www.eclipse.org에서 이클립스를 받자. 다운로드로 가면 받을 수 있는데...

Release : 릴리즈 버젼이다. 말 그대로 배포하기 위해서 정식 버젼으로 인정된 것을 말한다.

Integration Build : 각 컴포넌트에서 안정적인 것들을 통합한 버젼..

Stable Build : Integration Build 중에서 사용자가 안정적으로 사용할 수 있다고 평가된 버젼.

Nightly Build : 수정 여부에 관계없이 매일 밤에 빌드한 버젼.

Release를 받으면 된다.

자바 런타임도 깔자. 이클립스에서 자동으로 JRE를 찾지 못한다면....

eclipse.exe -vm c:\j2sdk.1.4.1/bin/javaw.exe 라는 식으로... JAVA 5인 경우엔 c:\prog...\java\jre\bin\javaw가 될 것이다.

기타 옵션은.

eclipse.exe -data c:\myprogram workspace 디렉토리 지정..


eclipse.exe -vmargs -Xmx256m 최대 메모리 값을 지정. 자바는 메모리를 많이 사용하기에 이 정도는... 원래는 128을 쓴다. 메모리가 부족하면 속도가 느려지거나 정상동작이 안된다고 한다.
 
 
 
 
 
 
나의 디지털 다이어리도 끝나가는 것 같다. 요즈음엔 자바 공부밖에는 하지 않고 있다. 여기저기 책을 뒤적거리며... 그것들로 내 다이어리를 채울 수 있다면 좋을텐데...
AWT 컴포넌트들은 중량 컴포넌트라면 SWING은 경량 컴포넌트라고 할 수 있다. 단 JApplet, JDialog, Jwindow, JFrame들은 중량이라고 할 수 있다. 이것들은 AWT 클래스의 직접적인 서브 클래스이기 때문에 플랫폼에 종속적이다.
위의 네가지만 제외하면 스윙 컴포넌트는 100 퍼센트 순수 자바 코드로 이루어져 있다. 플랫폼에 독립적이기 때문에 스윙 버튼이나 텍스트 영역이 매킨토시, 솔라리스, 리눅스, 윈도우에 독립적으로 보이고, 기능 또한 각 플랫폼에 맞게 동작시킬 수 있다. 이런 형태의 디자인은 각 플랫폼에 따른 애플리케이션의 디버그나 테스트의 필요성을 감소 시킨다.

MVC 구조를 모델/뷰/컨트롤러 구조로 객체지향 사용자 인터페이스를 분리하여 디자인한 구조이다
 
 
 
 
 
 
 
 
 
이클립스 핫키 추가~

Alt + Shift 는 AS라고 하면...

AS + L : Local 변수 추출 system.out.println("ㅁㄴㅇㄻㄴㅇㄹ"); 에서 ㅁㄴㅇㄻㄴㅇㄹ 에서 이 버튼을 누르면 저 문자들이 변수로 추출되고 자동으로 String 형 변수 선언과 동시에 변수도 저기에 들어 가게 된다.

AS + I : Inline 위에 것과는 반대의 과정을 수행한다. 선언된 것을 집어넣고 변수 선언을 없애준다.

AS + M : 범위를 선택하고 누르면 그 부분을 메서드로 추출해 준다. main 부분에 너무 많은 내용이 있다면 void형 매소드로 추출해서 간결하게 할 수도 있고....

Alt + 좌 우 방향키 : 바로 전이나 전전에 작업했던 작업창으로 간다. 작업창을 전환하는 Ctrl+PageUP, pageDOWN보다 더 유용하다.

F3을 두번 연속으로 클릭 : 선택된 것이 정의된 곳으로 이동한다.

TODO만 모아놓는 창이 있다. Alt+W 해서 찾아 보도록
 
 
 
 
 
 
 
이클립스 단축키 중 유용한 것 추가~
Ctrl + T = 계층구조를 보여 준다. 커서가 위치한 곳의 매서드도 계층 구조를 보여준다.

F4 = 계층 구조를 보여주지만 화면에 보이는 클레스의 계층 구조를 보여준다.

Alt + Shift + J = 주석을 붙여준다. Ctrl + / 와는 달리 커서가 위치한 매서드나 클레스의 위쪽에
자동으로 Javadoc용 주석표를 붙이고 형식을 지정해 준다.

Page UP이나 Page Down으로 열려진 소스들을 이동하지 않더라도 Ctrl + E를 하면 선택해서

이동할 수 있다.

Alt + Shift + S 는 소스쪽 Alt + Shift + T 는 리펙터쪽의 팝업 메뉴를 띄워준다.

그리고 가장 중요한 팁~

Ctrl + Q는 조금전까지 타이핑하거나 지운 쪽으로 이동시켜 준다. 즉 소스를 치다가 위에 쳤던 곳을

보려고 막 이동하다가 Ctrl+Q를 누르면 바로 편집하던 곳으로 이동시켜 준다. 정말 유용하다.
 
 
 
 
 
 
 
 
 
아직 이클립스 시작단계인 내가 이클립스를 쓰면서 많이 쓰는 단축키는 이렇다.
Ctrl + SpaceBar 자동 완성 기능 과 Ctrl+1 자동 오류 수정 기능은 엄청나게 쓴다.

Ctrl + A 눌러서 전체 선택하고 Ctrl + Shift + F 도 엄청 쓴다. 그러면 소스가 자동 정렬된다.

Alt+Shift + (이하 AS +) Q + P 도 자주 쓴다. 패키지 탐색기를 많이 이용하기 때문이다.

AS + Q + O 는 아웃라인 창으로 가고, AS + Q + X는 문제점으로 간다.

창끼리 이동하는 것은 Ctrl + PageUP이나 Ctrl + PageDOWN을 쓴다. 여러 소스가 열려있을 때

정말 편리하다. 그리고 소스창이 너무 작을 때 Ctrl + M을 누르면 창이 커지고 작아지기도 한다.

Ctrl+Shift+ W는 지금 열려있는 소스창들을 다 닫아 준다.

뭐, 이 정도만 쓰고 있다. 일단은. 100가지가 넘는데 언제 다 외우지 --;
 
 
 
 
 
 
 
 
 
 
 
잠시 리눅스로 돌아가서.... 명령어 복습좀 해보려 한다.
/etc/aliases 단축 명령어 모음
관련 파일 /etc/aliases.db, /usr/include/aliases.h

arch = uname -m

bg %1
fg %1
jobs

cat -n

finger
chfn -u 사용자 정보변경

ulimit -c 0 - 비정상 종료시 메모리 덤프 내용의 코어를 만드는데 안만듦.

chsh -l 쉘 종류 보기
chsh -s bash 배쉬로 바꾸기.

애거.. 리눅스 서버 해킹 당하고 나서 명령어를 쓰지 않았더니 점점 잊혀져 간다. 크레커가 왤케 많은 거여.
 
 
 
 
 
 
자바의 주요 패키지 간단히 적어 보려 한다. 책에 있는 내용을 적었다. 객체지향 디자인 패턴(정보문화사) <- 뭐 어차피 API에 있는 거고 덧붙인 설명도 없는 것이라 인용이라 생각되진 않는다.

java.lang : 기본적인 자바 클래스들을 포함하고 있는 패키지. import를 사용하지 않아도 기본적으로 자바 프로그램속에 포함되는 패키지이다.

java.io : 입/출력(파일을 포함한 모든)과 관련된 클래스들이 모여있는 패키지다.

java.util : 유틸리티 클래스들이 모인 패키지

java.net : 네트워크와 관련된 클래스들이 모인 패키지

java.awt : 모든 플랫폼에서 통용되는 GUI(그래픽 유저 인터페이스)와 관련된 클래스들이 모인 패키지

java.applet : 자바 애플릿을 만드는 데 사용되는 클레스들이 모인 패키지.
 
 
 
 
 
 
 
 
클레스의 종류는 몇가지가 있다.

걍 클레스, 중첩 클레스, 내부 클레스, 로컬 클레스, 익명 클레스...

중첩 클레스는 static로 선언되어서 클레스 속에 있는 메소드와 같다. 클레스 속에 또 하나의 클레스

가 있는 것이다.

내부 클레스는 static은 아니고 내부에 있다. 만약 중첩 클레스가 B이고 그것을 둘러싼 것이 A라는

클레스이면 A a = new A(); A.B b = new A.B(); 해서 중첩 클레스를 호출 할 수 있는데 내부

클레스는 A,B b = a.new B(); 로 해야 한다고 한다.

왜 그런지는 나도 모른다. 지식in에 물어봐야 겠다.

로컬클레스는 메소드 속에 정의된 것이고 익명은 클레스 이름이 없는 클레스이다. 이것밖에 모른다.
 
 
 
 
 
 
Eclipse는 식이란 뜻이다. 월식, 일식하는 세레모니?

sysout 하고 Ctrl+SpaceBar 하면 system.out.println이 되는 줄 알았는데 syso 만쳐도 되었다.

Eclipse는 3.0.1 버젼까지 나왔고 한글판 언어팩 깔면 도움말까지 한글로 나온다.

TODO를 적어 놓으면 코딩창의 오른쪽에 파란색 점이 표시되는데 그것을 클릭하면 TODO쪽으로

바로 이동이 된다. 책갈피 기능 같은 것이다.

플러그인이 600가지가 넘는다. 몰랐다. 사이트는 www.eclipse-plugins.info 다.

대체적으로 플러그인 설치법은 압축풀고 덮어 씌우면 된다. 자동으로 Add가 된다. plugin 폴더에.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

diary 7/1

퀸의 노래가 끝나고 또 퀸의 노래가 흘러나온다.

이런 슬픔이 좋다.

아까 말했듯이... 블로그 제목이 내 이름이듯...

그 밑에 있던 REI가 에반게리온의 REI... 그리고 고등학교 때 별빛을 쓰는 청소부 어쩌구 하며

썼던 시의 대상이기도 한...

신성우의 슬픔이 올 때를 가장 먼저 들었는데. 우정과 사랑은 별개라고 하지만 노래는 뭔지

모르게 참 와닿는다.

정말 죽어버린 것과 마음속에서 죽어 버린 것.

뭐가 다른걸까.... 없다는 것 똑같은데...
 
 
 
 
 
 
 
 
 
사람과 사람이 인연을 맺는다는 것은 여러가지로 나눌 수 있지만, 이렇게 생각하는 것도 그 한가지 인 것 같다. 우선 인연은 좋아해야 한다.
보아서 인연이 닿는 사람이 있고...
보지 않을 때 인연이 닿는 사람이 있다.

보아서 인연이 닿는다는 것에는 오직 순수 그 사람의 모습만 보아서 좋다는 것이다.
단지 보이는 모습.

보지 않을 때 인연이 닿는다는 것은 쉽게 설명할 수는 없지만... 항상 어머니한테 틱틱거리고
애인에게 자신감있는 모습을 보이지만.

뒤돌아 서면 항상 걱정하고 작아지는 내 모습을 발견하는 것이다.

좋아하지만 아프다.
 
 
 
 
 
 
 
 
가끔 집 열쇠를 제대로 잠궜는지를 확인하려고 돌아올 때가 있다.
나는 그것을 확실히 기억하는 법은 안다.

문을 잠글 때

"나는 지금 특수키를 잠그고 있고, 집문을 잠그고 있다"고 머릿속으로 말하는 것이다.

생각하는 것이 아니다. 입으로 말을 하듯이 머릿속으로 말을 한다.

그러면 다시 돌아 올 일은 없다.

제일 좋은 방법은 자신은 항상 집을 나올 때 문을 잠그는 습관이 있으며 그것을 확실히

신뢰하는 것이다.

우스운 것은 그 신뢰는 틀릴 가능성이 있다고 생각할 때 우리의 기억력은 조각나고 건망증은

시작 된다는 것이다.
 
 
 
 
 
 
 
 
 
내 블로그 제목 68616A756E686F 은 내 이름이다.
hex 에디터에서 hajunho를 치니 저렇게 변환 되었다. 내가 외우지도 못하는 저 것.
나도 모르는 것을 다른 사람은 알리가 없다.
그래도 하나밖에 없다. 특별하다. 그래서 좋다.
준호라는 이름은 너무도 흔하다. 아마 사람들은 쉽게 기억할 것이다. 준호라는 이름을
한 번 듣고 ... 다시 마주칠 때는
누구 였더라...
아... 준호.
하지만... 그 준호는 내가 아니다. 숱하게 이름 지워지는 그런 이름 준호.
내가 버리고 날 버린 아버지가 지은 이름.
가끔은 아무것도 아니고 싶다.







Queen의 Too much love will kill you 를 듣고 있다.

요즈음 어머니와 그녀 때문에 많이 힘들어 하면서 김광석의 "너무 아픈 사랑은 사랑이 아니었음을"

몇 달 동안 계속 들었었는데.

지금은 어떤 것이 사랑인지도 모르겠다.

그리고 물어보고 싶지도 않다. 사실... 슬픔 속에 있으면서 이야기를 한다는 것은

누군가가 구해줄 밧줄을 던져 주길 바라는 것과도 같다.

끄적이는 것이 얼마나 하찮은 것인가? 누구는 몇 달이 걸려서 하나의 작품을 완성하기도 하고.

뭔가를 알리기 위해서 꼼꼼하게 작업을 하기도 한다.

난 단지 끄적거리고 있다.

그도 그럴것이 이곳은 내가 중압감을 느낄 곳이 아니요. 내가 좋아서 만든 곳이다.

내 단점은 싫어하는 것은 정말 안한다는 것. 그래서 다 좋아한다고 나를 속여가고 있었나보다.











사실은 슬프지 않다.

내 나이 스물 다섯. 동갑인 그녀는 결혼할 나이가 다 되어간다.

보통 서른 넘어서 한다고들 하는데 그녀의 친구들은 하나같이 결혼이 다 했다.

몇 안 남은 친구들은 올 해 간다.

난 결혼이 같이 살고 싶어서 하는 것이 생각했다.

하지만 솔직한 마음에 돈 때문에 하는 것도 같다.

그래서 이해가 간다.

사귀면서 결혼은 따로 생각 하는 아이들이나.

결혼해서 이혼하는 경우들이.









오늘은 참 쓸게 많을 것 같다.

그녀와 헤어졌다.

여자를 사귈 일은 있겠지만 결혼할 일은 없겠지.

드디어 찾아왔다. 한없이 쓰고 싶어지는 밤.






스킨을 바꾸었다. 유료 스킨 사서 쓰고 있었는데... 메뉴 변경이 너무 짜증이 났다 --; 150일 정도 남았는데 나중에 또 심심하면 다시 돌아가야지.

이 세상에 싫증나지 않는 것은 없는가보다. 모든 것이 그렇다. 믿음 소망 사랑이라는 대명제를 제외하고는 공부도 노는 것도 스타크레프트도 ...

왜일까?

인간은 원래 그런 존재라면 간단히 답이 나온다.

그 외에 다른 이유는?

.
.
.

아무리 생각해도 내가 여러가지에 지루함을 느끼는 것을 모르겠다.

인간은 자율적이라는 편에 있었는데... 역시 강제적인 외부의 자극이 있어야 하는걸까...



필요한 자료를 워드 타이핑을 하고 있는데 일전에는 아르미나 아크로뱃의 문자 인식 기능을 썼었다.

우선 아크로뱃 문서같은 경우에는 아크로뱃 프로그램에서 문자 변환 기능이 있다. 영어 같은 경우에는 완벽에 가까울 정도로 번역이 된다. 실제 문서를 PDF로 만든 것이니 오차가 없을 법도 하지만 아크로뱃 문서는 그래픽 형태인 것 같다.

한글이나 표들은 아르미로 변환이 가능한데 아르미의 경우 스캔이 조금이라도 삐툴어지면 인식률이 현저히 낮다. 사람들이 말하는 "인식률이 형편없다"는 이야기는 여기서 나왔다. 하지만 삐툴어 지지않게 하고 해상도를 높히면 엄청난 인식률을 보인다. 표도 인식을 해서 한글 화일에 표로 만들어 주고 표 안의 내용도 거의 똑같이 들어간다.

하지만 지금 타이핑 하고 있는 이유는... 작업장에서 스캔하는게 너무나도 귀찮기 때문이다.






좋은 내용이 글로 올라와서 팁란에 복사합니다.
더 많은 분들이 공유하기를 바라는 마음에서요..

===========================================================

일본의 이클립스 책에 그 내용이 아주 자세히 있는데.
한번 옮겨 드릴께요...
참고 하시길...

^^
CVSNT를 실행시키면 뜨는 작은 윈도 창에 Repositories폴더를 보면 Valid Repositories Roots가 있죠.

그 위에 체크 박스(Repositoriy Prefix)가 있는데 그걸 끄세요.
그리고 밑에 Valid Repositories Roots에다가 그 절대 경로를 다 써 주세요.

C:\cvsrepo\
이렇게요..

그리고 C:\cvsrepo\CVSROOT

안으로 접근해서 그안에 passwd라는 파일을 확장자 없이 만드세요.

그리고 그 파일 안에 사용자를 추가 합니다.
원래 디폴트로 계정이 사용자로 잡히지만 새로이 사용자를 추가할때는 이 파일안에 쓴답니다.

그 디랙토리를 프롬프트 창으로 접근하세요.
C:\cvsrepo\CVSROOT>
안으로 말입니다.

그안에서
사용자를 추가할께요.

이름은 유저 : admin, 패스워드 : admin으로..
C:\cvsrepo\CVSROOT>
에서
cvs passwd -a -r Administrator admin
이렇게 치시면
그럼 새로이 유저가 추가 되고 패스워드 입력하는 부분이 나오면
패스워드도 admin이라고 하고.

그럼 될겁니다.

그리고 나머지는 이하 생략!



다 아시는 내용일지 모르지만 도움되시는 분이 있길 바랍니다..^^

How do I get the assert statement to work?

이클립스 3.0이하에선
Go to Window -> Preferences -> Java -> Compiler -> Compliance and Classfiles
에서 Compiler Compliance Level 을 1.4로 바꿉니다.
그럼 된다네요

이클립스 3.0이상에선
Go to Window -> Preferences -> Java -> Compiler -> Compliance and Classfiles and set:

Compiler Compliance Level: 1.4
Use default compliance 을 체크푸시고
Generated .class files compatibility 1.4 로 바꿉니다.
Source compatibility을 1.4로 바꾸시면 됩니다.
Compiler Compliance Level 을 1.4로 마지막으로 바꾸시구요

그리고 마지막으로 실행하실때 VM 인수를 -ea로 주시는거 잊지
마시구요
javajigi.net






이클립스는 구동시 XML Parser로 Apache Xerces를 사용합니다.
Xerces는 (이클립스 2.1의 경우) $ECLIPSE_HOME/plugins/org.apache.xerces_4.0.7/xercesImpl.jar 에 위치하는데, 시스템 클래스 패스에 다른 XML Parser가 잡혀있으며, 그것이 이클립스가 사용할 수 없는 것이라면 문제가 될 수 있습니다.
따라서, 이클립스가 사용할 수 없는 XML Parser를 클래스 패스에서 제거하세요.



>이클립스가 구동되지 않으며 .log 파일에 다음과 같은 메시지가 남습니다.
>
>!SESSION ----------------------------------------------------------------------
>!ENTRY org.eclipse.core.launcher 4 0 5월 13, 2003 09:28:44.929
>!MESSAGE Exception launching the Eclipse Platform:
>!STACK
>java.lang.ExceptionInInitializerError: java.lang.ClassCastException: org.apache.xerces.parsers.StandardParserConfiguration
> at org.apache.xerces.parsers.SAXParser.(SAXParser.java:95)
> at org.eclipse.core.internal.plugins.PluginParser.initializeParser(PluginParser.java:80)
> at org.eclipse.core.internal.plugins.PluginParser.(PluginParser.java:44)
> at org.eclipse.core.internal.plugins.RegistryLoader.processManifestFile(RegistryLoader.java:89)
> at org.eclipse.core.internal.plugins.RegistryLoader.processPluginPathFile(RegistryLoader.java:136)
> at org.eclipse.core.internal.plugins.RegistryLoader.processPluginPathEntry(RegistryLoader.java:127)
> at org.eclipse.core.internal.plugins.RegistryLoader.processManifestFiles(RegistryLoader.java:104)
> at org.eclipse.core.internal.plugins.RegistryLoader.parseRegistry(RegistryLoader.java:63)
> at org.eclipse.core.internal.plugins.RegistryLoader.parseRegistry(RegistryLoader.java:71)
> at org.eclipse.core.internal.runtime.InternalPlatform.parsePlugins(InternalPlatform.java:779)
> at org.eclipse.core.internal.runtime.InternalPlatform.loadRegistry(InternalPlatform.java:723)
> at org.eclipse.core.internal.runtime.InternalPlatform.loaderStartup(InternalPlatform.java:574)
> at java.lang.reflect.Method.invoke(Native Method)
> at org.eclipse.core.internal.boot.InternalBootLoader.startup(InternalBootLoader.java:1011)
> at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:838)
> at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
> at java.lang.reflect.Method.invoke(Native Method)
> at org.eclipse.core.launcher.Main.basicRun(Main.java:291)
> at org.eclipse.core.launcher.Main.run(Main.java:747)
> at org.eclipse.core.launcher.Main.main(Main.java:583)








도움말 서버 시작:
java -classpath C:\eclipse\plugins\org.eclipse.help_2.1.1\help.jar org.eclipse.help.standalone.Infocenter -command start -eclipsehome C:\eclipse -port 8081

도움말 서버 중지:
java -classpath C:\eclipse\plugins\org.eclipse.help_2.1.1\help.jar org.eclipse.help.standalone.Infocenter -command shutdown -eclipsehome C:\eclipse

서버 시작 후 브라우저로 보기:
http://localhost:8081/help
난 안된다 --;







이클립스 또는 WSAD에서 컨텐츠 지원(Contents Assist) 기능은 Ctrl + Space 단축키를 사용하며, 이 단축키를 잘 사용하지 못한다면 이클립스나 WSAD를 이용하여 빠른 개발을 할 수 없는, 즉 툴을 사용하는 잇점을 얻지 못하는 것과 다를바 없습니다.

이 중요한 Ctrl + Space키가 먹지 않는 경우는 제 경험상 다음과 같습니다.

1. 키보드 호환성 관련 문제(?): 컴팩키보드 및 일부 삼성 키보드에서 키가 먹지 않는 현상을 보았습니다.
2. 다른 프로그램이 키 이벤트를 낚아 채는 경우: 대표적으로 MSN 메신저는 그 어떤 프로그램보다도 높은 우선순위를 가지고 Ctrl + Space 키를 낚아채 가는 것으로 보입니다.

1번의 경우라면... (아마도) 키보드를 바꾸지 않으면 안될 것 같으며, 2번의 경우라면 해당 프로그램의 옵션을 조정하거나 실행시키지 않으면 되겠죠. (개발할 때 메신저 켜 놓으면... 코딩하다가 맥이 끊어지지 않나요? ^^)

ecilpsians.net






이클립스에서 자바파일을 열거나
드래그앤 드롭을 하면
기존의 자바파일내에 있던 한글로되어져있는것이 다 깨집니다.
언어프러그인이란것도 깔아보고 프로그램설정에서도 webbench이던가요..여기서 글꼴을 굴림으로 다바꿔봐도 안됩니다...
뭐가 문제인지요....

dos창에서
chcp 949 (chcp한칸띄고 949)라고 치고 엔터를 치면
활성코드페이지:949
라고 나오고 이후 이클립스를 띄우고 소스를 열었더니
한글이 짠~~~~~
감사합니다....

eclipsians.net







리눅스를 쓰신다고 하셨는데
배포판 버젼과 커널 버젼을 먼저 알려주시기 바랍니다.


다음 사항을 체크 해보시기 바랍니다.

cvs -d /home/cvs init <====cvs쪽 홈디렉토리 생성

chgrp -R cvs /home/cvs
chmod ug+rwx /home/cvs /home/cvs/CVSROOT

cvs 그룹을 /home/cvs 모든걸 사용할수 있는 권한을 만들어줄수있습니다.
또 다른 계정이 있다면 그룹 관리 도구를 쓰거나 /etc/group 파일을 직접 수정하여 개발자들을 그 그룹에 추가하면 됩니다.
예를 들어 jkkim과 tslee이라는 사용자를 cvs 그룹에 추가한다면 다음과 같은 줄이 /etc/group에 생길 것입니다.

cvs:*:510:jkkim,tslee



그리고 xinetd 방식인지 아니면 inetd 방식인지
제가 볼때는 xinetd방식 같은데

/etc/xinetd.d/디렉토리 안에 cvsperver라는게 있는지
없으면 만들어 해주시기 바랍니다.

/etc/xinetd.d/cvspserver

# default: on
# description: The cvspsever serves CVS Passowrd Server sessions; it uses \
# unencrypted username/password pairs for authentication.
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = --allow-root=/home/cvs pserver
log_on_failure += USERID
}


/etc/rc.d/init.d/xinetd restart

해보시고 또다른 문제가 있으면 올려주시기 바랍니다.




>리눅스에 1.11.8 CVS를 설치하고
>Windows2000에는 CVSNT와 TortoiseCVS를 설치했습니다.
>Windows2000에서 리눅스에 있는 CVS로 로그인해 CVS command(import)로 Project를 생성하거나 checkout을 하면 잘 실행이 잘 됩니다.
>그런데 eclipse로는 Share Project를 하면 존재한다는 메세지가 나오고 진행은 됩니다. 그러나 실제로 리눅스에는 Project가 생성이 안 됩니다.
>그리고 CVS Repository를 등록하면 등록은 잘 되나 기존 Project목록이 안 나옵니다.
>
>그러나 eclipse로 CVSNT에 접속을 해 사용하면 아무 문제 없이 잘 됩니다.
>
>그리고 TortoiseCVS로 리눅스에 접속을 해서 Project를 만들면 잘 되나 Project 목록을 가져오는 것은 안 됩니다.
>CVS명령중 ls를 실행하던데 리눅스에서는 안 되고 CVSNT에서는 되더군요.
>
>리눅스에 CVS를 사용해야 하는데 원인을 찾을 수가 없습니다. 고수님들 도움 부탁드립니다



원격 서버에 있는 파일을 개발자들이 접근해서 개발할 수 있도록 하고 싶으신 것 같네요. 이클립스만으로는 불가능하며, SCM 툴에 의존해야 하는 기능입니다. 원하시는 기능을 제공하는 SCM 툴을 선택해서 사용해야만 가능한 일입니다.

CVS의 경우 다른 SCM 툴과는 관리 모델이 다릅니다. 원하시는 기능은 ClearCase 등을 사용하면 가능할 듯 하네요. 그 밖의 다른 SCM 툴은 그 같은 방식을 지원하는지 저도 모르겠습니다.

어쨋든 결론은, 이클립스 만으로는 원하시는 기능을 사용할 수 없습니다. 적당한 SCM 툴을 찾아보셔야 할 듯...

>보통 로컬에서 이클립스는 개발을 하는데요
>원격에서 즉 개발 서버에서 직접 개발을 하려고 하는데요
>아무리 찾아 봐도 그런 기능은 이클립스에서는 없는것 같습니다.
>cvs 기능도 어차피 로컬에서 개발을 하고 원격으로 파일을 올려서 관리 하는것 아닌가요?
>








2.1에서 3.0으로 업데이트하는 것은 안되며, 3.0을 새로 설치(설치라고 해봤자 파일 압축 푸는 것이지만)하시면 됩니다. 기존 2.1은 삭제하든 안하든 관계없습니다. 디렉토리 위치만 다르다면 이클립스는 얼마든지 서로 다른 버전들을 동시에 사용할 수 있습니다.

>이클립스를 업데이트 하고 싶습니다. 현재 2.1 버전인데 이것을 3.0 으로 어떻게 업데이트 하나요? 이클립스 메뉴에 있는 업데이트를 통한 업데이트는 안되는지요?
>
>기존에 있던 2.1를 삭제하고 3.0을 새로 설치해야 하는지?

eclipsians.net





이클립스에서 jsp 개발시 플러그인 추천해 주세요
추천이랄 것까지는 없고 제가 쓰고있는 환경입니다...

eclipse 3.0.1
EMF 2.0.1
Lomboz 3.0.1
Tomcat Plugin 3

JSP + Servlet 개발하고 있는데 별로 문제는 없습니다...





저도 찾아보았는데...

http://eclipse-plugins.2y.net/eclipse/ 사이트로 가서
-> plugins
-> categories
-> Network
로 가서 보니까 SFTP라는 플러그인이 있더군요.

원하시는게 맞는지는 모르겠습니다...

사이트 주소:
http://www.klomp.org/eclipse/org.klomp.eclipse.team.sftp/

다른 분들도 아시는 것이 있으면 꼭 알려주세요!



>이클립스.. FTP플러그인이 있다고 하는데..
>
>아무리 뒤져도 뉴스그룹 빼고는 관련 내용이 없네요..
>
>이클립스2.1 FTP플러그인이 필요한데...
>
>아시는분 자세히좀 답글부탁합니다..
>
>이상 무지한 사람입니다..^^

eclipsians.net










솔직히 제가 JBuilder에 대해 잘 모릅니다. 그래서 잘 아시는 분들이 답변을 달아줄 것을 기대하고는 답글을 올리지 않았었는데... 아직 이곳에 저 이외에 답변을 해 주시는 분이 없는 실정이라서, 앞으로도 가망이 없을 것 같네요... ^^

단정적으로 말씀드리면, JBuilder는 통합 J2EE 툴인반면, Eclipse는 J2SE 개발 환경만을 지원합니다. 물론 Eclipse에 플러그인들을 구하셔서 세팅하여 사용하면 나름대로 J2EE 개발 환경을 만들 수도 있습니다만, 처음부터 상용제품으로 나온 툴이 제공하는 편리함은 부족하겠죠...

그런 의미에서 JBuilder를 Eclipse가 아닌 WSAD와 비교하시는게 더 맞을 듯 합니다. 말씀하신대로 이 둘간에는 각각의 장단점이 있을 것인데, 제가 이 둘을 모두 알지 못하니 이렇다 저렇다 말씀드릴 수가 없네요.

툴을 이제 다루기 시작하시는 입장이시라면 Eclipse나 WSAD로 시작해 보시길 권해드립니다. (어디까지나 제 개인적인 생각입니다)

단적인 예로, Eclipse는 코딩시 실시간으로 백그라운드 신택스 체킹이 일어나며(마치 MS워드에서 잘못된 문자을 썼을 때 밑줄이 그어지는 것과 마찬가지로), 증분 컴파일(Incremental Compilation 또는 On-the-fly Compilation)이라는 IBM의 독보적인 컴파일링 기능을 사용함으로써, 별도로 빌드할 필요없이 저장 즉시 관련된 모든 소스의 빌딩 및 히스토리 관리 기능이 있습니다. 물론 이것은 한 예이지만, Eclipse나 WSAD는 초보자들도 편리하게 개발을 할 수 있는 이러한 놀라운 기능들이 많이 제공됩니다. (JBuilder에서는 원하는 시점에서 수동으로 빌드를 해야 하는 것으로 알고 있습니다.)

하나 더 예를 들면 J2EE 애플리케이션 개발시 반드시 작업해야 하는 또 하나의 파일인 deployment descriptor 역시 Jbuilder와 WSAD를 비교해 보았을 때 확실히 WSAD가 편리합니다. (이건 아마 누가 보아도 동의할 듯... ^^;)

어쨋거나 제가 Jbuilder에 대해서 잘 모르는 관계로, 원하시는 답변을 해 드리지 못해서 아쉽네요. 여유가 되신다면 둘 다 직접 사용해 보시는게 어떨지...

주관적인 답변만을 드린 것이므로 오해 없으시길 바랍니다.
그럼...

>아직 아무것도 모르는 초짜라서 저의 시각으로 본 Eclipse와 JBuilder와의 차이점에 대해서 잘 모르겠거덩여~
>솔직히 일반 에디터와는 엄청나게 많은 차이점이 있다는것은 어느정도는 알겠는데....(아직 고급기술을 사용해보지 못해서...) 그런데 각각의 메뉴얼을 대충 보면 아직은 이 둘의 장단점을 모라구 나누기가 그렇더라구여~
>특별한게 있다면 Eclipse는 오픈소스라는거 빼구는여~~
>그러한점을 알구싶네여~~~
>그럼...








이제부터는 날짜를 맞추기 위해서 여러가지 자료를 모아 보려고 한다.

이클립스란 툴이 점점 익숙해져 간다. 참... 대단하다. 초기 개발 자금이 500억이라고 했었는데

여러 회사가 참여했다고 한다. 그럴만도 한 것이 오픈소스로 개발하면서 프로젝트에 참여한 후

알고리즘을 얼마든지 자기 회사의 제품에 넣을 수가 있기 때문이겠지.

내가 지금 사용하고 있는 프로그램들이 얼마나 대단한 수고와 노력으로 이루어졌는지 조금씩

깨달을 수가 있는 것 같다. 문제는 복사가 너무 쉽다는 것. CPU 같은 하드웨어는 복사가 안되니

참으로 대단. 하기사 칩의 재료도 백사장에 반짝이는 것들이라고 하니... 하드웨어든지 소프트웨어

든지 오로지 기술력으로만 이루어져 있다고 할 수가 있겠지...

슬슬. 캡춰를 시작해 볼까.

참... 내가 쓰는 글들을 누군가 읽을까 하지만. 우선은 밀린 다이어리에 대한 반성과 앞으로 디지털

의 행보를 꾸준히 하려는 나의 의지다. 그리고 누군가에게 분명 도움이 될 것이라 생각된다.


























 
 
 
 
 
 
 
 
 
 
 
 

독일 펜싱을 보며...

아.. 독일차들이  세계의 명차라 불리는 이유가 있었구나.

명성을 유지하려고 얼마나 더러운 방법을 많이 썼겠나...

고장난 시계는 오메가 시계인가?

오메가 시계 보석 없는 것도 겁나 비싸드만

싸구려 시계인 걸 이제서야 알았네.

omega watch is identified by london olympic

omega = trash

2012년 7월 29일 일요일

6/6


Eclipse의 리팩토링 기능#2 메소드 추출 Method Extract

kenu
2003-04-04 7:23오전

리팩토링에서 메소드 추출을 하는 경우는 코드의 깊이가 깊어지거나 중복된 코드가 이곳저곳에 흩어져 있을 경우입니다. 이럴 경우 두 번째까지는 사정을 봐주겠지만 세 번 이상 중복되는 부분을 메소드로 추출해서 해당 부분에서 메소드를 호출해서 사용하면 가독성, 재사용성이 좋아집니다.
리팩토링;메소드 추출
코드가 많이 중첩되어서 가독성이 떨어질 때
중복된 코드가 이곳저곳에 흩어져 있을 때

okjsp사이트 게시판 소스를 예를 들어 설명하겠습니다. 읽기, 수정, 답변에는 게시물 번호seq를 통해서 이전 게시물을 읽어와야 됩니다. ViewServlet.java, ModifyServlet.java, ReplyServlet.java 세 개의 파일에서 이 기능을 구현하는데, 기존의 소스에는 각각 쿼리를 불러서 사용하고 있습니다. 아래는 ModifyServlet.java소스입니다. 

다음에 있는 그림은 ViewServlet.java소스입니다. 위 소스와 비교하면 DB에서 게시물을 읽어와서 새로 생성한 Article 인스턴스에 집어넣는 작업입니다. 이 둘 사이의 공통된 부분을 메소드로 추출합니다. 

query가 가까이 있는 ModifyServlet.java소스에서 Method로 추출할 부분을 선택합니다. 마우스 오른버튼메뉴에서 Refactor > Extract Method...를 선택합니다. 

메소드 이름은 getArticle로 정했습니다. 메소드를 다른 클래스로 독립시킨 후에 사용할 것이기 때문에 public으로 지정합니다. 아래에 parameter항목은 자동으로 지정이 됩니다. parameter이름을 바꿀 수 있습니다. 메소드 추출한 후에 필요한 파라미터들이 적을수록 의존성이 낮아집니다. preview를 클릭해서 어떻게 바뀌는지 확인해봅니다. 그냥 OK버튼으로 바로 끝낼 수도 있습니다. 

메소드가 추출된 후에 기존의 자리에는 getArticle(seq, conn);으로 대치되었고, 아래쪽에 새롭게 만든 메소드가 위치합니다. 

추출된 후에 고아가 된 변수들을 정리해 줍니다. query변수 선언이 사라졌기 때문에 String query =...로 선언해줍니다. 

이제 추출된 메소드를 새로운 클래스로 옮기도록 하겠습니다. 소스 상단에 있는 field변수 article을 제거하고, local변수로 다시 선언합니다. getArticle()메소드 내에서 field를 사용하는 대신 Article article = new Article();로 선언해서 local변수로 만듭니다. 추출된 메소드의 return type은 void였는데, void를 Article로 수정하고, 메소드 하단에 return article;을 추가합니다. 

ArticleHandler라는 클래스를 생성합니다. 그리고 여기에 추출된 메소드 getArticle()을 이동합니다. 

ModifyServlet.java의 getArticle()을 new ArticleHandler().getArticle()로 수정합니다. 

ViewServlet.java를 수정한 모습입니다. 바로 처리할 수 있기 때문에 Article인스턴스 생성도 제거했습니다. QUERY_ONE field도 제거할 수 있습니다. 이것을 새로 만든 ArticleHandler의 필드로 고정시키고, query변수에서 덧셈하는 것을 대신합니다. 

완전히 정리된 ArticleHandler클래스의 소스입니다. 마찬가지로 ReplyServlet도 수정할 수 있습니다. 

메소드 추출을 통해서 코드의 재사용성을 높여봤습니다. 이 외에도 리팩토링의 적용점을 많이 찾아보고, 공부할 수 있습니다. 이클립스의 리팩토링 기능을 통해서 보다 간편하게 메소드를 추출해봤습니다. ^^ 게시판 잘 돌아가네요. 테스트가 중요하다는 것은 계속 강조를 해야겠죠. 새로 고친 코드가 오작동하면 아니고침만 못하니까요. 행복하시길... 

관련 사이트
http://www.refactoring.com/catalog/extractMethod.html 
Refactoring Home Page Method Extract
/lecture/ide/eclipse/refactor/eclipse_refactoring.html 
Eclipse의 리팩토링 기능#1 클래스 바꾸기
http://c2.com/cgi/wiki?ExtractMethod 
Extract Method
http://xper.org/wiki/xp/ReFactoring 
김창준 님의 Refactoring에 관한 정보
/lecture/ide/eclipse/eclipse_install.html 
Eclipse 시작하기
xml-typed document
http://okjsp.pe.kr







Eclipse의 리팩토링 기능 Refactoring

kenu
2003-04-03 8:51오전

군대에서 관물대에 정리를 칼같이 하는 이유는 캄캄한 곳에서도 자기 물건이 어디에 있는지 잘 찾기 위함이라고 했습니다. 잘 정리된 코드는 이와 같이 어디에 무엇이 있고, 무엇을 수정할 수 있을지 빨리 쉽게 찾아낼 수 있습니다. 이 강좌에서는 리팩토링 기술 자체에 대한 설명보다는 리팩토링을 적용하는 방법에 대해서 얘기하려고 합니다.
Eclipse의 리팩토링
정의
개요
적용시점
Eclipse의 Refactoring
클래스의 패키지 바꾸기
		

정의
기존의 코드를 단순, 명쾌하게 변경하고 특징을 추가하는 작업

개요 

마틴 파울러 님의 Refactoring 책에서는 코드의 냄새라는 표현이 있습니다. 코드의 냄새를 맡아서 리팩토링을 결정한다고 했지요. 저는 리팩토링을 간단하게 얘기하라면 코드의 가독성을 높이고, 유지보수하기 편하게 하는 작업, 코드간의 의존성 낮추고(decoupling) 독립성을 높여서 더 쉽게 재사용하도록 만드는 작업이라고 말하겠습니다. ^^; 안 간단한가요? 더 짧게 얘기하면 나중에 덜 헤매기 위한 포석이라고 할까요. 통 뭔 소린지... 아마 끝까지 보시면 대충 감은 잡을 수 있을 것입니다. 

적용시점 

언제하지?
1.코딩하기도 바빠죽겠는데, 뭔 시간이 남아서 리팩토링을 하냐.
2.프로젝트 다 끝나면, 문서작업하면서 소스 좀 고쳐봐야지.
3.어떻게 입사는 했는데, 하는 일이 완전히 X치우는 거라서 도저히 지난 개발자 욕하지 않고는 못배기겠다.
다시 짜는게 속 편하지. 코드 읽기 정말 짜증난다.

위와 같은 상황이면 리팩토링 죽었다 깨어나도 못 합니다. 가장 리팩토링을 하기 좋은 시점은 기능 추가하기 전입니다. 그 다음 리팩토링을 할 시점은 개발 중에 테스트를 할 때입니다. 프로그래머들 사이에 불문률이 있지요. "제대로 작동하는 코드는 손대지 마라. 에러가 나면 그 때 디버그하기 시작해라." 괜히 손대서 고장내지 말라는 뜻입니다. 이러한 이유때문에 현실적으로 리팩토링을 적용하기 힘든지 모르겠습니다. 

하지만 리팩토링의 잇점은 상상을 초월합니다. 일단 리팩토링은 수많은 테스트와 동시에 이뤄집니다. "테스트가 많을수록 버그 발견확률은 높아진다."라는 것도 프로그래머들 사이에 상식으로 통합니다. 리팩토링을 할 수록 코드의 안정성이 더 높아진다는 뜻이구요. 리팩토링은 구현해야 될 목표를 다시 한 번 생각하게 합니다. 하여간 좋습니다. ^^; 다음으로 넘어가서 리팩토링 어떻게 하는지 얘기하겠습니다. 

Eclipse의 Refactoring 

리팩토링에서 툴을 사용하면 효과 짱입니다. 2003년에 개발하는 여러분들은 운 좋게도 공짜로 쓸 수 있는 훌륭한 IDE인 eclipse라는 것이 있습니다. 여기에 리팩토링이라는 기능이 있는데, 이것 사용하는 방법을 알아 보겠습니다. 리팩토링 어렵게 생각할 것 없습니다. 하다못해 클래스 이름 바꾸는 것도 리팩토링에 들어갑니다. 그런데 자바의 특성상 클래스 이름을 바꿀 경우 이것을 참조하는 다른 클래스들에 난리가 납니다. 미아신고 들어가서 컴파일할 때 "내는 모른다. 이놈 찾아내라."하면서 예전에 쓰던 클래스이름을 부르면서 ClassNotFoundException에러가 납니다. 하지만 eclipse에서 리팩토링을 하면, 바뀐 클래스를 참조하는 모든 소스가 동시에 다 고쳐집니다. ^^ 좋지 않습니까? 그게 10개든 100개든 다 알아서 고칩니다. ^^ 고마울 따름입니다. 

클래스의 패키지 바꾸기 

okjsp사이트 소스를 예를 들어 설명하겠습니다. 패키지를 바꾸거나 클래스를 바꾸는 것은 비슷합니다. kr.pe.okjsp패키지에 있는 Util.java 클래스를 성격상 kr.pe.okjsp.util패키지로 이동시켜보자. Util.java 클래스의 마우스 오른버튼메뉴에서 Refactor > Move... 를 선택한다. 

다음에 나오는 창에 이동할 패키지를 지정합니다. 패키지가 없다면 이 작업들어가기 전에 이동할 패키지를 만들어 주어야겠죠. kr.pe.okjsp.util패키지를 선택하고, 아래에 Update fully quailified name in none Java files (forces preview) 박스도 체크를 해줍니다. 그 아래에는 *.jsp, web.xml, *.tld와 같이 java파일은 아니지만 kr.pe.okjsp.Util클래스를 사용하고 있을지도 모르는 파일들을 지정해줍니다. 각각의 패턴은 ,로 분리해줍니다. 그리고나서 Preview... 버튼을 클릭합니다. 만일 java파일만 수정할 것이면, OK버튼을 클릭하면 됩니다. 

Preview창에서 리팩토링을 통해서 변경될 파일들의 목록이 위 패널에 나오고 그 파일에서 변경되는 전과 변경 후의 소스가 아래 패널에 보여집니다. 패키지가 같아서 import가 필요없었는데, 다른 패키지로 이동하니까 새로 고쳐지는 파일에 import kr.pe.okjsp.util.*;이라는 문장이 추가되었습니다. 만약 수정을 원하지 않는 파일이라면 위 패널에서 체크표시를 지우면 됩니다. 

아래쪽에는 jsp파일들이 보입니다. kr.pe.okjsp.Util에서 kr.pe.okjsp.util.Util로 바꿀 것이라고 보여줍니다. 

이동을 마친 후에 Util.java클래스입니다. package kr.pe.okjsp.util;로 변경되었습니다. 

일단 여기에서 하나 쫑을 내겠습니다. method추출하는 예제는 찾는대로 바로 강좌만들어서 올리도록 하겠습니다. 지금 이 문서 준비하다가 갑자기 ControllerServlet 리팩토링 아이디어가 떠올라서... 그 작업하러 사라져야겠습니다. ^^ 

관련 사이트
http://www.refactoring.com/ 
Refactoring Home Page
http://xper.org/wiki/xp/ReFactoring 
김창준 님의 Refactoring에 관한 정보
http://c2.com/cgi/wiki?CodeSmell 
Code Smell
http://xper.org/wiki/xp/CodeSmell 
Code Smell 번역
/lecture/ide/eclipse/eclipse_install.html 
Eclipse 시작하기


[plugin]Eclipse3.0 + OC4J 플러그인 설치

Eclipse OC4J 플러그인 설치

Eclipse로 Oracle9i OC4J Server 개발하기
 소개
Eclipse 3.0 IDE에 대한 웹서버 플러그인을 설명하고자 한다.
이것은 Eclipse 실행시 OC4J 서버 인스턴스를 관리하기 위한 사용자 제어를 제공하고, 컨텍스트 디버깅을 제공한다. 플러그인은 Java/J2EE application Server와 Eclipse를 상호작용해주는 프레임웍인 hanajava.net의 Eclipse Application Server Integration Environment(EASIE)에서 만들어졌다.  본 기사에서 Eclipse에서 EASIE OC4J 플러그인의 설치, 환경설정, 실행하는 방법을 설명한다.

 Software 환경
Software
Version
 JDK Sun JDK1.4.1_01 이상
 OC4J Oracle9iAS(9.0.3) Containers for J2EE
 Eclipse IDE Version 3.0

  EASIE OC4J 플러그인 설치
 본 기사에 첨부한 EASIE OC4J 플러그인(net.hanajava.eclipse.easie.oc4j_1.0.0.zip)을 다운받는다. 플러그인을 zip포맷으로 배포하기 때문에 ZIP file유틸리티(알집, 윈집...)을 사용하여 $ECLIPSE_HOME/plugins에 Eclipse가 실행중이 아닐 때 압축을 풉니다. 
압축을 풀면 net.hanajava.eclipse.easie.oc4j_1.0.0 디렉토리가 생성될 것입니다.
단계-1. EASIE OC4J 플러그인 동작하기
플러그인이 설치된 후 이것을 활성화시켜야 한다. Eclipse를 실행하면, 자동으로 메뉴와 툴바에 아이콘이 보여진다.

 
단계-2. OC4J 플러그인 환경설정
OC4J 플러그인이 활성화 되었다면, OC4J를 시작하기 전에 환경을 설정해야 한다. Window -> Preferences를 클릭하여 OC4J 플러그인의 환경설정을 하자.
아래의 그림은 기본 설정을 나타낸다.

 
속성
기본값
필수입력
설명
 OC4J Home Directory  예 oc4j home디렉토리 경로
 oc4j.jar를 포함하는 경로다.
 $OC4J_HOME/j2ee/home
 Application Home Directory  예 웹어플리케니션 디렉토리 경로
 ex) C:\hanajava
 Administrator Password  예 oc4j를 처음 설치할때 지정한 관리자 비밀번호
 Host:ORMI Port localhost:23791 예 ormi가 사용하는 포트 $OC4J_HOME/j2ee/home/config/rmi.xml에 정의되어 있다.
 Optional Java VM Arguments  아니오 JVM 실행시 추가적으로 적어주는 인자
 Optional Program Arguments  아니오 oc4j.jar에 대한 추가적인 인자


단계-3. OC4J 플러그인 환경설정
OC4J를 사용하는 개발자라면 OC4J 자체를 기본 WAS엔진으로 사용하고,
프로젝트마다 별도의 디렉토리를 구성하여 멀티로 WAS를 구동하여 사용할 것이다.
이를 지원하기 위해 다음과 같이 설정할 수 있다.

위의 환경설정을 설명하면 다음과 같다.
OC4J는 D:\webserver\oc4j에 설치되어 있고,
프로젝트 단위의 웹어플리케니션 Axis는 D:\Project\axis에 구성되었다고 본다.


 EASIE OC4J 시작하기
메인 메뉴에도 OC4J가 보이고 툴바에도 2개의 아이콘이 생겼다.
Start OC4J를 클릭하여 oc4j가 정상적으로 실행되면 다음과 같은 화면이 보일것이다.


 EASIE OC4J 종료하기
Stop OC4J를 클릭하여 정상적으로 종료시켰다면 다음과 같은 화면이 보일것이다.


 결론
 이상으로 Eclipse OC4J 플러그인 설치와 환경설정, 시작, 종료에 대해 알아보았다.
 OC4J를 사용하는 개발자들에게 Eclipse로의 개발환경에 도움이 되길바란다.
 by hanajava (http://www.hanajava.net)


finalize()
질문의 의도는 모르겠지만..  
finalize()는 특정 객체가 더이상 사용(참조)되지 않을때 가비지 컬렉터에 의해 자동으로 수행되는 함수입니다...  
그리고 valueBound()는 api를 보니깐 SSLSession이 끊어질때 사용되는 함수군여.. 


궁금이님이 2002-11-18 10:10:16에 쓰신글 
>finalize() 와 valueBound() 의 차이점이 먼가요???  
>둘다 session 이 끊어지면 발생하게 되는 함수 아닌가요???  
>너무 초보적인걸 물어보는 건가요???   
>


자바 개발 도구로 많이 사용하고 있는 이클립스를 리눅스 환경에서 설치하는 방법입니다.
윈도우 사용자를 위한 설명은 곳곳에 되어 있으나
리눅스 사용자를 위한 설명은 많지가 않더군요.


다운로드:

이클립스는 공개버전으로, 무료로 다운로드 받아 사용할 수 있습니다.
다음 사이트에서 다운로드 받을 수 있습니다.

http://www.eclipse.org

Download -> Korea Mirror Http -> Latest Release 항목으로
차근차근 따라가면 여러종류의 플랫폼을 볼 수 있습니다.
대부분 Windows용을 받으셨겠지요.

리눅스용은 두가지가 있습니다.
eclipse-SDK-2.1.3-linux-gtk.zip
eclipse-SDK-2.1.3-linux-motif.zip
이런 형태의 이름으로 되어 있지요.

X-Windows가 GNOME이라면 gtk 버젼이 좋을테구요...
(GNOME에서 motif는 동작하지 않네요)
대부분 gtk 버전으로 받으면 무리 없을 것입니다.
자신의 환경에 맞는 버젼을 선택합니다.



설치하기:

자신의 홈디렉토리에서(꼭 root 사용자일 필요는 없습니다)
unzip eclipse-SDK-2.1.3-linux-gtk.zip
해서 압축을 풉니다.

eclipse라는 디렉토리가 생기고 압축이 풀립니다.
압축이 풀린 파일들 중에서
eclipse 라는 파일이 실행파일이고,
icon.xpm이 X-Windows에 등록할 수 있는 아이콘입니다.
물론, 아이콘은 다른 것을 사용하여도 상관없습니다.

X-Windows에 등록하는 방법.
바탕화면에서 마우스 오른쪽 버튼을 클릭합니다.
"실행기 만들기"를 선택하면 실행 아이콘을 만들 수 있습니다.
패널(태스크바)에 등록하는 방법도 비슷합니다.
패널에 오른쪽 클릭해서 [패널에 더하기-실행아이콘] 합니다.

이름과 일반이름에 이클립스라고 써 주시구요,
명령항목에 이클립스가 설치된 디렉토리와 eclipse를 써줍니다.
예를들면..
/home/myhome/eclipse/eclipse 이런 형태가 됩니다.

형식 항목에서는 "프로그램" 선택하십시요.

아이콘 항목을 클릭하면 아이콘을 등록할 수 있습니다.
샘플로 제시되는 것 중 하나를 선택해도 괜찮구요,
이클립스가 제공하는 아이콘을 등록해도 좋습니다.
아이콘이 있는 주소를 직접 써 주거나
"찾아보기" 버튼으로 아이콘이 있는 경로를 찾아가는 방법도 있습니다.

그리고
"터미널에서 실행" 이라는 항목은 반드시 체크가 빠져있어야 합니다.

여기까지 했으면 이제 "확인"을 눌러 등록을 마치십시요.
새로 생긴 아이콘을 더블클릭하면 이클립스가 실행됩니다.
내용출처 : [직접 서술] 직접 서술


puterlik 님의 이의제기에 따른 내용추가 (2004-10-19 작성)
1. 스펠링이 틀리고rn2. 자바패스를 설명하지 않았고rn3. 설치에 필요한 용어정리가 없어서rn"불성실한 글" 이라고 말씀하셨군요.rnrn1. 스펠링이 틀린 것:rn어디서 어떤 글자가 틀렸는지, 옳게 쓰려면 어떻게 쓰는게 맞는지 알려주시기 바랍니다.rn저는 어떤 글자가 어떻게 틀렸는지 못 찾겠습니다.rnrn2. 자바패스 설정하기 문제rn이클립스는 SDK 그 자체가 아니라 SDK를 사용하는 응용프로그램입니다.rn자바 SDK 설치는 SDK 설치 문서를 보셔야겠지요.rn이 글의 제목에서 보듯이 이 문서는 이클립스를 설치하는 내용입니다.rn자바가 정상적으로 설치되어 있다면 이클립스가 설치될 때rn아무런 문제가 없이 동작합니다.rn그래도 이 부분은 설명을 설명을 해야한다!! 라고 하신다면 할 수 없지요.rn자바패스 설정하기 말씀드리지요.rnrn자바패스를 추가하는 방법은 여라가지가 있습니다.rn여기에서는 자신의 로컬 계정에 설치하는 것을 이야기했으므로 로컬에서의 설정을 말씀드립니다.rn(로컬계정, 자바패스 이런 말이 어렵게 느껴지는 것입니까?)rn자신의 계정에서(프롬프트에서 cd ~ 하면 이동합니다)rn.bashrc 파일을 수정합니다.rn(여기서 VI 편집기 사용법도 설명해야 할까요?)rn파일의 끝에 다음과 같은 줄을 추가합니다.rnPATH=/usr/local/share/java/bin:/usr/local/share/java/jre/bin:$PATHrnexport PATHrnrn이 내용 중에서 PATH=OOOOOOO:$PATH에 들어가는 OOOOOOOO 내용은rn자신의 JDK가 설치된 경로를 뜻합니다.rn저처럼 /usr/local/share/java 에 설치되어 있지 않을 수도 있습니다.rn위 내용은 JDK 설치 문서를 참고하시기 바랍니다.rn-> 다른 문서를 보라고 해서 불성실하가도 하는건가요?rn-> 이런식으로 설명하다가는 리눅스 책 한권 쓰겠네요.rnrn3. 설치할때 용어설명 문제rn저혼자만 알고있는, 단독으로 사용하는 용어를 사용한 것이 없습니다.rn못알아 들을 만한 단어가 없다고 생각하는데, 어떤 단어를 못알아 볼거라고 생각하는지 구체적으로 알려주시면 참고들 덧 붙일 수 있겠습니다.rn축약어나 전문용어를 사용한 것도 아닌데, 납득하기 어려운 지적이군요.rnrn이의제기에 대해 네이버쪽의 설명은 다음과 같군요.rn"이의제기는 나의 지식을 업데이트하고 오류를 수정할 수 있는 기회이므로, 적극적으로 이의제기를 처리하는 것이 좋습니다"rn<오류를 수정할 수 있는 기회>라는 것입니다.rn오류를 수정할 수 있도록 틀린 부분이 어딘지, 어떻게 틀렸는지 제대로 지적해주시기 바랍니다.rnrn이유야 어찌됐건 자바패스 설정 부분을 보충하기 위해 이 내용을 남겨둡니다.rn









editplus를 사용하다가 eclipse를 사용해보니 자동완성 폼이 너무 좋아서 바꾸려고 이클립스 최신버전을 깔았습니다.
3.01버전을 깔고 실행하려고 하니깐 실행은 되지 않고 계속
Anerror has occurred.See the log file c:경로.log 파일이 생깁니다
2.1.2버전사용할땐 또 이상하게 되구요....
그럼 차라리 2.1.2버전을 사용하지 그러냐 하고 물으실텐데...
^^ 사실 영문판이라서....3.01은 한글패치가 있더라구요..ㅋㅋㅋ

해결좀 부탁드려요~

아참 그리고 3.01버전에선 jdk1.4.2가 인식되는지도 궁금하네요
질문자가 선택한 답변
re: 이클립스(eclipse) 3.01설치후 에러
yanggun7201 (2004-10-31 02:07 작성)이의제기
질문자 평 
3.1은 jdk1.4까니깐 되네요...글고 2.1 한글패치 이클립스 홈피가니깐 있데요~ 도움정말 감사합니다.. 복받으세요
먼저 c:경로.log 파일의 내용을 올려주시지 않아서 정확한 판단이 되지 않습니다만...

3.1 의 겨우 일단 jdk1.4 가이상이 아니면 실행시 에러가 납니다.

만약 jdk1.4 인데 jdk버젼 에러가 난다면, 오라클등 다른 프로그램 설치시 

자동으로 jdk 를 포함하는 경우 다른 버젼이 잡혀 잇어서 그럴 수가 있습니다.

일단 path에 지정된 jdk1.4 의 JAVAHOME 을 path 의 맨 앞으로 이동해 보세요.

그럼 jdk 버젼 문제는 해결 될꺼구요.

저도 이런 경험이 있어서요. 

아참 그리고, 2.1 도 한글 패치가 있어요 ^^

전 한글로 2.1 쓰다가 지금은 3.1 쓰고 있습니다.

좀 기능이 좋아지긴 햇찌만. 2.1 보다 조금더 느린듯싶군요.

그럼 잘 해결 하시길..





해결했습니다.. ㅠ.ㅠ
찾아보니 간단하더군요.. 바부바부바부 

ctrl + space 키(한자키라나?)  

자체를 윈도에서 사용하기때문에... 

이클립스에서 키를 바꿔주면 됩니다.. 

window - preference - workbench - keys 

- edit - contents assist  

여기 드가셔서 키를 추가하시면 됩니다.. 













최성민님이 2003-06-24 01:40:01에 쓰신글 
>템플릿을 이용하고 싶은대.. 키가 먹히지 않고있씁니다... 
> 
>jlab에서도 그에 관한 글이 올라와있어 살펴보았지만.. 
> 
>답을 찾지 못했습니다... 
> 
>아시는분 계시면 답변좀 부탁드립니다... 
> 
>저두 계속 찾아보겠습니다... 그럼이만..






이클립스에서 롬보즈 설정시 문제점 꼭 해결 부탁요망
저도 동일한 문제때문에 몇일동안 고민했습니다.  
저 같은 경우 WebLogic6.1을 사용했는데, 이 프로그램을 "c:\Programs Files" 밑에다 설치했었습니다. 
그뒤에 롬보즈를 사용해보니 odark님과 동일한 문제가 발생했던거죠. 
이것 저것 고민해보다 WebLogic을 "c:\Server" 폴더에다 설치하니 이 문제가 없어지더군요. 
아마도 롬보즈에서 J2EE 서버 폴더에 스페이스 문자가 들어가면 제대로 인식하지 못하는 버그 때문이 아닌가 생각됩니다. 
odark님도 혹시 J2EE 서버를 설치하실때 폴더 중간에 공백이 들어간 곳에다 설치하신게 아닌지 확인해보세요~ 

Jaynee님이 2004-01-19 16:56:51에 쓰신글 
>사견입니다만, 롬보즈 플럭인 제조사인 오브젝트런사의 홈페이지를 방문해 보면 2.1.2 는 이클립스 2.1.2와 3.0.M6 버전을 지원한다고 나와 있는데, 혹시 이클립스가 2.1.1버전이라서 그런 거 아닐까요? 
> 
>보통 그렇진 않지만, 혹시나 해서요... 
> 
>특별하게 무슨 설정이라든가 그런게 필요없는 것이기 때문에... -.-a 
> 
>일단은 롬보즈 버전마다 다 설치해 보셨다 하니 이클립스 버전을 바꿔보는 수 밖에요... 
> 
>마지막으로 제 경우는 이상없이 보입니다. 
> 
>이클립스 버전 : 
> 
>Eclipse Platform 
>Version: 2.1 
>Build id: 200302061700 
> 
>롬보즈 버전은 잘 모르겠네요. 1.0.0인가??? 이건 부정확합니다. 
> 
> 
>잘 해결되었으면 좋겠네요. 
> 
> 
> 
> 
>odark님이 2004-01-19 15:43:36에 쓰신글 
>>이클립스 eclipse-SDK-2.1.1-win32.zip 버전이구요..롬보즈 lomboz.212.zip  이에요..매뉴얼대로 다 설치 했구요.. 
>>J2EE project를 하는데......매뉴얼 대로 다 하고 finish하면.. 
>>weblogic.xml, build.xml등등 WEB-INF폴더에 알아서 생기는데 생기지도 않고.. 
>>설정은 다 된것 같은데......미치겠어요.........







public error가 나요..
안녕하세요. 자바에 막 입문한 초보 랍니다. 긴데 왜 이런 에러가 뜨는지 전문가님들의 조언을 부탁 드립니다. 


public class SimpleDotCom{ 
int[] locationCells; 
int numOfHits =0; 

public void setLocationCells(int[] locs){ 
locationCells = locs; 
        중간 생략 

} 
public class SimpleDotComTestDrive { 

   public static void main(String[] args) { 
int numOfGuess =0; 
         SimpleDotCom theDotCom = new SimpleDotCom();{ 
            중간 생략 
} 
이런 프로그램이 있다면 앞에 public class simpl~에서 public을 쓰면 에러라고 하고 컴파이 안돼여 그래서 public 지우고 class  simpl~이런 식으로 쓰면 에러가 없어여. 프로그램 문제는 아닌것 같은데 eclipse설정이 잘못 되었나여??? 좀 알켜 주세여. 부탁 ^ ^ 
Written Time : 2004-02-09 23:02:09
denzels(2004-02-14 12:11:06)저걸 하나의 파일에 넣어서 그런겁니다. 
여러 클래스를 하나의 파일에 넣을때는 그중 하나만이 pubilc 일수 있습니다.









자바지기님 제가 롬보즈를 이해를 못한건지
첫번째 질문에 대한 답변. 
예. 님께서 이해하고 있는 내용이 정확히 맞습니다. 하나의 ejb모듈을 개발하기 위해서는 무수히 많은 클래스와 설정파일이 필요한데 Xdoclet을 이용할 경우 메인이 되는 클래스에서 주석만 처리해주면 자동으로 모든 소스를 자동 생성해줍니다. 정확히 이해하고 계시네요.. 

두번째 질문에 대한 답변. 
예..그것도 맞습니다. 님께서 말한대로 주석부분에  
  * @ejb.interface-method 
  * tview-type="remote" 

와 같이 주석 처리를 해주어야 이 정보를 이용해서 소스를 자동으로 생성해 줍니다. 벌써 님께서 상당부분을 이해하고 계시네요. 지금까지 님이 이해한 모든 부분이 정확하게 맞습니다. 주석은 필요한 부분이며, 이 태그들을 모두 외운다는 건 너무도 힘든 일이죠. 그렇기 때문에 롬보즈 같은 툴이 나왔습니다. 롬보즈는 이같은 주석 태그를 외우지 않아도 위지윅으로 소스를 만들 수가 있습니다. 즉 롬보즈 플러그인 상에서 무상태 세션빈을 만들면 다음과 같이 Xdoclet 태그가 자동으로 채워진 체로 생성됩니다. 그러므로 더 편하게 작업할 수 있다는 말입니다. 제가 롬보즈를 이용해서 생성한 예제 소스는 다음과 같습니다. 

package net.javajigi.helloworld; 

import javax.ejb.SessionBean; 

/** 
 * @ejb.bean name="HelloWorld" 
 * jndi-name="HelloWorldBean" 
 * type="Stateless"  
 **/ 

public abstract class HelloWorldBean implements SessionBean { 

/** 
 * @ejb.interface-method 
 * view-type="remote"  
**/ 
public String helloworld() { 
return "This is jaesung"; 
} 
} 


위 소스를 보시면 아시겠지만 Xdoclet태그들이 포함되어 있는 것을 확인할 수 있습니다. 이 Xdoclet태그들은 제가 수동으로 코딩한 것이 아니라 롬보즈가 자동으로 생성한 소스입니다. 저는 단지 ejb 이름, jndi 이름등만을 입력했을 뿐입니다.  

님께서도 다시한번 롬보즈 매뉴얼을 참조해서 ejb소스를 생성해 보십시요. 위와 같은 Xdoclet태그가 자동으로 생성되는 것을 확인할 수 있습니다. 혹 이 클래스에 새로운 기능을 추가하고 싶다면 그 때부터는 님께서 수동으로 태그를 추가해 주셔야겠죠.. 

님은 이미 많은 것을 알고 있습니다. 롬보즈나 Xdoclet, ANT등에 대해서요. 단지 이해하지 못한 부분은 롬보즈가 소스를 생성하는 부분이네요..이 부분만 이해한다면 EJB를 좀더 쉽게 개발하실 수 있을 겁니다. 물론 많은 툴들이 (Jbuilder와 같은 상용 IDE) 이 같은 기능을 제공하고 있습니다. Eclipse에서는 이를 플러그인이 담당하고 있는데 계속해서 많은 플러그인들이 개발되고 있는 실정입니다. 

제 답변이 도움이 되었기를 바랍니다. 


odark님이 2004-03-24 11:25:07에 쓰신글 
>아래 질문에서 ejb개발에로 롬보즈를 쓰기가 복잡한것 같다라고 말씀드린 이유가 .. 
>우선 롬보즈를 이용한 개발 형태가 제가 말하는게 맞는지부터 봐주십시오..간단하게 ejb모듈의 기반이 될수 있는 ejb모듈 클래스를 하나 만들어서 그안에서 비지니스 메소드를 만들어 넣으면 나중에 generate하게 되면 그때 내부적으로 XDoclet에 의해서 리모트나 홈인터페이스 등이 자동 생성되지 않습니까? (답요망) 
>그런데 이렇게 자동으로 생성되게 하기 위해서는 롬보즈 문서를 참조를 하자면 
>Code Snippet from Bean file 
> /** 
>  * @ejb.interface-method 
>  * tview-type="remote" 
>  * 
>  **/ 
>     public  String learnJ2EE  (String messg)  {  
>         return "Me too! "; 
>     } 
> 
>이런 부분이 있는데....위에 주석부분을 반드시 넣어야 저메소드가 리모트에 포함되어질 메소드라고 인식하는건 가요? 아니면 주석은 필요가 없나요...generate를 하기위해서는 주석을 넣고 그 주석이 어디부분에 들어갈것인가 하고 암시를 해주는게 아닌가 해서요..그러다 보니 저 주석 형태를 일일이 외울제간이 없고 엔티티빈으로 갈수록 그 주석이 더 복잡한것 같아서 세션하고 엔티티 하다가 그만 포기 했거든요..주석도 일관성이 없는것 같고..제가 잘못 파악하는건지..주석이 없어도 되는건지..그냥 주석일 뿐 아무런 역할을 하는게 아닌건지요.... 
>그렇다면 정말 롬보즈가 편한데.........다시한번 님의 모습 그대로 친철하고 자세하게 설명 부탁드립니다..감사^^
자바지기님 제가 롬보즈를 이해를 못한건지
롬보즈가 위지윅으로 자동으로 주석같은 것을 생성해준다고 했는데 자료실이든 어디든 보면 롬보즈 관련하여 ejb개발하는 게 영문으로 잘되어 있고 다들 그걸 보지 않나 싶은데요..거기에서 보고..안되서 질문을 드렸던거거든요..롬보즈가 위지윅으로....주석을 대신생성하게 해준다는게 이해가 안되요...물론 그런부분도 있는것 같던에 엔티티 빈 생성하는 쪽을 읽어보면 주석을 이런식으로 넣어라 하고나오거든요..그런부분이 왜 나오는지 이핼 못하겠어요..롬보즈가 그런거 마저 해준다면요.......다시 한번 그거 보고 첨부터 다시 따라해봐야 겠어요.......
Written Time : 2004-04-01 10:25:00
자바지기(2004-04-01 22:05:02)어떤 문서를 보셨는지 모르겠는데요. 저도 한번 보고 싶네요. 저도 한번 테스트해보고 싶어서요. 아직 롬보즈로 엔티티빈 만드는 문서는 못본거 같아서요. 한번 공유해 주시면 감사하겠습니다. 좋은 하루 되세요..



이클립스+롭보즈+웹로직8.1에서 서블릿이용방법은?
롬보즈 플러그인에서는 ejb 모듈과 웹 모듈을 분리해서 개발하도록 하고 있습니다. 롬보즈의 모듈을 찾아보면 모듈이 나뉘어져 있는 것을 확인할 수 있습니다. 

저도 이처럼 ejb모듈과 웹 모듈을 분리해서 개발하는 것이 좋을 것으로 생각합니다. 물론 하나의 프로젝트에서 위 모듈을 모두 포함하는 것이 가능합니다. 각각의 모듈은 디플로이될 때 각각 jar, war로 묶여서 배포되게 됩니다. 

이처럼 각각의 모듈을 분리할 경우 유지보수나 개발 단계에서도 효율적이라고 생각합니다. 

하나의 웹 애플리케이션에서 이 둘을 모두 개발하는 것도 가능하리라 생각합니다만 롬보즈에서는 자체적으로 지원하지 않기 때문에 힘들것으로 보여집니다. 

좋은 결과 있기를 바랍니다. 

dfdf님이 2004-06-21 17:00:38에 쓰신글 
>이클립스+롭보즈+웹로직8.1 에서 
>웹로직에서 웹어플리케이션부분을 같이 사용하고 여기서 jsp뿐만 아니라 서블릿도 사용하려고 합니다. 
> 
>필요하다면 struts을 사용할 수도 있는데 
> 
>일단 이클립스에서는 컴파일이 ejb쪽만 되더라구요 
> 
>webapp/ 
>            WEB-INF/ 
>                          src(서블릿 소스파일) 
>                          classes(컴파일된 서블릿자바파일) 
>                          lib(필요한 라이브러리) 
> 
>이렇게 구성하고 싶은데 어떻게 해야 할까요?






[질문] 이클립스 3.0에서 플러그인(lomboz) 설치

안녕하세요? 

이클립스 2.x를 쓰다가 이클립스 3.0버젼을 새로 받아서 사용하고 

있습니다. 

lomboz 를 설치할려고 파일을 다운 받아 압축을 이클립스/plugins에 

풀고 다시 이클립스를 재시작 하엿습니다. 

windows-설정 부분에 봐도 lomboz에 관한 세팅부분은 없구요.. 

플러그인을 추가할려고 해도 옵션이 보이질 않는군요.. 

이클립스 2.x 버젼에서는 plugins 폴더에 풀기만 하면 잘 되던데 

3.0버전에서는 어떻게 해야 하는지...잘모르겠습니다. 

이클립스는 3.0이구요..lomboz는 Lomboz.301.zip 이라는걸 

받아서 사용했습니다. 혹시 해결책 이나 플러그인 설치방법 

아시는분 답변 부탁드립니다. 검색해서 봤는데 잘 안되더군요.. 

그럼 즐거운 하루 되세요.. 
Written Time : 2004-08-10 10:55:56
네모(2004-08-10 14:21:07)저도 그 문제를 겪었었죠. 
음. 해결방법은.. EMF(Eclipse Modelling Framwork) 플러그인도 설치해야만 Lomboz를 사용할 수 있습니다. 이유는 저도 잘..ㅡ_ㅡ;; 
calmknight(2004-08-10 21:05:00)아..감사합니다. 그렇게 하니까 되네요..^^







 

bootcamp 지우기

맥북 프로 레티나 터치바 diskutility 에서 bootcamp 파티션 삭제하면 검은색에서 회색으로 바뀐다(APFS로 지정) 파틴션 아이콘 클릭하여 - 버튼을 이용하여 삭제하면 끝.