sitelink1 | |
---|---|
sitelink2 | |
sitelink3 |
http://wiki.javajigi.net/pages/viewpage.action?pageId=261
Eclipse을 활용한 효율적인 개발 방법 1차 스터디의 목적
Eclipse 기반하에서 개발 효율화를 위하여 활용할 수 있는 방법들에 대하여 논의한다. Eclipse와 다양한 플러그인들의 통합을 이용한 효율적인 개발환경 구축, CVS와 같은 버전관리 시스템을 이용한 효율적인 팀 개발 방법, ANT, Maven과 같은 빌드 툴을 활용한 Deploy전략에 대해서 논의한다.
이번 스터디에서 반드시 이해해야 할 부분
- IDE의 도입과 그에따른 결과.
- 이클립스로 project생성하기.
- 간단한 Web Application 생성 웹페이지 확인.
- 프로젝트 팀공유 하기.
Eclipse 의 기본적인 사용방법
- 새로운 Eclipse 플러그인을 찾는 방법에 대한 Resource를 모아 봅시다.
- 보통 http://www.eclipse-plugins.info/eclipse/index.jsp
사이트의 What's New를 통해서 새로 나온 플러그인이나 Update된 플러그인을 찾아봅니다.
- Eclipse Main 사이트
에도 서브 프로젝트들이 많습니다. 이곳에도 가끔 들러서 현재 개발되고 있는 상황이나 Road Map을 봅니다.
- 보통 http://www.eclipse-plugins.info/eclipse/index.jsp
- 새로운 Eclipse 플러그인을 설치하는 방법에 대해서는 IDE:Eclipse에 새로운 플러그인 설치하기문서를 참고하기 바랍니다.
- Eclipse의 주요 기능 중 하나씩 Refactoring에 대하여 알아봅시다.
- Eclipse에서 사용할 수 있는 유용한 단축키에 대하여 모아봅시다.
- 앞으로 사용하게될 플러그인 목록.
Eclipse에서 웹 애플리케이션 개발 - Tomcat Plugin
*Sysdeo Tomcat plugin 소개, 설치 및 프로젝트생성 - 참고자료
- IDE:Eclipse에 Tomcat Server플러그인 설치하기 : 좀 오래된 버전으로 작성된 문서이지만 기본적인 설정 및 사용 방법은 동일 합니다.
Eclipse에서 CVS를 이용한 팀 개발
- IDE:CVS 설치와 Eclipse와의 연동 : CVSNT 설치에서 Eclipse와의 연동 방법을 살펴볼 수 있다.
- IDE:Eclipse와 CVS과 연결하여 사용하기 : Eclipse에서 CVS를 연결하여 사용할 수 있는 방법에 대하여 다룬다.
- CVS를 사용하여 개발을 진행할 때의 효율적인 프로세스에 대하여 논의한다.
- CVS에서 충돌과 같은 문제가 발생했을 때의 해결책을 찾아본다.
- Subversion
- Subversion 설치(windows.svnserve) 설치/연동
- KLDP Subverion How To
Subverion의 소개 및 사용
Eclipse에서 Junit의 사용
Eclipse에서 ANT의 사용
- Eclipse Ant basics
워낙 소개된 문서들이 많아서 링크로 때웁니다.( 깊숙히 들어가면 바닥들어 납니다. )
- Ant를 사용함으로써 격었던 효율적인 작업들.
Eclipse에서 Maven의 사용
- Eclipse에서 Maven을 사용하는 방법에 대해서는 Maven 스터디에서 다루도록 하는 것이 좋겠습니다. 너무 처음에 많은 것을 하면 다른 분들이 지칠거 같아서요.
Eclipse에서 MiddleGen 사용 (Hibernate)
- Eclipse에서 Hibernate를 사용하기 위한 DTO와 Mapping파일을 생성 하는 Plugin으로 비쥬얼한 화면으로 DB의 Schema를 가져와서 DTO,Mapping파일을 생성 할 수 있다.
- 잘 설계된 Database의 경우에는 Object Relation형태의 구조를 쉽게 구현 할 수 있으며 특별히 Mapping파일을 수정하지 않고 정의된 DB의 스키마로 생성된 기본 DTO Object와 mapping파일만을 가지고도 우수한 시스템 구축이 가능 합니다.
- Middlegen
은 이와같이 실제적으로 구현된 DB에서 부터 Hibernate Framework에서 사용할 DTO와 mapping파일을 자동으로 생성 해줍니다.
- 이 외에도 DB2XML, DB2JAVA, JAVA2DB...의 기능을 지원하는 다양한 툴들이 있습니다 더 자세한것을 알아보시려면 Hibernate
에서 확인이 가능 하십니다.
- IDE:Eclipse 에서 Middlegen 사용하기
Deploy 전략
- CVS, SVN과 같은 버전 관리 시스템을 이용할 경우 개발 서버 및 실 서버에 Deploy하기 위한 전략을 찾는다.
- 점차 EJB의 사용이 줄어들면서 LightWeight container 아키텍처로 개발하는 경우가 증가할 것이다. 현재 존재하는 모든 서버들이 war 표준하에서는 어느 곳에서나 배포가 가능하다. 이 같은 상황에서의 개발 환경 및 Deploy 전략을 찾는다.
Eclipse 관련한 참고 문서
- http://www.eclipse.org/articles/index.html
: Eclipse와 관련한 너무도 많은 문서들을 찾아볼 수 있는 곳. 그러나 모두 영어이다.
- 자바지기 위키 Eclipse 문서 : 자바지기 위키에서 그 동안 다루어왔던 Eclipse 관련 문서나 외부 문서
- Eclipse 플랫폼을 왜 확장해야 하나에 관한 문서
나 이 페이지가 열리지 않을 경우 01_Introduction.pdf
문서 참고
- Eclipse 3.1 Inside - Goooooood!
정리
ANT를 이용한 일일빌드.
1. 우선 CVS에서 개발서버로 소스를 checkout합니다. 이때 기존 소스관련 폴더는 삭제합니다.
2. checkout된 프로젝트의 빌드파일을 실행합니다.
3. 프로젝트 빌드파일은 프로젝트내의 JAVA Source를 컴파일합니다.
4. 컴파일도중 오류가 발생하면 메일 발송.
5. 톰캣을 리스타트 합니다.
- cvs 에서 가져오는 build.xml
<?xml version="1.0" encoding="UTF-8"?><project name="CrediMail" default="main" basedir="."> <target name="main"> <antcall target="cvscall"> </antcall> <antcall target="copybin"> </antcall> <antcall target="compile"> </antcall> </target> <target name="init"> <tstamp> <format property="TODAY" pattern="d-MM-yy"/> </tstamp> <property name="cvs.checkout.dir" value="${basedir}" /> <property name="eclipse4j.home" value="/usr/local/eclipse4j" /> </target> <!-- =================================================================== --> <!-- Invoke XDoclet's webdoclet --> <!-- =================================================================== --> <target name="cvscall" depends="init" description=""> <echo>+---------------------------------------------------+</echo> <echo>| |</echo> <echo>| R U N N I N G C V S I M P O R T |</echo> <echo>| |</echo> <echo>+---------------------------------------------------+</echo> <delete dir="${cvs.checkout.dir}/MyEclipsePRJ/web"/> <delete dir="${cvs.checkout.dir}/MyEclipsePRJ/libsrc"/> <delete dir="${cvs.checkout.dir}/MyEclipsePRJ/testclasses"/> <delete dir="${cvs.checkout.dir}/MyEclipsePRJ/unittest_src"/> <delete dir="${cvs.checkout.dir}/MyEclipsePRJ/src"/> <cvspass cvsroot=":pserver:eclipse4j@test.eclipse4j.com:/home/cvs" password="eclipse4j" /> <cvs cvsRoot=":pserver:eclipse4j@test.eclipse4j.com:/home/cvs" package="MyEclipsePRJ" dest="${cvs.checkout.dir}" /> </target> <target name="copybin" depends="init" description=""> <echo>+---------------------------------------------------+</echo> <echo>| |</echo> <echo>| R U N N I N G COPY TO BIN |</echo> <echo>| |</echo> <echo>+---------------------------------------------------+</echo> <!-- 초기 설치시에만 적용 --> <!-- <copydir src="${eclipse4j.home}/CrediMail" dest="${cvs.checkout.dir}/MyEclipsePRJ" includes="bin/**, Data/**, conf/**, lib/**, modules/**"/> --> </target> <target name="compile" depends="init" description=""> <echo>+---------------------------------------------------+</echo> <echo>| |</echo> <echo>| SOURCE COMPILE |</echo> <echo>| |</echo> <echo>+---------------------------------------------------+</echo> <ant antfile="build.xml" dir="${cvs.checkout.dir}/MyEclipsePRJ"/> </target></project>
- cvs 에서 가져오는 build.xml 이 xml파일은 project root에 위치.
<?xml version="1.0" encoding="UTF-8"?><project name="CrediMail" default="main" basedir="."> <target name="main"> <antcall target="compile_lib"></antcall> <antcall target="compile_src"></antcall> </target> <target name="init"> <tstamp> <format property="TODAY" pattern="d-MM-yy"/> </tstamp> <property name="dest.src.dir" value="${basedir}/web/WEB-INF/classes" /> <property name="org.src.dir" value="${basedir}/src" /> <property name="lib.src.dir" value="${basedir}/libsrc" /> <path id="project.classpath"> <pathelement location="${dest.src.dir}"/> <fileset dir="${basedir}/web/WEB-INF/lib"> <include name="*.jar"/> </fileset> <fileset dir="${basedir}/doc"> <include name="*.jar"/> </fileset> </path> </target> <target name="compile_lib" depends="init" description=""> <echo>+---------------------------------------------------+</echo> <echo>| |</echo> <echo>| R U N N I N G Compile LIB |</echo> <echo>| |</echo> <echo>+---------------------------------------------------+</echo> <javac srcdir="${lib.src.dir}" destdir="${dest.src.dir}"> <classpath refid="project.classpath"/> </javac> </target> <target name="compile_src" depends="init" description=""> <echo>+---------------------------------------------------+</echo> <echo>| |</echo> <echo>| R U N N I N G Compile Source |</echo> <echo>| |</echo> <echo>+---------------------------------------------------+</echo> <javac srcdir="${org.src.dir}" destdir="${dest.src.dir}"> <classpath refid="project.classpath"/> </javac> </target></project>
아직까지는 maven이 익숙하지가 않아서...ㅡㅡㅋ