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)아..감사합니다. 그렇게 하니까 되네요..^^







 

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...