본문 바로가기
카테고리 없음

Jenkins에 대해 알아보자

by ESTP 개발자 2025. 11. 6.

자동화 작업을 도와주는 도구인데,

빌드, 테스트, 배포를 자동화 해준다!

 

개발자가 코드 수정하고 푸시하면, 

자동으로 빌드하고 테스트하고 배포해준다.

 

팀 협업할 때도

누군가 수정한 코드가 다른 코드랑 충돌 안 했는지도 확인해준다.

 

Job 

작업 하나를 Job 이라고 부른다.

코드 빌드하기, 단위 테스트 실행하기가 Job이다.

 

Pipeline 

여러개의 Job을 연달아 실행하는 것

빌드 후 테스트 하고 그 다음 배포

 

Plugin

추가 기능이라고 보면 됨

github과 연결해서 코드를 자동으로 가져오거나, 슬랙을 연결해서 알림 받기도 가능

 

 

 

Jenkins를 어떻게 쓰면 좋을까?

 

Jenkins와 Kubernetes (K8s)

연동해서 배포하는게 트렌드.

Kubernetes는 컨테이너 오케스트레이션 시스템으로 여러대의 서버에서 컨테이너를 효율적으로 관리하고 배포할 수 있다.

Jenkins는 Kubernetes 클러스터에서 자동으로 배포작업을 스케일링하면 실행 가능.

 

 

Serverless 아키텍처

서버를 관리할 필요없이 코드만으로 애플리케이션 배포

AWS Lambda, Azure Functions 

 

Serverless가 어떻게 되는걸까

서버가 없다는 뜻이 아니라 서버를 직접 관리하지 않아도 된다는 뜻.

 

서버리스 동작방법

1. 코드를 클라우드에 업로드

2. 클라우드는 코드를 자동으로 관리하는 환경에 올려놓음

3. 어떤 트리거가 오면 그때만 자동으로 실행됨

- 사용자가 웹사이트에서 버튼 클릭 ➔ 함수 실행

- 데이터베이스에 값이 바뀜 ➔ 함수 실행

- Jenkins 배포 완료 이벤트 ➔ 함수 실행

4. 코드 실행이 끝나면 서버를 자동으로 꺼버림

➔ 그래서 비용도 쓴만큼만 나옴

 

장점 :

1. 서버관리 X

2. 자동확장

3. 비용 절약

4. 빠른 배포

 

단점 :

1. 처음 실행할 때 아주 조금 느림

2. 아주 큰 어플리케이션은 부적합(함수단위)

3. 서버를 직접 제어하기 어렵고, 세밀한 설정은 제한적