소프트웨어를 수동으로 배포할 때는 여러 문제점이 있습니다.
직접 하다보니 실수가 발생할 수도 있고 시간이 오래 걸리며 코드가 충돌하거나 테스트가 누락될 수도 있습니다.
이런 문제들을 해결하기 위해서 CI/CD 도구를 이용할 수 있습니다.
오늘은 그 중 대표적인 젠킨스를 알아보겠습니다.
Jenkins
젠킨스는 소프트웨어 개발 과정에서 지속적인 통합과 지속적인 배포를 지원하는 오픈소스 자동화 서버입니다.
빌드, 테스트, 배포 과정을 자동화하여 워크플로우를 획기적으로 개선할 수 있습니다.
젠킨스는 크게 젠킨스 마스터와 에이전트로 구분할 수 있습니다.
마스터는 핵심 기능과 인터페이스를 제공하고 플러그인과 스케줄링을 관리합니다.
에이전트는 실제로 빌드와 배포를 수행하는 작업자 노드로 마스터의 관리 하에 작업을 수행합니다.
파이프라인 구조
pipeline {
agent any // 어떤 Jenkins 에이전트에서 실행할지 지정
// 파이프라인에서 사용할 도구 정의
tools {
maven 'Maven 3.6.3'
jdk 'JDK 11'
}
// 환경 변수 설정
environment {
GITHUB_CREDENTIALS = credentials('github-credentials')
}
// 실제 실행될 스테이지들
stages {
stage('Checkout') {
steps {
// 각 스테이지에서 실행할 단계
git 'https://github.com/myrepo.git'
}
}
}
// 파이프라인 완료 후 실행될 작업
post {
success {
echo '빌드 성공!'
}
failure {
echo '빌드 실패...'
}
}
}
최근에 다양한 도구들을 다양하게 접하다보니까 내가 왜 이걸 사용해야 하는지 마음이 복잡해졌습니다.
가장 중요한 건 도구의 사용법이 아니라 이 도구를 왜 사용해야 하는가인 것 같습니다.
글을 끝까지 봐주셔서 감사합니다.
틀린 내용이 있다면 댓글로 지적 부탁드립니다.
'개발환경' 카테고리의 다른 글
[kubernetes] 컨테이너 오케스트레이션 (0) | 2024.12.03 |
---|---|
[Docker] 컨테이너 세계 입문 (1) | 2024.12.02 |
[VSCode] Snippet 사용하기 (1) | 2024.11.19 |
[Postman] 편리한 API 호출 툴 사용해보자 (1) | 2024.09.04 |
Windows11에서 Node.js 설치하기 (0) | 2024.08.22 |