젠킨스란?

SunHyeongChae·2023년 5월 18일
0

젠킨스를 설명하기전 개발 후 배포까지의 이야기를 하자면

서버 어플리케이션에 기능을 추가 하려면 개발자가 개발자 노트북에서 개발을 완료 하고 테스트까지 한 다음에 이상이 없으면 사용자가 사용할 수 있게 수정된 내용을 서버에 반영해야 합니다. 서버에 반영을 하는 것을 '배포'라고 하고 배포 하기 위한 준비 과정을 '빌드'라고 합니다.

Build란?

빌드는 서버에 올릴 수 있는 상태로 만드는 것을 빌드라고 합니다.

서버에 올려서 사용자가 사용 할 수 있게 하는 것은 배포(Deploy)라고 합니다.

예를 들어 SpringBoot 어플리케이션을 쿠버네티스에 배포하는 경우 먼저 Maven이나 Gradle로 빌드를 해서 .jar이나 .war를 만든 후 Docker빌드를 해서 Docker Image를 만듭니다. 그 후에 k8s에서 .yml파일에 이미지 버젼이 바뀐것을 반영하게 됩니다.

Build를 자동화 해야하는 이유

예를들면 옛날에는 자바를 빌드 할 때 javac라는 커맨드를 직접 사용 했지만 지금은 IDEA를 이용하면 main()메소드를 실행했을 때 javac를 하고 java가 실행이 됩니다.

이렇게 반복되는 과정은 버튼 하나 또는 단축키로 자동화 시킬 필요가 있습니다.

왜냐하면 이 작업을 하는데도 집중력, 긴장감 등이 소모 되기 때문입니다. 그리고 빌드는 시간이 꽤 걸리는 작업인데(30초 이상 걸림) 빌드를 실행 시키고 나서 빌드가 될 때까지 기다리는 시간도 모아보면 엄청 길 것입니다.

개발자의 시간은 소중하기 때문에 최대한 반복작업은 자동화 할 필요가 있습니다.

저도 수동으로 빌드를 5개월쯤 하니 자동화를 안시킬 수가 없었습니다. 수정하고 빌드하고 dev에 올리고 하는데 너무 시간을 많이 잡아먹기 때문입니다.

Jenkins란?

위에서 이야기한 빌드를 자동화 해주는 툴입니다.

Jenkins는 빌드를 자동화 시키기 위해 사용합니다.

대표적인 기능은

1. 대쉬보드 제공

여러가지 배포 작업의 상황을 모니터링 할 수 있습니다

2. 배포 스크립트 실행기능

배포 스크립트를 개발자 로컬에서도 실행 할 수 있는데 젠킨스라는 프로그램을 띄워놓으면 스케쥴링을 해줍니다

3. 다양한 플러그인

빌드를 하는 환경도 다양하고 빌드를 할 때 바꿔 주어야 하는 옵션도 다양하고 각각 개발 환경과 개발한 언어도 다 다릅니다. 이런 것들을 커버하기 위해 젠킨스는 다양한 플러그인을 제공 합니다.

결과화면

사진처럼 지금 빌드를 누르면 알아서
깃 클론 - 빌드 - 배포까지 다 ~ 해준다 ~

자 이제 젠킨스의 힘을 알겠나 ?

profile
JAVA BACK-END DEVELOPER 👩‍💻

0개의 댓글