일시 : 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 실습


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 |