공부/QA

[QA] Jenkins CI/CD 특강 정리

narlo 2025. 12. 8. 21:46
일시 : 2025-12-08 19:00 ~ 22:00
강사 : 유승수 강사님

CI/CD란?

소프트웨어 개발 과정에서 코드 변경사항을 자동으로 빌드, 테스트, 배포하는 자동화된 프로세스

 

CI(Continuous Integration, 지속적 통합)

  • 개발자들이 작성한 코드를 공유 저장소에 자주 병합하는 방식
  • 코드가 병합될 때마다 자동화된 빌드와 테스트가 실행되어 통합 문제를 조기에 발견할 수 있음
build
- 코드를 실행 가능하게 만들어주는 것

 

CD(Continuous Delivery/Deployment, 지속적 배포)

  • Delivery : 배포 준비까지만 자동화 (관리자가 배포 버튼을 눌러야 배포가 됨)
  • Deployment : 배포까지 자동화

Jenkins

  • CI/CD 파이프라인을 구축하고 관리하는 도구
  • 전 세계에서 가장 널리 사용되는 CI/CD 도구 중 하나

Docker

  • 컨테이너를 만들어주는 프로그램
  • 왜 도커를 쓰나요?
    • 운영체제, 개발환경이 다른 문제로 인해 충돌이 일어날 수 있음
    • 도커를 쓰면 명령어 한 줄로 운영체제, 개발환경이 달라도 완전히 똑같은 환경으로 세팅이 가능

Docker Jenkins 실습

1) docker desktop 설치

2) docker desktop 실행

3) 아래 명령어 실행 (Jenkins, Java 21 설치 및 실행)

docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home --restart=on-failure jenkins/jenkins:lts-jdk21

 

명령어 옵션

옵션 설명
-d 백그라운드에서 컨테이너 실행 (Detached mode)
--name jenkins 컨테이너 이름을 jenkins로 지정
-p 8080:8080 호스트의 8080 포트와 컨테이너의 8080 포트 연결 (웹 인터페이스)
-p 50000:50000 호스트의 50000 포트와 컨테이너의 50000 포트 연결 (에이전트 연결)
-v jenkins_home:/var/jenkins_home jenkins_home 볼륨을 컨테이너의 /var/jenkins_home에 마운트
--restart=on-failure 컨테이너 실패 시 자동 재시작
jenkins/jenkins:lts-jdk21 Jenkins LTS 버전 이미지 (Java 21 포함)

 

4) 컨테이너 로그에서 비밀번호 확인

docker logs jenkins

 

5) 웹 브라우저 접속

http://localhost:8080

 

6) 비밀번호 입력

7) 플러그인 설치 (왼쪽 선택)

 

Github CI/CD 실습

job 생성

 

echo "GitHub 저장소에서 코드를 가져왔습니다"
echo ""
echo "저장소 파일 목록:"
ls -la
echo ""
echo "빌드 스크립트 실행:"
chmod +x build.sh
./build.sh

chmod : 파일 권한 변경 명령어

+x : 실행할 수 있는 권한

./build.sh : 파일 실행

 

Pipeline 실습

1) 선언적 문법 (추천)

2) 스크립트 문법 (groovy 기반, 복잡한 로직이 필요한 경우 사용)

 


Todo

Jenkins 문법 공부하기

https://www.jenkins.io/doc/book/pipeline/syntax/

 

Pipeline Syntax

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

www.jenkins.io

 

'공부 > QA' 카테고리의 다른 글

[QA] Selenium XPath svg 태그 찾기  (0) 2025.12.16
[QA] pytest  (0) 2025.12.13
[QA] Selenium clear()가 안되는 현상 해결 방법  (0) 2025.12.08
[QA] Python Selenium 웹 테스트 자동화  (0) 2025.12.05
[QA] 선택자(CSS Selector, XPath)  (0) 2025.11.28