젠킨스(Jenkins)
: 자바로 작성된 오픈 소스 자동화 서버
: 지속적 인도 프로세스를 구축하는 데 널리 이용됨
CI(Continuous Integration, 지속적 통합) 단계
: 일반적으로 개발자가 소스 코드를 커밋하고 푸시하는 것으로 시작
: 응용 소프트웨어를 자동으로 빌드, 통합
: (자동) 테스트를 통하여 배포할 수 있는 상태임을 확인
CD(Continuous Delivery/Deployment , 지속적 인도) 단계
: CI 단계에서 소프트웨어가 배포 가능한 상태임을 확인하는 것으로 시작
: 응용 소프트웨어를 컨테이너 이미지로 만들어 냄
: 포드, 디플로이먼트, 서비스 등 다양한 오브젝트 조건에 맞추어 (미리 설정한 파일을 통해) 배포
젠킨스의 특징
- 다양한 프로그래밍 언어 지원
- ⭐플러그인을 통한 확장
- 이식성
- 대부분의 소스 관리 시스템 지원
- ⭐분산 처리 지원 : 마스터 / 슬레이브 구조를 채택하여 여러 노드에서 작업 수행
- ⭐코드로 파이프라인 구성 : 프로세스 자동화에 적합
단위 테스트의 중요성
- 코드의 개발에 있어서는 "잠재적 결함을 일찍 발견할 수 있을수록" 효율이 높아짐
- 단위 테스트는 개발자의 몫
- 통합 테스트 및 인수 테스트와는 구별되어야 하는 것으로서, 테스트 케이스를 명확히 정의하고 이것을 테스트 케이스로 구현하는 것은 코드 개발자가 담당
🌟 배운 점
강의만 들어서는 젠킨스가 무슨 역할을 하는지 잘 모르겠어서, 찾아보게 되었다. 젠킨스는 개발자의 일을 편하게 도와주는 비서라고 생각하면 된다고 한다. 예를 들어, 개발자가 새로운 코드를 작성했을 때 수동으로 할 경우에는 코드 테스트 => 문제 없는지 확인 => 서버에 직접 올리기를 매번 반복해야 하는데, 젠킨스를 사용하면 코드를 저장소에 올리기만 하면 젠킨스가 자동으로 테스트 하고 문제가 없으면 서버에 배포까지 해준다. 실생활에 비유하자면, 젠킨스는 마치 음식점에서 주문을 받고 요리하고, 서빙까지 자동으로 해주는 시스템이라고 한다. 이렇게 설명을 들으니 무슨 역할을 하는지는 이해가 갔다. 하지만 사용법은 아직 이해가 잘 가지 않는 것 같다.
'데브코스' 카테고리의 다른 글
IaC 와 테라폼 (0) | 2024.12.06 |
---|---|
인수테스트 자동화 (0) | 2024.12.06 |
쿠버네티스(Kubernetes) (4) | 2024.12.03 |
웹 개발 파이프라인 구축 (0) | 2024.12.02 |
오픈 소스 컨트리뷰트, 저작자 되기 (2) | 2024.12.01 |