젠킨스란?
- Java Runtime 위에서 동작하는 자동화 서버이다.
- 다양한 플러그인을 종합해서 CI/CD Pipeline을 만들어서 자동화 작업이다.
CI(Continuous Integration)란?
- 여러 개발자들의 코드를 계속해서 통합하는 것이다.
- 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합히는 것을 의미한다.
CD(Coutinuous Delivery)란?
- 개발자들이 코드를 계속 작성하면, 사용자 및 내부 사용자들(QA 등등)이 계속 쓸 수 있게 만드는 것이다.
젠킨스와 같은 툴이 등장하기 전에는 일정시간마다 빌드를 실행하는 방식이 일반적이다.
특히 개발자들이 당일 작성한 소스들의 커밋이 모두 끝난 심야 시간대에 이러한 빌드가 타이머에 의해 집중적으로 진행되었는데, 이를 Nightly-Build라고 했다.
하지만, 젠킨스는 정기적인 빌드에서 한발 나아가 SVN, Git과 같은 버전관리시스템과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정할 수 있다.
결론적으로 젠킨스는 빌드, 테스트, 배포를 실행 시켜주는 툴이다.
젠킨스의 이점
- 각종 배치 작업의 간략화
- Build 자동화의 확립
- 자동화 테스트
- 코드 표준 준수여부 검사
- 빌드 파이프라인 구성
- 빌드 파이프라인을 구성하여 스크립트로 복잡한 제어도 가능하다.
참고
- https://ko.wikipedia.org/wiki/%EC%A0%A0%ED%82%A8%EC%8A%A4_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)
- https://kingofbackend.tistory.com/147
- https://velog.io/@jellyb3ar/CICD-Jenkins-%EC%A0%95%EB%A6%AC
'개발 이야기 > Jenkins' 카테고리의 다른 글
[Jenkins] Jenkins에 시스템 변수 설정 및 Job 생성하기 (0) | 2021.12.07 |
---|---|
[Jenkins] Docker를 이용한 Jenkins 구축 (0) | 2021.12.05 |