728x90
젠킨스(Jenkins)
- 젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다.
- CI(Continuous Integration) 툴 이라고 표현한다.
- 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.
장점
- 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
- 자동화 테스트 수행
- 정적 코드 분석에 의한 코딩 규약 준수여부 체크
- 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시
- 결합 테스트 환경에 대한 배포작업
- 이외 500여가지가 넘는 플러그인을 온라인으로 간단하게 인스톨 할 수 있는 기능을 제공하고 있으며 파이썬과 같은 스크립트를 이용해 손쉽게 자신에게 필요한 기능을 추가 할 수도 있다.
각종 배치 작업의 간략화
- 프로젝트 기간 중에 개발자들은 순수한 개발 작업 이외에 DB셋업이나 환경설정, Deploy 작업과 같은 단순 작업에 시간과 노력을 들이는 경우가 빈번하다.
- 데이터베이스의 구축, 어플리케이션 서버로의 Deploy, 라이브러리 릴리즈와 같이 이전에 CLI로 실행되던 작업들이 젠킨스 덕분에 웹 인터페이스로 손쉽게 가능해졌다.
Build 자동화의 확립
- 빌드 툴의 경우 JAVA는 maven과 gradle이 자리잡고 있으며, 이미 빌드 관리 툴을 이용해 프로젝트를 진행하고 있다면 젠킨스를 사용하지 않을 이유가 하나도 없다.
- 젠킨스와 연동하여 빌드 자동화를 통해 프로젝트 진행의 효율성을 높일 수 있다.
자동화 테스트
- 자동화 테스트는 젠킨스를 사용해야 하는 가장 큰 이유 중 하나이며, 사실상 자동화 테스트가 포함되지 않은 빌드는 CI 자체가 불가능하다고 봐도 무방하다.
- 젠킨스는 Subversion이나 Git과 같은 버전관리시스템과 연동하여 코드 변경을 감지하고 자동화 테스트를 수행하기 때문에 만약 개인이 미처 실시하지 못한 테스트가 있다 하여도 든든한 안전망이 되어준다.
코드 표준 준수여부 검사
- 자동화 테스트와 마찬가지로 개인이 미처 실시하지 못한 코드 표준 준수 여부의 검사나 정적 분석을 통한 코드 품질 검사를 빌드 내부에서 수행함으로써 기술적 부채의 감소에도 크게 기여한다.
빌드 파이프라인 구성
- 2개 이상의 모듈로 구성되는 레이어드 아키텍처가 적용 된 프로젝트에는 그에 따른 빌드 파이프라인 구성이 필요하다.
- 예를 들면, 도메인 → 서비스 → UI와 같이 각 레이어의 참조 관계에 따라 순차적으로 빌드를 진행하지 않으면 안된다.
- 젠킨스에서는 이러한 빌드 파이프라인 구성을 간단히 할 수 있으며, 스크립트를 통해서 매우 복잡한 제어까지도 가능하다.
단점
- 규모가 작은 프로젝트의 경우, 설정하는데 리소스 낭비가 발생할 수 있다.
- 호스팅을 직접해야하기 때문에 서버 운영 및 관리 비용이 발생한다.
참조
https://inpa.tistory.com/entry/Jenkins-📚-젠킨스란-무엇인가
[Jenkins] 🤵 젠킨스란 무엇인가? (CI /CD)
선행학습 👩💻 CI / CD 파이프 라인 이란? CI(Continuous Integration) CI/CD의 "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다. CI를 성공적으로 구현할 경우 애플
inpa.tistory.com
728x90
'Dev' 카테고리의 다른 글
빌드 이벤트 지정 (0) | 2024.08.13 |
---|---|
CI/CD 파이프라인 (0) | 2024.08.13 |
오토스케일링(AutoScaling) (0) | 2024.08.08 |
데이터베이스 샤딩 (0) | 2024.08.07 |
배치 파일과 도스 명령어 (0) | 2024.08.05 |