ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 젠킨스...1
    일지 2020. 10. 1. 14:14

    젠킨스란?

    소프트웨어 개발 시 지속적 통합(Continuous Integration, 이후 CI) 서비스를 제공하는 툴이다.

    젠킨스는 소프트웨어의 빌드, 테스트, 배포와 관련된 모든 종류의 작업을 자동화하는 데 사용할 수 있는 독립형 오픈소스 자동화 서버입니다. - Jenkins User Documentation 중

     

    CI란?

    개발자들이 작업한 내용(Commit)을 하나의 브랜치로 통합(Merge)하고 빌드하는 개발 방식을 말한다.

    지속적인 통합은 초기에 그리고 자주 통합해서 "통합의 지옥"의 함정을 피하는 것을 내포하고 있다. 지속적인 통합은 재작업을 줄여서 비용과 시간을 줄이는데 초점이 맞추어져 있다. - 위키백과.지속적 통합 중

     

    CI의 구성 요소

    • 버전 관리 시스템 코드의 이력을 관리하는 툴로 SVN, Git, Mercurial 등이 있다.
    • 브렌칭 전략 몇 개의 브랜치를 구성할지에 대한 전략을 채택해야 한다.
    • CI 툴 각 툴들의 지휘자 역할을 하는 툴로 뱀부, 젠킨스 등이 있다.
    • 빌드 자동화 코드를 컴파일하고 실행 파일을 만들어내는 단계들을 자동화하는 것을 말한다.
    • 코드 커버리지 작성된 코드 중 테스트 케이스에서 실행한 코드의 비율을 나타내는 툴이다.
      • 프로그래밍 언어에 따라 다양한 커버리지 생성 툴이 존재한다.
        언어 도구
        Java   Atlassian Clover, Cobertura, JaCoCo
        C# / .NET   OpenCover, dotCover
        C++   OpenCppCoverage, gcov
        Python   Coverage.py
        Ruby   SimpleCov
    • 코드 정적 분석 사용된 코드와 주석 처리된 코드, 코드의 복잡성 등을 평가해 저품질 코드가 머지되는 것을 예방한다.
    • 테스트 자동화 테스트 케이스를 만들어 테스트 중 발생하는 반복을 줄여 테스트 시간을 대폭 줄인다.
    • 바이너리 관리 툴 빌드가 완료된 이후 생성된 빌드 결과물을 저장하고 관리하는 툴이다.
    • 패키징 자동화 배포에 필요한 여러 빌드 결과물을 하나로 묶는다.

     

    CI 사용의 장점

    • 커밋, 머지, 테스트의 자동화로 통합 이슈를 빠르게 확인하고 수정할 수 있다.
    • 프로젝트의 진행 방향 및 속도를 확인할 수 있다.
    • 통합 이슈의 빠른 해결로 인해 기능 개발에 집중할 수 있고 결과적으로 빠른 개발이 가능해진다.

     

    댓글

Designed by Tistory.