'IT/ASLC'에 해당되는 글 8건

  1. 2013.08.26 jenkins 시작 by 즐건세상
  2. 2013.08.26 Ant 를 이용한 빌드 by 즐건세상
  3. 2013.08.26 샘플 프로젝트 by 즐건세상
  4. 2013.08.26 젠킨스 overview by 즐건세상
  5. 2013.08.26 jenkins 설치 by 즐건세상
  6. 2009.01.17 subversion 설치하기 by 즐건세상
  7. 2009.01.17 ie 에서 자바스크립트 디버깅 by 즐건세상
  8. 2008.12.27 개발 환경 자동화 by 즐건세상

jenkins 시작

IT/ASLC 2013. 8. 26. 18:04

1.젠킨스(jenkins) Overview

2.젠킨스(jenkins) 설치

3. 샘플 프로젝트

4. Ant 를 이용한 빌드

5. 젠킨스(jenkins) 시작


jenkins 새 작업 시작

■ 젠킨스 새 작업 등록

새로운 Job 메뉴를 클릭하면 아래 그림과 같은 메뉴가 나타나게 된다.

Job 이름을 지정하고  Job 종류 중에 원하는 메뉴를 선택한다. 여기서는 Build a free-style software project 를 선택한다.

Job을 등록하고 소스 코드 저장소, 빌드 설정, 빌드 후에 대한 설정을 할 수 있다.

소스코드 관리

소스 코드 관리에서는 Subversion을 선택하고 Repository URL 정보를 입력한다. URL을 입력하면 inline창으로 밑에 enter credental 입력하라는 메시지를 볼 수 있다. enter credental 링크를 클릭하게 되면 사용자 아이디와 비밀번호를 입력 할 수 있다. 서브버전 저장소에 접근 할 수 있는 아이디와 비밀 번호를 저장하게 된다.

빌드 환경 설정

설치된 Ant Version을 선택한다.

Targets 의 값으로는 샘플프로젝트에서 작성한 빌드 파일인 build.xml의 타깃(target)의 이름을 적어주면 된다.

Build File의 값으로는 ant build 파일이 위치한 경로를 적어주면 된다. 위치 경로는 작업공간 메뉴를 클릭해서 나타나는 폴더의 경로를 적어주면 된다. 빌드 파일의 이름이 build.xml 이고, 루트 폴더에 위치해 있다면 생략해도 된다.

Build File 메뉴가 안보일 경우에는 고급 버튼을 클릭하면 볼 수 있다.


빌드 후 작업

빌드 후에 할 수 있는 작업들은 아래 그림과 같다.


여기서는 빌드 후에 junit 테스트 실행 결과를 보도록하는 작업을 선택했다.

Test report XMLs 값으로 xml 파일이 생성되는 위치 경로를 작성해 주면 된다.


빌드 실행

빌드 실행하기 위해서 왼쪽 메뉴에서 Build now 버튼을 클릭한다ㅏ.


빌드가 완료되고 나면 Build History에 등록되게 된다.

빌드 결과 확인

Build History 에서 시간을 클릭하게 되면 빌드 결과를 확인 할 수 있다.

빌드후에 Test Result를 확인 할 수 있다.

테스트 실행 결과를 테이블 형태로 볼 수가 있다.

□ Build History 통계

Build History의 통계 메뉴를 클릭하면 통계치를 그래프로 확인 할 수 있다.



Posted by 즐건세상
l

Ant 를 이용한 빌드

IT/ASLC 2013. 8. 26. 15:44

1.젠킨스(jenkins) Overview

2.젠킨스(jenkins) 설치

3. 샘플 프로젝트

4. Ant 를 이용한 빌드

5. 젠킨스(jenkins) 시작

샘플 프로젝트를 빌드하고자 한다.

빌드를 하는 가장 간단한 방법은 명령줄(command line)에서 빌드하는 것이다. 

명령줄 빌드

명령줄에서 샘플 프로젝트를 빌드하는 방법은 아래와 같다.



-classpath 컴파일 옵셥은 참조하는 라이브러리 jar 파일들의 목록이 된다. 유닉스에서는 구분자가 세미콜론(:)이 된다.

-d 옵션은 .java 파일들을 빌들한 결과로 나온 클래스 파일들이 저장될 경로가 된다.


Ant를 이용한 빌드

명령줄 빌드는 빌드를 자주 실행할 수가 없다. 빌드를 한번 실행해보기 위해서는 너무 많은 노력이 들어가게 된다. 뭔가 잘못입력한다면 빌드 스크립트를 처음부터 다시 입력해야 한다. Ant를 이용하면 보다 쉽게, 자주 빌드를 실행 할 수가 있다.

Ant를 이용한 빌드 스크립트 작성하기

□  프로젝트 정의하기

<?xml version="1.0" encoding="UTF-8"?>
<project name="LectureService" default="compile" basedir=".">

□  재료 정의하기

프로젝트 디렉토리에 프로퍼티를 정의하여 앤트에 프로젝트 디렉토리 구조를 알려준다.

<property name="build.dir" location="bin"></property>
<property name="build.prod.dir" location="${build.dir}/prod"></property>
<property name="build.test.dir" location="${build.dir}/test"></property>
<property name="src.dir" location="src"></property>
<property name="test.dir" location="test"></property>
<property name="lib.dir" location="lib"></property>
<property name="test.reports" location="testReports"></property>

프로젝트 경로는 상대경로로 지정하여 경로가 변경되더라도 수정없이 사용할 수 있도록 한다.

□  클래스 패스 정의하기

pathelement 엘리먼트에 빌드 디렉토리 두 개를 추가해서 자바 컴파일러가 모든 클래스 파일들을 찾아낼 수 있게 한다.

fileset 엘리먼트에 필요한 라이브러리가 들어 있는 경로를 추가한다.

<path id="project.classpath">
    <pathelement location="${build.prod.dir}"></pathelement>
    <pathelement location="${build.test.dir}"></pathelement>
    <fileset dir="${lib.dir}">
        <include name="*.jar"></include>
    </fileset>
</path>

컴파일 작성하기

target의 실행 순서를 지정 할 수 있다. depends 속성의 값을 prepare 타깃을 실행한 다음 compile 타깃을 실행하게 설정 할 수 있다.

<target name="prepare">
        <mkdir dir="${build.prod.dir}"></mkdir>
        <mkdir dir="${build.test.dir}"></mkdir>
        <mkdir dir="${test.reports}"></mkdir>
</target>


<target name="compile" depends="prepare">
    <javac srcdir="${src.dir}" destdir="${build.prod.dir}">
        <classpath refid="project.classpath"></classpath>
    </javac>
</target>

prepare 타깃을 실행하고 나면 <javac 타스크를 실행하게 된다. 자바 컴파일러는 srcdir 속성의 값이 가리키는 폴더의 소스코드들을 컴파일하고, 생성된 클래스 파일들을 destdir 속성의 값에 해당하는 경로에 저장한다. classpath는 앞에서 정의한 값을 재사용 할 수 있다.


junit 스크립트 작성하기

지금까지 컴파일 타깃을 작성하는 것에 대해서 살펴 봤고, 이번에는 junit 스크립트를 작성하는 방법에 대해서 알아보고자 한다.

컴파일 순서를 compile-tests 를 먼저 실행하고 test 타깃을 수행한다.

junit  haltonfailure 속성을 true로 설정하면 테스트가 하나라도 실패하면 빌드가 실패하도록 한다.

classpath는 앞에서 정의한 클래스 패스를 재사용 한다.

테스트 결과보고를 어떻게 보여주느냐에 대한 설정으로 formatter 엘리먼트를 이용한다. formatter 엘리먼트의 type 속성의 값은 brief, plain, xml로 설정 할 수 있다.

brief : 실행되는 테스트 케이스의 이름과 통계, 세부 정보들을 테스트가 실패할 때만 출력할 경우 사용

plain : brief 보다 더 많은 정보를 출력 할 경우 사용

xml : 출력 결과를 xml 형식으로 출력 할 경우 사용

usefile 속성 값을 false로 정의하면 테스트 결과를 파일에 출력하지 않고 화면에 출력한다.

batchtest 태스크 안에 fileset 엘리먼트를 이용해서 작성된 테스트 케이스를 한꺼번에 실행 할 수 있다.

batchtest 엘리먼트의 todir 속성의 값으로 테스트 실행결과 파일이 생성될 위치 경로를 지정 할 수 있다.

앞에서 정의 한 <formatter 엘리먼트의 형식으로 리포트가 생성된다.

<target name="test" depends="compile-tests">
        <junit haltonfailure="true">
            <classpath refid="project.classpath"></classpath>
            <formatter type="xml"></formatter>
            <formatter type="brief" usefile="false"/>
            <batchtest todir="${test.reports}">
                <fileset dir="${build.test.dir}" includes="**/*Test.class"></fileset>
            </batchtest>
            <sysproperty key="doc.dir" value="${doc.dir}"></sysproperty>
            <sysproperty key="index.dir" value="${index.dir}"></sysproperty>
        </junit>       
    </target>

ant 실행하기

명령줄에서 실행할 때는 다음과 같이 실행 할 수 있다.



이클립스 플러그인을 이용해서 ant 실행하기

이클립스 ant view 실행하기

Windows - Show View - ant view 실행



처음 Ant view 를 실행하면 아무것도 보이지 않는다.  위 그림에서 1번 사각형의 아이콘을 클릭해서 build.xml을 추가해 주면 된다.

Ant view 에서는 빌드 스크립트에 정의 되어 있는 target 을 볼 수 있다. 타겟을 선택한 다음 2번 사각형의 아이콘을 클릭하면 타깃을 실행 할 수 있다.


완성된 빌드 파일을 첨부했다.

build.xml




Posted by 즐건세상
l

샘플 프로젝트

IT/ASLC 2013. 8. 26. 12:31

1.젠킨스(jenkins) Overview

2.젠킨스(jenkins) 설치

3. 샘플 프로젝트

4. Ant 를 이용한 빌드

5. 젠킨스(jenkins) 시작


샘플 프로젝트 소스

샘플 프로젝트는 강의 등록, 조회하는 예제다. 


 LectureService

 강의 등록과 강의 조회하는 인터페이스

 RDBLectureService

 강의를 RDB에 등록, 조회하는 클래스

 RestfulLectureService

 Restful 방식으로 강의를 등록, 조회하는 클래스

 LectureDAO

 강의를 등록, 조회하기 위한 데이터 클래스

■ 샘플 프로젝트 디렉토리 구조

샘플 프로젝트의 디렉토리 구조는 아래 그림과 같다. 샘플 디렉토리의 구조는 나중에 작성하게 될 ant build 스크립트를 작성 할 때 중요하므로 기억해 두는게 좋다.


폴더 구조는 root 폴더에 LectureService라는 폴더가 존재한다.

― bin 폴더

― prod 폴더 : src 폴더의 코드가 컴파일된 클래스 파일들이 들어가게 된다.

― test 폴더 : test 폴더의 코드가 컴파일된 클래스 파일들이 들어가게 된다.

― src 폴더: 제품 소스 코드가 들어가게 된다.

― test 폴더: 테스트 코드가 들어가게 된다.

― lib 폴더 : 프로젝트와 관련된 *.jar 파일들이 들어가게 된다.

― testReports 폴더 : 단위 테스트 결과 XML 문서가 들어가게 된다.

이클립스 프로젝트 구조








Posted by 즐건세상
l

젠킨스 overview

IT/ASLC 2013. 8. 26. 11:48

1.젠킨스(jenkins) Overview

2.젠킨스(jenkins) 설치

3. 샘플 프로젝트

4. Ant 를 이용한 빌드

5. 젠킨스(jenkins) 시작


What is Jenkins?
젠킨스는 소프트웨어 프로젝트 빌딩하는 작업 또는 크론(cron)에 의해서 실행되는 작업 같은 반복되는 작업들의 실행을 모니터링하는 어플리케이션이다.

소프트웨어 프로젝트의 빌딩/테스팅은 지속적이어야 한다.

젠킨스는 사용하기 쉬운 CI(Continuous Integration) 시스템을 제공한다. 젠킨스는 개발자들이 프로젝트의 변화를 통합하는 작업을 더 쉽게 만들어준다. 젠킨스는 사용자들의 최신의 빌드를 얻는데 더 쉽게 만들어 준다. 자동화되고, 지속적인 빌드는 생산성을 증가시켜 준다.

외부에서 실행되는 작업이나, 크론(cron) 같은 작업들과 프락메일(procmail) 작업들, 심지어 원격 머신도 모니터링을 실행한다. 예를 들어, 크론의 작업 결과를 정기적인 이메일로 받고,  당신은 이메일을 부지런히 주시하고, 뭔가 잘못됐을 때 알림을 받게 된다.

젠킨스는 이러한 결과들을 유지시켜주고, 뭔가 잘못됐을 때 알림을 받기 쉽게 해준다.

■ Features

1.쉬운 설치

java -jar jenkins.war 명령을 실행 또는,

서블릿 컨테이너에 jenkins.war 파일을 디플로이(deploy)

더  이상 추가적인 인스톨이나 데이터베이스는 없다.

2. 쉬운 설정

젠킨스는 즉각적인 에러 확이과 인라인 도움말 기능을 갖춘 친숙한 웹 GUI 설정 환경을 젠킨스의 모든  설정에서 사용할 수 있다. 젠킨스는 더이상의 XML 이 필요없긴 하지만, 당신이 원하면 그렇게 할 수도 있다.

3. 변경 집합(set) 지원

젠킨스는 서브버전(Subversion)이나, CVS로부터 체크아웃을 소스 코드를 받아 온다. Repository의 부하를 줄이기 위해 변경된 부분만 받아온다.

4. 영구 링크
Permanent links: Jenkins gives you clean readable URLs for most of its pages, including some permalinks like "latest build"/"latest successful build", so that they can be easily linked from elsewhere.

5. RSS/E-mail/IM 통합

빌드에 대한 결과를 실시간으로 RSS 또는 e-mail로 모니터링 할 수 있다.

6. After-the-fact tagging
 Builds can be tagged long after builds are completed.

7. JUnit/TestNG 테스트 보고

젠킨스는 테스트 결과를 테이블 형태, 요약, 테스트가 언제 실패했는지와 같은 히스토리 정보도 보여준다. 히스토리 경향을 그래프로 보여준다.

8. 분산 빌드

젠킨스는 여러대의 컴퓨터에서 분산 빌드/테스트를 실행 할 수 있다.

Distributed builds: Jenkins can distribute build/test loads to multiple computers. This lets you get the most out of those idle workstations sitting beneath developers' desks.

9. File fingerprinting

Jenkins can keep track of which build produced which jars, and which build is using which version of jars, and so on. This works even for jars that are produced outside Jenkins, and is ideal for projects to track dependency.
Plugin Support: Jenkins can be extended via 3rd party plugins. You can write plugins to make Jenkins support tools/processes that your team uses.

Posted by 즐건세상
l

jenkins 설치

IT/ASLC 2013. 8. 26. 10:28

1.젠킨스(jenkins) Overview

2.젠킨스(jenkins) 설치

3. 샘플 프로젝트

4. Ant 를 이용한 빌드

5. 젠킨스(jenkins) 시작



설치 파일 다운로드

http://jenkins-ci.org/



파일 다운로드 화면에서 자신의 환경에 맞는 파일을 다운로드 받는다.

다운로드 받으면 jenkins.war 파일을 확인 할 수 있다.

jenkins를 실행하기 위해서는 servlet container가 필요하다.
Tomcat 또는 jboss 등의 servlet container가 설치 되어 있어야 한다.


■ jenkins 설치

Windows 명령어 창에서 다음의 명령어를 실행한다.

이 명령을 실행하기 전에 톰캣이 실행되어있는 상태여야 한다.

"java -jar jenkins.war" 실행한다.


실행이 되고 나면 설치가 완료된다. 더 이상의 install 이나 DB도 필요 없다.


■ jenkins 설치 확인

브라우저 창에 http://localhost:8080/ 을 입력한다.





Posted by 즐건세상
l

subversion 설치하기

IT/ASLC 2009. 1. 17. 12:53
cvs 에서 subversion 으로 소스 관리 툴이 넘어가는 분위기다. 이유야 여러가지가 있겠지만 개인적으로는 서브버전의 속도도 중요한 이유가 아닐까 생각된다. 현재 프로젝트에는 파일갯수가 25,000 개 정도 되는데 이클립스 CVS 플러그인으로 동기화를 하면 시간이 너무 많이 걸린다. 물론 개인의 피시 사양이나 서버의 사양에 따라 차이가 있긴 하겠지만..
서브버전을 그렇게 많이 쓰보진 않았지만 속도면에서는 많이 개선된거 같다.  CVS에 비하면 무지하게 빨라졌다. 특히 이클립스 플러그
인 보다는 거북이를 이용하면 속도는 더 빠르다.

 서브 버전 설치 방법은 이 싸이트(http://www.pyrasis.com/main/)에 가면 엄청상세하게 나와 있다. 그래서 이 글에서는 설치하는 방법보다는 서브버전에 대한 애기와 설치가 잘 안됐던 경우에 대해서 다룬다.
먼저 서브버전에 대해서 이야기를 조금 하자면, 나도 자세히는 모르지만...
서브버전은 아파치랑 연동이 되면서 webdav라는 프로토콜을 이용해서 버전관리를 하게 된다. webdav가 뭐냐면.. 기존의 http 프로토콜을 확장한 프로토콜이다. 기존의 http get, post..등의 메소드에 PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK ,UNLOCK 메소드가 추가됐다. 즉, 클라이언트에서 서버의 파일을 컨트롤 할 수 있다는 애기가 된다. 서브버전은 이런 기능을 이용해서 버전 관리를 하게 된다. 서브 버전자체로는 웹 서버의 기능이 없기 때문에(CVS는 있었지만)  아파치랑 연동해서 돌아가게된다. 아파치와 서브 버전의 연결고리가 필요한데, 그게 바로 mod_dav_svn.so 라는 파일이다. 그런데 이 연결이 제대로 안될때가 있다. 나도 잘 안되서 한참 검색을 해본 결과 서브버전싸이트에 정답이 있었다. 가까운데 나두고 멀리서 너무 찾은듯..
여기에(http://subversion.tigris.org/faq.html#mod_dav_svn-win32) 가면 해결 방법이 나와 있었다.  대충 해석하면 libdb4*.dll,
intl3_svn.dll, libeay32.dll and ssleay32.dll 파일을 아파치의 apache/bin, apache/modules 디렉토리에 복사를 해주면 된다라는 애기다. 이렇게 해도 안될 때에는 아파치와 서브버전을 최신 버전으로 설치해서 해보길 권장한다.
설치가 제대로 됐다면 서브 버전을 사용해 보고 아파치 access 로그를 보면 아래 그림과 같은 로그를 볼 수 있다. 아까 위에서 말한 메소드가 보이는것을 확인 할 수가 있다.



그리고 서브버전 클라이언트 툴로 Tortoisesvn(http://www.tortoisesvn.tigris.org/) 을 쓰보는것도 추천한다.

사용법은 검색하면 쉽게 찾을 수 있다.

Posted by 즐건세상
l
자바 스크립트를 많이 사용하지만 사용할 때 마다 짜증이 많이 난다. 데이터 타입을 체크해주지도 않고 실행하다가 오류가 발생해도
별다른 메시지도 없다. 그남아 파이어 폭스에서는 firebug를 이용하면 짜증이 좀 덜 난다. 그런데 액티브 x 를 설치해야되는 경우에는
파이어폭스에서는 디버깅이 안된다. 이럴 경우에는 어쩔 수 없이 ie에서 테스트를 해야된다. ie 에서 디버깅하는 방법을  찾다가 frontpage에서 디버깅이 가능하다라는것을  알아냈다. frontpage 는 오피스 xp나  2003의 FromtPage가 지원되고 다른 버전은 지원되지 않는다.
  FromtPage 설치한다. 설치 할때에는 전체 설치로 설치를 한다. 안그러면 자바스크립트 디버깅에 필요한 파일들이 설치 되지 않는다.
설치를 하고 나면 그림1과 같이 메뉴를 선택한다.

<그림 1 자바 스크립디 디버그 메뉴 선택>

그림 1에서 메뉴를 선택하면 그림 2와 같은 화면을 볼 수가 있다. 이 화면은 일정나이를 체크하는 자바스크립트 코드입니다.

메뉴 선택

메뉴

<그림 2 Miscrosoft Script Editor>

그림 2에서 아래 쪽의 html 탭을 클릭하면 그림3과 같은 자바스크립트 코드를 볼 수 있습니다.



<그림 3 자바 스크립트 디버깅>



그림 3에서와 같이 브레이크 포인틀 걸고 디버깅을 할 수가 있습니다.


참고 사이트

http://www.bumworld.pe.kr/270

http://www.jonathanboutelle.com/mt/archives/2006/01/howto_debug_jav.html

Posted by 즐건세상
l

개발 환경 자동화

IT/ASLC 2008. 12. 27. 11:29
ci 에 대한 자료를 찾다가 글을 쓰기에는 아직 지식이 부족한거 같고
관련 툴들만 적어봅니다.

■ 소스 코드 관리

 - subversion, cvs
<span style="font-size: 9pt;">슬라이드 2</span>
issue 관리 시스템
 - trac, mantis, bugzilla, jira
<span style="font-size: 9pt;"><span style="font-size: 9pt;">슬라이드 2</span></span>
자동 빌드 시스템
 - crusie control, hudson, team city
쉬운 deploy
  - junit, cactus, JUnitEE
테스트 커버리지
 - Cobertura, EMMA
 
■ code inspection
 - check style, findbug, pmd
※ 참고 사이트
 -  보다 자세한 내용은 아래 사이트를 참고하세요

http://bcho.tistory.com/
http://www.ibm.com/developerworks/kr/library/j-ap01117/index.html
http://okjsp.tistory.com/tag/ci
http://www.pyrasis.com/main/
http://martinfowler.com/articles/continuousIntegration.html
http://agile.egloos.com/

슬라이드 12
* 현재 프로젝트에서 개선이 필요한 부분
 - 수정 사항을 운영 서버로 반영하기 위한 부분 자동화가 필요
   -> folder 생성 프로그램과 ftpclient 프로그램으로 해결
 - 로깅 시스템 개선
  -> 로그 레벨 조정
  -> error 레벨이 발생했을 경우 관리자로 email전송
  -> 업무별 로그 파일 분리
 - 디버깅 환경
  -> cactus를 이용한  j2ee 에서 디버깅 환경 구성


Posted by 즐건세상
l