본문 바로가기

Jenkins

[Jenkins] Jenkins(젠킨스)란 무엇인가?

728x90
반응형

GitHub Repository에 올린 본인의 코드를 서버에 배포하기 위하여 Jenkins를 많이 사용한다. 

오늘 포스팅에서는 Jenkins가 무엇인지 알아보자!


Jenkins?

Jenkins는 소프트웨어 개발 프로세스를 자동화하는 데 필수적인 도구로, 주로 연속 통합(Continuous Integration, CI)과 연속 배포(Continuous Delivery, CD)를 지원하는 서버다.

개발자들이 코드를 저장소에 커밋할 때마다 Jenkins가 자동으로 그 코드를 빌드하고, 테스트하며, 필요한 경우 배포까지 해준다.

이러한 자동화는 개발 주기의 반복적인 작업을 간소화하고, 코드 변경 사항이 즉각적으로 통합되도록 하여, 오류를 조기에 발견하고 해결할 수 있도록 도와준다.


Jenkins의 주요 특징 및 기능

  • 플러그인 아키텍쳐

Jenkins는 수천 개의 플러그인을 제공하여 다양한 언어, 플랫폼, 빌드 도구와 함께 사용할 수 있다.

예를 들어, Maven, Gradle, Git, SVN과 같은 도구와 쉽게 통합되며, Docker를 사용한 컨테이너화된 빌드 및 배포 파이프라인도 지원한다. 플러그인을 통해 Jenkins를 사용자가 원하는 대로 확장할 수 있으며, 특정 요구 사항에 맞춰 커스터마이징 할 수 있다.

  • 파이프라인(Pipeline)

파이프라인을 사용하면 코드를 빌드하고 테스트하며 배포하는 전체 프로세스를 코드로 정의할 수 있다.

이는 단순한 스크립트에서 복잡한 작업 흐름(Work Flow)까지 모두 설정할 수 있어, 반복 가능한 빌드 프로세스를 쉽게 관리할 수 있게 도와준다. 또한, 파이프라인 스크립트는 Groovy 기반의 DSL(Domain-Specific Language)로 작성되며, Jenkins 파일을 통해 소스 코드와 함께 버전 관리가 가능하다.

 

  • 분산빌드

여러 대의 서버를 노드로 설정하여 작업을 분산 처리할 수 있다.

이를 통해 빌드 시간을 단축하고, 대규모 프로젝트에서의 병목 현상을 줄일 수 있다.

마스터-에이전트 구조를 사용하여, Jenkins 마스터는 빌드 작업을 관리하고, 실제 빌드는 여러 에이전트 노드에서 병렬로 실행된다.

 

  • 웹 기반 UI

이를 통해 사용자는 Jenkins 서버를 쉽게 관리하고, 빌드 상태를 모니터링할 수 있다.

빌드 히스토리, 로그, 결과 등을 직관적으로 확인할 수 있으며, 문제가 발생했을 때 즉시 조치를 취할 수 있도록 도와준다.


결론

Jenkins는 지속적 통합과 배포 파이프라인을 자동화하여 소프트웨어 개발 주기를 효율화하는 데 중점을 둔 도구이다.

다양한 플러그인과 확장성을 바탕으로, 거의 모든 개발 환경에서 사용될 수 있으며, 개발팀의 생산성과 코드 품질을 높이는 데 중요한 역할을 한다.

728x90
반응형