JongTachi의 개발 블로그

Jenkins(젠킨스)란 무엇일까? 본문

IT_Tools/Jenkins

Jenkins(젠킨스)란 무엇일까?

JongTachi 2022. 10. 10. 21:26
728x90
반응형

Jenkins를 알아보기 전에 여러분의 직업이 개발자라 생각해봅시다.

매번 코드를 수정하고 빌드와 테스트를하고 배포까지 직접 당신의 손으로 한다면 상당히 많은 시간이 소요될 겁니다.

하지만 누군가가 빌드, 테스트, 배포까지 알아서 해준다면 여러분의 시간을 절약시킬 수 있고 개발에 더 많은 시간을 투자할 수 있겠죠? 그래서 만들어진 것이 바로 Jenkins입니다.(생긴 모양도 집사임)

 

1. Jenkins란 무엇일까? 

Jenkins는 소프트웨어 개발시 지속적으로 통합 서비스를 제공하는 툴입니다. CI(Continuous Integration) 툴이라고도 표현합니다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유할 수 있는 영역 저장소에 업로드 함으로써 지속적으로 통합할 수 있게 만들어줍니다.

  • 근데 CI(Continuous Integration)가 뭐예요?

 

CI를 이해하려면 CD(Continuous Delivery)를 같이 이해하는게 좋습니다. 일단 CICD를 직역해보면 다음과 같습니다.
CI(Continuous Integration) : 지속적인 통합
CD(Continuous Delivery) : 지속적인 제공/배포 

CI를 간단히 요약하자면 빌드/테스트 자동화 과정입니다. 
CD를 간단이 요약하자면 배포 자동화 과정입니다. 

두 가지 의미 모두 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 합니다. 

 

2. Jenkins의 장점

개발중인 프로젝트에서 커밋은 매우 빈번히 일어나기 때문에 커밋 횟수만큼 빌드를 실행하는 것이 아니라 작업이 큐잉되어 자신이 실행될 차례를 기다리게 됩니다. 

 

◆ 프로젝트 표준 컴파일 환경에서의 컴파일 오류를 검출해준다.

◆ 자동화 테스트를 수행해준다.

    ▷ 자동화 테스트는 젠킨스를 사용해야할 가장 큰 이유입니다. 사실상 자동화 테스트가 포함되지 않은 빌드는 CI자체가 불가능하다고 봐도 됩니다. 젠킨스는 코드 변경을 감지하고 자동화 테스트를 수행하기 때문에 만약 개인이 미처 실시하지 못한 텟트가 있다 하여도 든든한 안전망이 되어줍니다. 

◆ 정적 코드 분석에 의한 코딩 규약 준수여부를 체크해준다.

◆ 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화를 감시해준다.

◆ 결합 테스트 환경에 대한 배포작업을 수행해준다.

 

끝!!

728x90
반응형

'IT_Tools > Jenkins' 카테고리의 다른 글

Jenkins로 빌드하기  (0) 2022.11.15