2012년 7월 31일 화요일

개발 환경


다른건 다 서버에서 백그라운드로 알아서 돌아가는거니까 CI 툴 스크린샷만 넣었습니다. 보여지는건 CI만 보여집니다만, 이 안에서는 SVN, Trac, Jenkins, Manve이 모두 연동해서 돌아갑니다. 이 외에 php, python 연동은 조금만 공부하시면 똑같은 방법으로 하실 수 있습니다. 그리고 조금만 더 나아가시면 Jenkins에서 매일 밤에 자동으로 빌드해서 안에 설치해 둔 tomcat에 테스트 버전을 자동으로 배포하는 것까지 다 하실 수 있습니다. 위 스크린샷을 조금만 설명해 드리자면, jenkins가 빌드를 하면서 각종 테스트를 수행하고 결과를 리포팅 한 화면입니다. 왼쪽에는 각종 기능과 빌드 히스토리가 있고, 가운데에는 리포트에 접근하기 위한 링크가, 오른쪽에는 주요 지표가 빌드가 진행됨에 따라 어떻게 변화하고 있는지가 보여집니다. 오른쪽 트렌드차트는 순서대로 단위 테스트 통과/실패 추이, 소스 코드 상의 오류 가능성 추이, 소스 코드의 테스트 커버리지 추이를 보여줍니다.


첫번째 트렌드 차트인 테스트 결과 상세보기입니다. junit 단위 테스트 소스코드 별로 성공한 테스트와 실패한 테스트를 모아서 보여줍니다. 화면 보시면
아시겠지만 소스코드 별로 들어가서 확인할 수 있습니다.

스샷이... 안짤랐네요. 떱. 귀찮아서 그냥... PMD Warnings와 Static Analysis Warnings는 같은 리포트입니다. 소스 코드 상에서 버그가 생길만한 부분을 찾아서
알려줍니다. 대충 봐도 뭔 소리인지 아시겠죠? 쓰지도 않는 import가 남아있다는 것과 사용하지 않는 코드가 있다는 뜻입니다.

다음은 코드 커버리지 테스트입니다. 코드 커버리지란 junit 테스트 코드가 각 소스코드에 대해서 얼마나 단위 테스트를 수행했는지를 보여줍니다. TDD
하신다면 꽤 유용한 리포트가 될겁니다. 위 리포트를 보시면, com.sweetrain.devsample.impl 패키지의 소스코드는 전부 테스트 코드가 수행됐습니다.
그런데 web.controller 패키지는 전체 라인의 40% 밖에 테스트가 안됐습니다. 그러면 테스트가 안된 60%는 실제로 어떻게 동작할지 자동으로 돌려본 적이
없다는 뜻입니다. 이런 코드들은 jenkins가 밤에 빌드 해 줘도 정상적으로 동작하는지 알 수가 없습니다. 그래서 그 안에 들어가 보면....

저기 빨간색 부분이 테스트가 안된 코드입니다. 녹색 앞에 있는 2라는 숫자는 단위 테스트를 하는 동안 2번 실행됐다는 뜻입니다.

마지막으로....

어디선가 많이 본 익숙한 화면이죠? 프로젝트 정보가 담긴 사이트를 알아서 생성해 줍니다. 팀원들이 이 사이트를 통해서 프로젝트에 대한 정보를 얻어가기도
하고, 팀장은 이 사이트에 리포트 기능을 이용해서 어느 팀원이 더 많이 커밋을 했는지도 볼 수 있습니다.

2010년 7월 30일 금요일

HD2 내 꿈의 기기

다른 모든 기기 들은 그저 스쳐 지나가는 자판기 커피에 불과했다.

HD2 넌 나에게 TOP

2010년 4월 7일 수요일

nfs time out error

mount -o nolock,intr,wsize=1024,rsize=1024 192.168.0.1:/opt/nfs/drymoon /mnt/nfs

exel 행 열 고정 2007

엑셀에서 표를 볼 때, 어떤 행이나 열을 고정시키고 보면 편할 때가 자주 있습니다. 그렇게 하려면, 셀을 선택해 놓은 상태에서 메뉴에서 '창'을 고른 다음 '틀 고정'을 선택하면 됩니다. 그런데 엑셀 개발자는 유저 인터페이스를 직관적이지 않게 만들어 놓았습니다. 즉, 고정하고 싶은 열이나 행을 선택하는 게 아니라, 그 오른쪽이나 아래 것을 선택해야 합니다.

예:
  • A 열 고정하기: B 열 전체 선택
  • 1 행 고정하기: 2 행 전체 선택
  • A 열과 1 행을 고정하기: B2 셀 선택

2010년 3월 31일 수요일

2010년 3월 22일 월요일

tftp tftpd

 # yum install tftp

   # yum install ftfp-server

   # vi /etc/xinetd.d/tftp

service tftp

{
        disable = no
        socket_type = dgram
        protocol = udp
        wait = yes
        user = root
        server = /usr/sbin/in.tftpd
        server_args = -s /tftpboot


        disable = yes -->

        per_source = 11
        cps = 100 2
        flags = IPv4
}

   # service xinetd restart


 4) 동작 확인하기

   # netstat -al | grep bootp
   # netstat -al | grep tftp