본문 바로가기
Web Program/GWT

[1] GWT + Maven New Module EntryPoint

by 학수씨 2014. 7. 4.


아.. 이제 글쓰기가 슬슬 귀찮아진다...;;;;

내가 완전 Master 하지 않은 기술을 가지고 Step by Step 으로 쓰려다보니..;;;

일단 Showcase Layout 을 가져오기 전에 신규로 모듈을 추가해야한다...


일단 간단하게 설명하자면 모듈은 1개의 프로그램 이라고 이해하면 쉽다..


GWT는 RIA기반의 AJAX Application 이다..


1개의 페이지(HTML)에서 여러 기능(Window 또는 Page)을 수행하기 위한것이라고 보면된다..


그럼 1개의 모듈은 1개의 페이지 즉 1개의 프로그램이라고 볼수 있다..


----------------------------------------------------------------------------------------------------------------------------------------------


예를들어 앞으로 진행할 것인데.. 


GWT Project

     ㄴ Login_Module

     ㄴ Program Module


----------------------------------------------------------------------------------------------------------------------------------------------

2개의 모듈을 만들어 하나는 Login을 담당하고 하나는 실제 프로그램이 돌아가게끔 모듈을 만들 예정이다..

여기서 좀 생소한 단어들이 나오는데 EntryPoint 라는 것인데 EntryPoint 는 UI를 만들어주는 뷰어 라고 이해하면 쉽고 좀더 자세하게 설명하자면 UI + Event + @ = Client 의 요소라고 생각하길 바란다..


Module은 EntryPoint와 상호작용을하여 동작하는데 이때 1개의 Module에 1개의 EntryPoint를 연결할수 있다.. 


아까 얘기했듯이  RIA는 1개의 HTML에서 여러 동작을 하는놈이다..

Module은 프로그램 EntryPoint는 UI 라고 봤을때 1개의 프로그램에 2개의 UI가 존재될수가 없다...


이제 각설하고 New Module을 추가하는 방법에 대해서... 시작해보겠음.





일단 신규 모듈을 추가할 프로젝트를 Package Explorer 에서 선택하고 Eclipse ToolBox의 New를 누르면 

New Wizard창이 하나가 뜰것이다. 여기서 Google Web Toolkit -> Module 을 선택하고 Next를 누르자.




그런다음 적어줄것은 Package와 Module name 이다..

Package는 그냥 뭐 새로 만들어도 되고 상관없지만 나는 그냥 기존의 Package를 사용함..


그런다음 Test 라는 이름을 적고 Finish를 누르자~




그럼 src/main/java 폴더에 com.hellogwt 패키지에 Test.gwt.xml 파일이 생성된다..


우리는 Porject가 Google Web Application 이 아닌 Maven Project이므로 resource 폴더로 이동시켜야 한다.




뭐 패키지를 신규로 만들었다면 resources에서 new package로 신규 package만들어주고 거기다 넣으면 댐..

일단 Module은 만들어졌다..


이제 간단하게 새로 만들어진 xml 파일을 수정해야 한다.


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.6.2//EN"

        "http://google-web-toolkit.googlecode.com/svn/tags/1.6.2/distro-source/core/src/gwt-module.dtd">

<module rename-to='test'>

    

<inherits name='com.google.gwt.user.User' />

<inherits name='com.google.gwt.user.theme.standard.Standard' />

<source path='client' />

<source path='shared' />

<source path='server' />

</module>


이렇게 수정하자~  일단 빨간색 부분을 보면 module rename-to 라고 되어있는데 이건  module name을 재정의 하는것이다.. 이렇게 재정의 하는 이유는 편의를 위해서.. 하는것일뿐이다.. 


Package에 대문자를 써도 되지만 안쓰듯이..... 

클리스명은 첫글자만 대문자로 쓰듯이........    라고 생각하면 편함..



그리고 하단 <source path 는 모하는놈이냐면...


package를 만들때 

packagename.client

packagename.server

packagename.sshard


라고 하위 패키지를 만드는것이 있다..

이때 하위 참조를 한다는 뭐 그런뜻이다.. 모르면 걍 넘어가도됨..



이제 모듈을 만들었으니 EntryPoint를 신규로 작성해야 한다.




아까와 마찬가지로 해당 프로젝트에서 New를 눌러 New Wizard를 부르고 EntryPoint Class 를 선택~




일단 Module의 Browse 버튼을 눌러 Module을 설정해야 한다.




그럼 아까 만들었던 Test Module이 보일것이다..

선택하고 OK!





그런다음 Package를 선택해야 한다.. Module 패키지가 com.hellogwt 이므로 뒤에 .client를 붙인 package로 하면 된다..


나는 기존 Package에 추가하는것이므로 위와같이 보이지만.. 아마 신규 패키지 모듈을 만들었다면 신규패키지를 만들어야 한다 .client 를 붙여서~




Name은 Module 이름과 똑같이 하고 Finish~





그럼 이제 Test.java 파일이 만들어졌다...


이제 EntryPoint까지 만들어 졌으니 이 EntryPoint와 html파일을 연결해야한다.


아까와 마찬가지로 New Wizard창을 켜서 HTML파일을 선택한다.






그럼 Filename 역시 Module Name, EntryPoint Name과 똑같이 적어주고 Module을 선택한후 Finish~



 그럼 마찬가지로 Test.html 파일이 생성됬다...



이제 실행해서 보면 URL 에 HelloGWT.html 이 불러지면 HelloGWT Module이 동작하게 되고

Ttest.html이 불러지면 Test Module이 동작하게끔 된다..


가끔.. 이렇게 신규로 Module을 만들었는데.. GWT가 바보처럼 동작을 않할때가 있다!!

이럴땐 프로젝트 속성에 들어가서 Module이 제대로 등록되어있는지 먼저 확인해야한다.





이여기 창을 띄우고 Restore Defaults 버튼 두~세번 눌러주고 OK 버튼 함 누르자.


그런다음엔 Run Configuration 에 들어가서 RUN 설정들을 모두 삭제해야 한다.



위처럼 설정되어있는 RUN 속성들을 모두 지우고 다시 RUN 해주면 정상 동작할것이다..



이렇게 New Module하는 법에 대해서 글을 썻고 다음번에는 

Showcase Module을 신규로 만들고~


구성하는것에 대해서 글을 작성하겠음~











댓글