젠킨스 란

Jenkins란?

Jenkins는 Java로 작성된 오픈 소스 CI(Continuous Integration) 도구이다. CI는 애플리케이션 개발을 좀 더 빠르고 안정적으로 만들어주는 중요한 요소 중 하나이다. Jenkins는 프로젝트에서 자동화 된 빌드, 테스트 및 배포를 수행하고, 작업에 대한 결과 및 오류를 볼 수 있는 대시 보드를 제공한다.

이번 블로그 포스팅에서는 Jenkins의 소개, 특징, 설치 방법, 플러그인, 빌드 파이프라인 및 예제등을 살펴볼 것이다.

Jenkins 특징

무료 오픈 소스

Jenkins는 무료 오픈 소스 소프트웨어이므로 누구나 다운로드하고 사용할 수 있다. 하지만 이는 Jenkins가 사용자를 위해 무료로 개발되고 있다는 의미가 아니다.

확장 가능성

Jenkins는 쉽게 확장 할 수 있는 구조이다. 사용자가 원하는 대부분의 기능을 구현 할 수 있도록 다양한 플러그인을 제공한다. 이를 통해 빌드, 배포, 테스트 및 모니터링 등을 자동화할 수 있다.

빌드 파이프라인

빌드 파이프라인은 Jenkins에서 빌드 과정을 자동화하는 기능이다. 이를 사용하면 코드가 커밋되는 즉시 빌드, 테스트 및 배포를 수행할 수 있다.

작업 보류

Jenkins는 자동화된 작업이 실패하는 경우에도 잘못된 코드를 배포하지 않도록 작업을 유지하는 “작업 보류” 기능을 제공한다. 이를 통해 문제를 해결할 시간을 가질 수 있으므로 개발자는 더욱 효율적으로 개발할 수 있다.

Jenkins 설치 방법

다운로드

설치를 위해서는 먼저 Jenkins 웹 사이트에서 다운로드해야 한다.

설치

설치 후 Jenkins를 실행하고 http: // localhost :8080과 같은 URL을 입력하면 대시 보드가 표시된다.

처음으로 실행

Jenkins를 처음 실행하면 관리자 계정을 만들도록 요청한다. 이 계정은 다른 사용자에 의해 바로 다운로드 및 설정 변경을 통해 보안 위험에 노출될 수 있기 때문에 잊지 말고 복잡한 비밀 번호를 입력해야한다.

Jenkins 플러그인

Jenkins는 다양한 플러그인을 제공한다. 이러한 플러그인은 Jenkins의 능력을 확장하고 개별 프로젝트의 요구 사항에 따라 사용할 수 있다.

플러그인을 설치하려면 “플러그인 관리”로 이동하고 검색란에 추가할 플러그인 이름을 입력한 다음 “설치” 버튼을 클릭해야한다. 여러 플러그인 중 필요한 것만 설치할 수 있다.

Jenkins 빌드 파이프라인

빌드 파이프 라인은 Jenkins의 중요한 기능 중 하나이다. 개발자는 파이프 라인에 대한 코드 스크립트를 작성하며 이를 사용하여 작업을 수행한다.

개발자는 파이프 라인을 사용하면 빌드, 검증, 배포, 테스트 등을 자동화 할 수 있다. 또한 작업에 대한 중간 진행 상황도 볼 수 있으므로 작업을 손쉽게 관리할 수 있다.

Jenkins 예제

Jenkins를 사용하면 많은 일을 할 수 있다. 아래는 Jenkins를 사용한 간단한 예제이다.

예제 1 : 빌드 파이프라인

아래 스크립트는 빌드, 컴파일, 테스트 및 애플리케이션 빌드와 같은 일반적인 작업에 대한 빌드 파이프 라인을 정의한다.

pipeline {
agent any
stages {
stage('빌드') {
steps {
sh 'echo "빌드 구문 실행"'
}
}
stage('컴파일') {
steps {
sh 'echo "컴파일 구문 실행"'
}
}
stage('테스트') {
steps {
sh 'echo "테스트 구문 실행"'
}
}
stage('빌드 배포') {
steps {
sh 'echo "빌드 배포 구문 실행"'
}
}
}
}

예제 2 : 빌드 트리거

작업이 커밋되면 자동으로 빌드가 작동하도록 할 수 있다. 이를 위해 빌드 트리거를 사용할 수 있다.

pipeline {
agent any
triggers {
pollSCM('*/5 * * * *')
}
stages {
stage('빌드') {
steps {
...
}
}
}
}

SCM 푸시 이벤트가 발생하면 빌드가 트리거되도록 설정된다.

결론

이 블로그 포스팅에서는 Jenkins를 소개하고, 특징과 설치 방법, 플러그인, 빌드 파이프 라인, 예제 등을 다루었다. Jenkins를 사용하면 개발, 테스트 및 배포 프로세스를 자동화할 수 있으며, 이를 통해 더욱 효율적인 개발을 할 수 있다. 그리고 Jenkins를 사용하면 자유로운 개발이 가능하다. 이를 토대로 여러분들도 Jenkins를 사용해 자동화된 개발 프로세스를 경험해보시길 바란다.