본론으로 들어가기 앞서, 이 글은 유닛테스트(Unit test)를 작성하는 프로젝트에 참여, 관리하는 분들께만 해당됩니다. 


유닛 테스트를 작성하는 프로젝트에서는 유닛 테스트 코드가 얼마나 잘 작성되고 있는지 수시로 확인하고자 하는 요구 사항이 항상 있기 마련입니다.  

이를 요청이 들어올 때 마다 처리해야 한다고 하면 매우 귀찮은 일이 되겠죠. 


반복되는 단순 작업은 최대한 컴퓨터(기계)에게 맡기는 게 여러가지로 좋기 때문에.. 젠킨스(Jenkins)나 허드슨(Hudson)을 사용 해서 매우 쉽게 소스코드 커버리지(code coverage)를 관리해봅시다. 


여기서는 파이썬(Python)에 대한 방법을 다룰 예정입니다. 

물론, 개발중인 언어별로 설정 방법이나 사용하는 플러그인이 조금씩 다를 수 있습니다. 



플러그인 설치 


Plugin Manager 페이지에서 'Cobertura Plugin' 를 검색해 봅시다. (젠킨스에서는 'Jenkins Cobertura Plugin'으로 찾으셔도 됩니다.)

'Cobertura Plugin'의 체크박스를 체크 하고 설치를 하면 됩니다. 




우분투(리눅스) 프로그램 설치 


coverage라는 툴을 사용해야 하니 설치 해 줍니다. 


$ sudo apt-get install python-coverage



젠킨스 설정


설치가 완료되면 코드 커버리지를 설정할 프로젝트에서 '구성(configure)' 메뉴에 들어가서 '빌드'파트에 'Execute shell'을 선택해서 추가해줍니다. 


아래와 같이 수행할 명령을 작성해 줍니다. 



저의 경우 장고(Django)에서 개발 중이므로 위와 같이 unit test를 수행했습니다. 

각자 필요에 따라 테스트 수행하는 코드만 변경하시면 됩니다. 


이렇게 하면 code coverage 결과물이 생성될겁니다. 

이 결과물을 젠킨스에서 보기 편하게 보여주도록 하는 작업만 추가하시면 됩니다. 


'빌드 후 조치 추가'에서 'Publish Cobertura Coverage Report'를 선택해서 추가해줍니다. 


해줄 작업은 매우 간단합니다. code coverage xml 파일을 지정해주기만 하면 됩니다. 


파일별로 실제 코드 라인별로 커버리지 결과를 보고 싶다면 '빌드 후 조치 추가'에서 'Publish HTML reports'도 선택해 줍시다. 

디렉터리와 HTML 파일명을 지정해 주기만 하면 됩니다. 




결과 조회


위 작업을 문제없이 잘 진행하셨다면 프로젝트(job)를 빌드시켜 봅시다. 

아래와 같은 결과 화면이 보일겁니다. 



코드 커버리지 결과 그래프나 'coverage Report'링크를 클릭하면 세부적인 정보를 확인 할 수 있습니다. 




참고로, 여기서는 실제 소스코드를 보면서 확인 하는건 불가능 합니다. 그건 HTML Report에서 확인이 가능합니다. 


혹시 궁금하신점이 있다면 댓글로 남겨주세요. ^^ 



Posted by KT한
,

장고(Django) 환경의 HTML페이지에서 값을 입력 받아, ajax로 서버로 보내면 json타입으로 결과를 받아 실시간으로 화면에 보여주는 기능에 대한 내용입니다. 

다른 환경이나 언어라 하더라도 내용을 이해하시면 응용해서 쉽게 적용이 가능합니다. 



동작 방식을 그림으로 그려보자면 아래 그림과 같은 구조입니다. 




대략적인 동작 순서는

먼저 HTML페이지에서 입력창을 통해 사용자로 부터 값을 입력 받게 되면 

(1)JQuery에서 입력받은 값을 가지고 서버로 보내기 위한 작업을 진행하고 

(2) Ajax로 서버로 패킷을 전송하게 됩니다. 


이에 대해 서버에서는 결과값으로 보여줄 값에 대한 처리를 진행 한 후 

(3) 데이터를 Json 타입으로 변환하여 응답 패킷을 보냅니다. 

(4) 응답 패킷을 화면에 보여줄 포맷에 맞게 처리 하여 HTML 화면에서 보여주게 됩니다. 




이제, 화면별로 소스코드를 살펴봅시다. 


HTML 페이지 



'input' 태그(tag)를 사용해서 값을 입력 받도록 하고, 입력 받은 값은 'searchword'라는 'id'로 접근 할 수 있도록 해줬습니다. 

'div' 태그의 id값인 'results'는 결과값을 보여주기 위해 사용합니다. 

'searchajax()'는 아래 있는 jquery로 작성한 코드를 호출하는 코드입니다. 



JQuery 파일 



텍스트 입력 필드의 값을 가져와서 값이 존재하면 ajax로 전송하는 코드입니다. 

텍스트 입력 여부는 'keyup()' 함수를 사용해서 판단 할 수 있습니다. 

Ajax는 'POST' 메소드(method)로 보내며 데이터는 키(key) 값을 'searchwords'로 해서 전송합니다. 

성공적으로 전송하고 응답을 받았다면, 'success'에 작성한 것 처럼 값을 html 의 'results' 필드에 넣어주는 작업까지 진행합니다.



장고(Django) 서버 (파이썬)



'POST' 패킷에 대해 'searchwords' 값이 존재하는지 확인 후 원하는 작업을 수행하도록 코드를 작성해주시면 됩니다. 

결과값에 대해서는 json 타입으로 변환 후 응답 패킷을 보내주도록 하면 됩니다. 

물론, 장고의 url 설정에 '/browser/searchData/' 에 대한 값을 추가해주셔야합니다. 



이제 입력 필드에 값이 입력 될 때마다 실시간으로 결과 값이 화면에 출력되는것을 확인 하실 수 있을 겁니다. 


Posted by KT한
,

jquery에는 selector에 의해 선택된 항목에 원하는 내용을 추가하는게 가능합니다. 

지원하는 함수는 다음 네 가지가 존재 합니다. 

  1. append() : 선택된 엘리먼트(elements)의 맨 뒤에 추가하기 
  2. prepend() : 선택된 엘리먼트(elements)의 맨 앞에 추가하기 
  3. after() :  선택된 엘리먼트(elements)의 바로 뒤에 추가하기 
  4. before() : 선택된 엘리먼트(elements)의 바로 앞에 추가하기 
이 함수들을 사용하면 html 태그 값을 추가하는게 가능합니다. 


추천은 저를 춤추게 합니다 ^^



아래 예제를 봅시다. 



이런 코드를 실행하게 되면 테이블의 값을 클릭할 때 마다 클릭한 행의 바로 아래 'appended row'라는 이름의 행이 하나 추가됩니다. 



위의 그림처럼 '2'를 클릭하면 바로 아래 'appeded row'라는 행이 하나 추가되죠. 

그런데, 'appended row'를 클릭하면 아무런 변화가 없습니다. 


이렇게 동작하기를 기대했다면 더 고민할 필요가 없습니다. 

하지만, 새로 추가된 행에 대해서도 클릭하면 동일한 동작(바로 아래 'appended row'라는 행이 추가)이 수행되기를 기대했다면 추가적인 작업이 필요합니다. 


왜냐하면 동적으로 새롭게 추가된 컨텐츠에 대한 마우스 액션이 등록되어 있지 않기 때문에 아무런 마우스 이벤트가 발생해도 이를 인식하지 못하기 때문입니다. 


그럼 이벤트 핸들러를 등록해 봅시다. 



이렇게 append()로 태그 값을 추가한 후에 태그값에 대해서 이벤트값(마우스 클릭 액션)을 등록하면 됩니다. 



좀전과 동일하게 '2'를 클릭하고, 추가된 'appended row'를 클릭해봅시다. 

이번에는 'appending'이라는 새로운 행이 추가되는것을 확인 할 수 있습니다. 


이제 동적으로 추가한 태그 값에 대해서도 원하는 이벤트를 등록해서 사용하세요~ 

Posted by KT한
,

이미지 파일에서 문자열을 추출하거나 captcha우회하기 위해 captcha로 부터 문자열을 추출해야 하는 경우에 이미지의 문자 상태가 양호한 편(복잡한 형태의 captcha는 안됨)이라면 간단하게 pytesser라는 라이브러리를 활용해서 문자열을 추출 할 수 있습니다. 


참고로, 우분투 12.04 버전을 기준으로 작성하였습니다. 



추천은 저를 춤추게 합니다 ^^



1. 먼저 아래의 우분투 패키지들을 설치해줍시다. 


$ sudo apt-get install libpng12-dev

$ sudo apt-get install libjpeg62-dev

$ sudo apt-get install libtiff4-dev

$ sudo apt-get install GCC

$ sudo apt-get install g++

$ sudo apt-get install automake



2. pytesser를 설치하기 위해 필요한 파일들을 각 사이트에 접속해서 다운 받아서 설치합니다. 


2.1 leptonica 를 설치합시다. (leptonica-1.69.tar.bz2)


다운로드 주소: 

 

컴파일 및 설치 명령어 

$ ./configure && make -j4 && sudo make install



2.2  Tesseract 를 설치합시다. (  tesseract-ocr-3.02.02.tar.gz)


다운로드 주소:


컴파일 및 설치 명령어 

./configure && make -j4 && sudo make install && sudo ldconfig


 

2.3  Tesseract 언어 데이터 파일을 설치합시다. ( tesseract-ocr-3.02.eng.tar.gz)

영어를 인식해서 문자열을 추출하기 위해 영어 데이터 파일을 다운 받았습니다. 


다운로드 주소:


설치:

다운 받은 파일을 압축을 풀어서 다음 폴더로 옮겨 줍시다. 


/usr/local/share/tessdata


 


2.4  pytesser를 다운 받읍시다.  ( pytesser_v0.0.1.zip )


다운로드 주소:


pythess를 사용할 폴더에서 다운 받은 파일의 압축을 풀어줍니다. 



3. 테스트  

바로 이미지 파일 디코드를 시작해도 되지만, 우선 제대로 설치 됐는지 확인해보는게 좋습니다. 


pytesser 파일의 압축을 풀어 놓은 폴더로 이동해서 테스트로 파이썬 파일을 하나 만들어서 아래와 같은 코드로 테스트 해 봅시다. 


※ 소스코드를 더블클릭하면 복사가 가능합니다. 



4. 코드 작성 및 즐기기 

위의 테스트코드가 정상적으로 동작한다면 아래와 같이 원하는 코드를 작성하셔서 사용하시면 됩니다. 



getpixel() 함수로 픽셀값을 가져오고 putpixel() 함수로 원하는 위치의 값을 변경 할 수 있습니다. 


참고로, 255가 흰색이고 0이 검은색입니다. 

위 코드는 검은색이 아닌 즉, 글씨가 아닌 부분을 하얗게 처리하기 위한 코드인거죠. 


이걸 잘 활용해서 글자에 구멍 난 부분을 메울 수 도 있겠죠? 

이미지 보정 작업을 하면 아래처럼 컴퓨터가 인식하기에 좀 더 편하게 만들어 줄 수 있답니다. 




다양한 이미지 처리 함수에 대해 알고 싶다면 아래 사이트를 참고하시면 됩니다. 

PIL 함수 참고 사이트 =>  http://effbot.org/imagingbook/image.htm



Posted by KT한
,
Django를 기반으로 웹 개발을 할 때 특정 단어나 위치에 마우스를 가져가면 툴 팁이 떠서 지정해둔 메시지를 보며주도록 하는 기능을 개발하기 위한 설명입니다. 

작업은 크게 세 가지 파트로 구분할 수 있습니다. 


추천은 저를 춤추게 합니다 ^^



소스 다운 받기: 

tooltip.js



1. JQuery 


mouseover, mousemove, mouseout 세 가지 액션에 대해 정의해 줍니다. 


mouseover:

현재 마우스가 위치한 곳의 title 속성의 값을 가져와서 보여줍니다. 

마우스의 위치에 따라 툴 팁이 보여지는 위치가 달라지므로 css 함수를 써서 위치 정보를 가져오도록 합니다. 


mousemove:

마우스를 움직일 때 마다 툴 팁이 마우스를 따라 다니도록 마우스의 위치 값을 가져다가 툴 팁의 위치를 업데이트 해줍니다. 

mouseout:

마우스가 링크 정보가 담긴 위치를 벗어 났다면 툴 팁이 보이지 않도록 제거해 줍니다. 



2. css 


툴 팁의 배경 색깔과 폰트 등을 설정해줍니다. 



3. html 


마우스를 가져갔을 때 툴 팁을 보여주기 위한 html입니다.

DJango를 사용하고 있다면 title값은 변수로 넘겨받은 값으로 지정해주는 것도 가능합니다. 


Posted by KT한
,
'clang'에 대해 들어보셨나요? 

아이폰 어플 개발 하신 분들이라면 한 번 쯤은 들어보셨을 텐데요. 

clang은 Apple의 Xcode에 포함되어 배포되고 있는 정적 소스 분석기(Static analyzer)입니다. 

물론, 무료(오픈소스)로 배포중입니다. 


물론, 윈도우(Window)나 우분투(Ubuntu)혹은 페도라(Fedora) 같은 다른 OS에서도 사용이 가능합니다. 


설치는 각 OS에서 제공하는 패키지(rpm, deb, 등)을 설치하는 방법과 사이트에서 소스를 다운 받아 직접 빌드해서 사용 하는 방법이 있습니다만.. 빌드하는데 매우 오랜 시간이 걸리므로 소스를 수정해서 사용하실게 아니라면 패키지 파일을 설치하는걸 추천합니다. 


자세한 정보는 clang 사이트 에서 확인이 가능합니다. 



추천은 저를 춤추게 합니다 ^^



clang의 가장 큰 장점은 다른 컴파일러와 비교해서 오류에 대한 정보가 매우 친절하다는 점입니다. 



warning이나 error의 위치를 정확하게 밑줄까지 쫙~ 그어주는 친절함!! 대박


특정 파일에 대해 문법 검사를 하고자 할 때 사용법은 매우 간단합니다. 


$ clang --analyze test.c


그런데, 정적 소스 분석을 할 때 소스 파일을 낱개로 검사하지 않고 Makefile을 작성해서 'make'명령으로 한방에 검사하고 싶을겁니다. 

이럴때 쓰는게 'scan-build' 입니다. 

clang 패키지에 포함되어 있으므로 따로 설치 해야 하는건 아닙니다. 


실행 방법은 간단합니다. 


$ scan-build make


default로 꺼져있는 추가적인 체커를 수행하고 싶다면 이렇게 하면 됩니다. 


$ scan-build --use-analyzer <clang path> -enable-checker <추가한 체커 이름> -v -v -v -k make


빌드가 성공하고 나면 마지막에 아래처럼 발견된 버그에 대한 결과가 나옵니다. 



'scan-view' 로 버그 리포트를 보라고 친절하게 알려주는 군요. 

'scan-view'는 clang이 찾아낸 오류들을 웹 화면으로 보기 좋게 보여주는 툴입니다. 

이 또한 clang 패키지에 포함되어 있답니다. 


명령을 실행해 봅시다. 


$ scan-view <scan-build 결과 파일>


웹 서버가 정상적으로 설치 되어 있다면 아래와 같은 웹 페이지가 뜨게 됩니다. 


다양한 타입의 버그에 대한 리포트가 보여지는 군요. 



세부 내용을 보고 싶다면 'View Report' 링크를 클릭합니다. 


해당 소스와 친절한 메시지가 함께 보여집니다. 

결과적으로 메모리 누수가 있을 수 있는지 다시 한번 확인해 보면 되겠죠? 


Posted by KT한
,

젠킨스(Jenkins)를 사용해서 빌드를 관리하다보면 여러 개의 프로젝트가 서로 디펜던시(dependency)가 존재하는 경우가 있습니다. 

그럴경우 매번 여러개의 작업이 순차적으로 수행 되도록 관리하는것은 번거롭고 자칫 휴먼 에러가 발생 할 수도 있습니다. 

이런 경우 효율적으로 관리 할 수 있는 플러그인이 있습니다. 


'Build Pipeline' 플러그인은 디펜던시가 존재하는 복수개의 프로젝트를 관리하는데 매우 효율적입니다. 



추천은 저를 춤추게 합니다 ^^


  • 설치 절차


1. '젠킨스 관리'  > '플러그인 관리'에서 '설치 가능'탭을 선택 한 후 'Build Pipeline'을 검색합니다.

 



2. 플러그인이 정상적으로 설치되었는지 확인 한 후.. 



3. 메인 화면에서 뷰 탭의 '+' 표시를 눌러 '새 뷰'를 추가합니다. 




4. 뷰 타입을 'Build Pipeline View'를 선택하고 이름을 지정해줍니다. 



5. 시작하는 job을 선택해 줍니다. 

그외에 pipeline의 타이틀과 화면에 보여질 갯수 정도만 설정 해주면 됩니다. 



6. 적용을 하고 나면 초기 화면이 보여집니다. 

시작하는 job이 등록되어 보여집니다. 



7. 순차적으로 실행 될 다음 job을 등록하기 위해.. 

'first-job'의 설정 화면으로 들어갑니다. 


'Add post-build action' 버튼을 클릭해서 'Build other projects'를 선택해줍니다. 


8. 다음으로 수행할 job을 입력한 후 'Trigger only if build succeeds'를 선택해서 빌드가 성공 했을 때만 다음 빌드를 수행 하도록 설정해줍니다. 



9. 적용하고 나면 '하위 프로젝트'에 등록한 프로젝트가 보여지게 됩니다. 



10. 'pipeline-view' 탭에 들어가보면 새롭게 등록한 프로젝트가 등록된걸 확인 할 수 있습니다. 



11. 이제 마지막으로 수행할 job을 등록해 줍시다. 



12. 모두 정상적으로 등록되었군요. 

'Run'아이콘만 클릭하면 4개의 빌드가 알아서 순차적으로 수행될겁니다. 


이제 프로젝트 관리가 한결 수월해지겠군요. 



간혹 수동으로 다음 빌드를 수행하고자 한다면 'trigger'아이콘을 클릭해 주셔도 됩니다. 



  • 유용한 플러그인 배워보기

[프로그래밍] 젠킨스(Jenkins) 플러그인 활용 - Groovy Postbuild

Posted by KT한
,

젠킨스를 사용해서 소스 빌드를 수행하다 보면 간혹 빌드에 실패하는 경우가 발생하게 됩니다. 

이럴 경우 최대한 빠르게 수정된 소스를 반영하여야 같이 일하는 다른 개발자 분들이 받는 피해가 최소화 될 수 있겠죠. 


이를 위해 'Groovy Postbuild' 플러그인을 활용해서 빌드가 실패한 위치를 보기 쉽게 보여주는 방법에 대해 다뤄보고자 합니다. 


'Groovy Postbuild' 플러그인은 삼성전자 서초사옥에서 진행된 젠킨스(Jenkins) 사용자 모임에서 새롭게 알게되었는데요 사용법이 다양하더군요. 

그래서 저희 회사 프로젝트에 어떻게 적용 시키면 좋을까 고민하다가 빌드에 실패했을 때 원인파악에 조금이나마 도움이 될 수 있도록 적용해 보았습니다. 


사실, 그루비(Groovy)로 할 수 있는 일은 훨씬 더 다양할겁니다. 



추천은 저를 춤추게 합니다 ^^


  • 설치 절차 


1. 먼저 'Jenkins 관리' > 'Plugin 관리' 화면으로 들어갑니다. 

'설치 가능' 탭에서 'Groovy Postbuild'를 검색해서 설치 합니다. 




2. 아래처럼 'Groovy Postbuild'가 설치 되었는지 확인합니다. 




3. 'Groovy Postbuild'를 설정하고자 하는 'job'의 설정 화면에 들어갑니다. 

Post-build Actions 에서 'Add post-build action' 버튼을 클릭하면 추가 가능한 action list가 나옵니다. 

'Groovy Postbuild'를 선택하시면 됩니다. 




4. 스크립트 박스에 원하는 내용을 넣어줍니다. 

자세한 설명과 예제코드는 아래의 페이지를 참고하시면 됩니다. 


젠킨스 위키 - Groovy Postbuild


저는 'getLogMatcher' 함수를 사용해서 로그에서 원하는 문자열을 찾아 'addShortText' 함수로 출력하도록 작성하였습니다. 

스크립트 실행 결과 unittest 수행 중 fail 난 파일 명을 출력해주게 됩니다. 



5. 결과를 확인해 봅시다. 

빌드에 실패한 경우 해당 작업 오른편에 노란 상자로 파일명이 출력되고 있죠?

이런 식으로 원하는 값을 출력해주도록 설정 하시면 됩니다. 



Groovy Postbuild 스크립트를 활용해서 좀 더 편하게 빌드를 관리해보세요~ ^^


Posted by KT한
,

일반 키보드에 컨트롤 키는 너무 아래쪽에 위치하고 있어서.. 컨트롤 키를 자주 눌러야 하는 사람들은 소중한 새끼 손가락을 혹사 시킬 수 밖에 없는 구조랍니다. 

이럴 때 자주 사용하는 키와 자주 사용하지 않는 키의 위치를 바꿔줌으로써 새끼 손가락의 부담을 조금이나마 덜어 줄 수 있답니다. 



추천은 저를 춤추게 합니다 ^^



방법: 


1. '레지스트리 편집기'를 실행합니다. 

실행 창에 'regedit' 이라고 입력하면 편집기가 실행 됩니다.  


2. 아래 위치로 이동합니다. 

HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Keyboard Layout


※ 바로 아래 있는 'Keyboard Layouts'와 헷갈리지 않도록 조심해야 합니다. 



3. 새로운 값을 생성합니다. 

마우스 우 클릭 후 '새로 만들기 > 이진값' 을 선택합니다. 

새로 생성된 파일의 이름은 'Scancode Map' 으로 변경해줍니다. 




4. 코드 값을 변경해줍니다. 

'Scancode Map'에서 마우스 우 클릭 후 '수정'을 선택하면 '이진 값 편집' 팝업창이 뜨게 되고 값을 아래와 같이 수정합니다. 


0000   00 00 00 00   00 00 00 00                  <- 시작                                                            시작

0008   03 00 00 00   1D 00 3A 00                 <- 03은 키를 변경할 갯수 + 1                       3A 를 1D로 매핑 (첫번째 키 매핑)

0010   3A 00 1D E0   00 00 00 00                 <- 1D E0를 3A로 매핑 ( 두 번째 키 매핑)   종료




그렇다면, 저 키 값은 어떻게 알아야 할까요?


아래 키보드 위치 코드 값으로 알 수 있습니다. 

자신의 키보드에서 위치를 바꾸고자 하는 키에 해당 하는 숫자를 찾습니다. 



이 표에서 해당 키보드 값에 해당하는 XT값을 찾으면 됩니다. 


예) 캡스락(Capslock)키의 Key 번호는 30이고, 해당되는 XT값은 3A 입니다. 맵 값은 '3A 00'으로 입력하시면 됩니다. 


키 번호가 62가 넘어가면 XT값에 'EO'가 붙어 있는 값이 보입니다. 이럴 경우 앞에 붙은 값(E0)을  뒤에 써주면 됩니다. 


예) 오른쪽 컨트롤(ctrl) 같은 경우 64번이고, XT값은 'EO1D' 입니다. 맵 값은 '1D E0'가 됩니다.  



5. 컴퓨터를 리붓하고 나면 '캡스 락(Caps lock)'키가 '오른쪽 컨트롤(ctrl)'키와 위치가 바뀌어 동작하게 됩니다. 



위치를 바꿨던 키를 원래데로 복구 하려면 추가했던 'Scancode Map'를 삭제하시면 됩니다. ^^


Posted by KT한
,

먼저 젠킨스(허드슨)를 설치하고 기본 설정은 하셨다는 가정하에 설명을 시작하겠습니다. 

젠킨스(Jenkins)와 허드슨(Hudson)은 이름만 바뀌었을 뿐 설정 및 기능은 거의 같습니다. 

만약 아직 설치/기본 설정을 하지 않으셨다면 이전 포스팅을 참고하세요~ 


젠킨스(허드슨) 설치

킨스(허드슨) 


오늘은 젠킨스를 좀 더 잘 활용 할 수 있는 방법에 대해 알아보려 합니다. 

젠킨스는 그 자체만으로도 충분히 훌륭한데요. 

플러그인 기능을 통해서 필요 및 취향에 맞게 최적화가 가능합니다. 



추천은 저를 춤추게 합니다 ^^


자 그럼 플러그인을 설치해 봅시다. 

1. 젠킨스 메인 페이지에 접속 합니다. 

좌측 메뉴에서 'Jenkins 관리'를 선택해서 들어가면 '플러그인 관리' 페이지가 있습니다. 


2. 설치하고 싶은 플러그인을 선택합니다. 

'설치 가능' 탭을 선택합니다. 

그럼 수백개의 설치 가능한 플러그인을 볼 수 있을 겁니다. 


이제 설치하고 싶은 플러그인을 찾아봅시다. 


3. 설치할 플러그인 고르기 

내가 원하는 플러그인이 맞는지 확인은 필수 겠죠?


관심있는 플러그인 이름의 링크를 클릭하면 설명 페이지가 열립니다. 

아쉽게도 설명은 한글로 번역이 되어 있지는 않습니다. 


참고로, 사용자 그래프가 있는데 설치하는데 참고용으로 유용합니다. 

아무래도 많은 사람들이 지속적으로 설치한다는 것은 그만큼 안정적이고 유용하다는 의미일 테니깐요. 

그렇지만 어디까지나 참고용일 뿐입니다! 


4. 플러그인 다운로드 및 설치 

플러그인 앞에 있는 체크박스에 체크 후 

화면 하단에 있는 설치 버튼을 클릭합니다. 


빌드 중일때 서비스를 재시작 하면 안되기 때문에 재시작 하지 않고 설치만 해둡니다. 


5. 다운로드 

선택한 플러그인이 설치 리스트에 추가되고 

열심히 다운을 받게 됩니다. 


6. 잠시 후 정상적으로 설치 된 것을 확인 할 수 있습니다. 

설치 후 빌드되는게 없다면 젠킨스를 재시작 하는 체크박스가 보입니다. 

바로 적용하고 싶다면 체크해 주시면 됩니다. 


이런 식으로 다양한 플러그인들을 설치해서 젠킨스를 좀 더 다양한 용도로 활용 할 수 있습니다. 


예를 들면, 

iOS 어플을 개발하기 위해서는 'Xcode plugin'을 설치하면 됩니다. 

설명도 자세하게 나와있어서 쉽게 설정이 가능합니다. (물론, 영어로 나와있긴 하지만요. )



추천은 저를 춤추게 합니다 ^^



유용하게 사용되는 플러그인 들


  • 버그 질라 연동

플러그인 'Bugzilla Plugin'을 설치 합니다. 

Jenkins 관리 > 시스템 설정 에 들어가면 'Bugzilla'라는 항목이 있습니다. 

버그질라 주소와 버그 ID와 연동할 포맷을 정규 표현식으로 설정 합니다. 

소스를 커밋 할 때 설명으로 입력한 문구에 정규표현식에 매칭되는 숫자가 나오면 버그질라 서버로 링크를 걸어 주는 겁니다. 



예를 들어 소스 커밋을 할 때 다음과 같이 입력 하게 되면.. '1234'링크를 클릭하면 버그질라 서버의 해당 버그 id로 연결이 되는 겁니다. 

Bug 1234 - 오류 수정 



  • SSH 연동

플러그인 'SSH plugin'를 설치 합니다. 

빌드 과정에서 ssh로 특정 host에 접속해서 작업을 해줘야 할게 있을 때 사용하면 좋습니다. 


Jenkins 관리 > 시스템 설정 에 들어가면 'SSH remote hosts'라는 항목이 있습니다. 

여기서 접속할 호스트에 대한 정보를 미리 설정 해줍니다. 



Job에서 설정 메뉴에 들어가서 빌드를 위한 명령을 입력 하는 과정에서 ssh가 필요하다면, 'Add build step'버튼을 눌러 'Execute shell script on remote host using ssh' 을 추가합니다. 


아래와 같은 메뉴가 나타나면 host를 선택하고 명령을 입력해줍니다. 

만약 명령 실행 순서를 변경하고 싶다면 아래처럼 해당 박스를 클릭 후 '드래그 앤 드랍'으로 위치를 변경해 주시면 됩니다. 


  • 재미난 기능

플러그인중에는 emotional-jenkins-plugin 아래처럼 재밌는 기능들도 있는데요.

빌드가 깨지면 온화했던 젠킨스 아저씨가 악마로 변하는 플러그인 이에요.  



이 외에도 수 많은 플러그인들이 존재합니다. 

필요한 기능이 있다면 한번 찾아보시고 설치해서 사용해 보세요~ 


  • 유용한 플러그인 배워보기

[프로그래밍] 젠킨스(Jenkins) 플러그인 활용 - Groovy Postbuild



Posted by KT한
,