현재는 gwt-ext 로 개발을 하고 있어 ui 에 대한 스트레스가 덜했지만 예전에는 상당한 스트레스를
안겨준 GWT.... (gwt-ext 시작하신 분들은 더 힘들어 하시던데...)
프로젝트의 소스 구조를 구성하면서 느낀 부분은 최대한 쪼개자였습니다.
프로젝트 구분은 다음과 같이 나누어 집니다.
ㅁ engine - engine 프로젝트는 비지니스 로직을 담당합니다. - GWT 에서 사용하는 RPC 들과 GWT 에서 Serialize 되는 빈즈들도 포함시킵니다. - engine 프로젝트는 jar 로 묶어서 web 프로젝트에 배포합니다.
ㅁ ui - engine 프로젝트를 전체적으로 참조합니다. - gwt 의 ui 개발을 담당하는 프로젝트입니다. - GWTCompiler 를 통해 web 프로젝트의 WebRoot 로 배포를 합니다.
ㅁ web - 기본적인 웹 프로젝트와 동일하나 WebRoot 만 있고 다른 소스가 없습니다. - engine 프로젝트에서 engine.jar 를 배포받고, ui 프로젝트에서 컴파일된 결과를 배포받습니다. - 이클립스를 사용한다면 engine 쪽 프로젝트를 참조하게되면 디버깅시에 용의합니다.
ㅁ 프로젝트 분리시 장점 - 비지니스 로직을 서버에 배포할 때 engine.jar 하나만 배포 - ui 개발 중에 컴파일이 되더라도 웹서버의 autoreloadable 과는 관계없이 개발 가능 (이클립스에서 톰캣을 연결해서 쓰는데 별상관없는 ui 를 수정해도 컨텍스트를 다시 로드...) - web 프로젝트를 소스서버를 통해 배포할 수 있음