Dev

젠킨스(Jenkins)

에린_1 2024. 8. 9. 09:48
728x90

젠킨스(Jenkins)

  • 젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다.
  • CI(Continuous Integration) 툴 이라고 표현한다.
  • 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.

장점

  • 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
  • 자동화 테스트 수행
  • 정적 코드 분석에 의한 코딩 규약 준수여부 체크
  • 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시
  • 결합 테스트 환경에 대한 배포작업
  • 이외 500여가지가 넘는 플러그인을 온라인으로 간단하게 인스톨 할 수 있는 기능을 제공하고 있으며 파이썬과 같은 스크립트를 이용해 손쉽게 자신에게 필요한 기능을 추가 할 수도 있다.

각종 배치 작업의 간략화

  • 프로젝트 기간 중에 개발자들은 순수한 개발 작업 이외에 DB셋업이나 환경설정, Deploy 작업과 같은 단순 작업에 시간과 노력을 들이는 경우가 빈번하다.
  • 데이터베이스의 구축, 어플리케이션 서버로의 Deploy, 라이브러리 릴리즈와 같이 이전에 CLI로 실행되던 작업들이 젠킨스 덕분에 웹 인터페이스로 손쉽게 가능해졌다.

Build 자동화의 확립

  • 빌드 툴의 경우 JAVA는 maven과 gradle이 자리잡고 있으며, 이미 빌드 관리 툴을 이용해 프로젝트를 진행하고 있다면 젠킨스를 사용하지 않을 이유가 하나도 없다.
  • 젠킨스와 연동하여 빌드 자동화를 통해 프로젝트 진행의 효율성을 높일 수 있다.

자동화 테스트

  • 자동화 테스트는 젠킨스를 사용해야 하는 가장 큰 이유 중 하나이며, 사실상 자동화 테스트가 포함되지 않은 빌드는 CI 자체가 불가능하다고 봐도 무방하다.
  • 젠킨스는 Subversion이나 Git과 같은 버전관리시스템과 연동하여 코드 변경을 감지하고 자동화 테스트를 수행하기 때문에 만약 개인이 미처 실시하지 못한 테스트가 있다 하여도 든든한 안전망이 되어준다.

코드 표준 준수여부 검사

  • 자동화 테스트와 마찬가지로 개인이 미처 실시하지 못한 코드 표준 준수 여부의 검사나 정적 분석을 통한 코드 품질 검사를 빌드 내부에서 수행함으로써 기술적 부채의 감소에도 크게 기여한다.

빌드 파이프라인 구성

  • 2개 이상의 모듈로 구성되는 레이어드 아키텍처가 적용 된 프로젝트에는 그에 따른 빌드 파이프라인 구성이 필요하다.
  • 예를 들면, 도메인 → 서비스 → UI와 같이 각 레이어의 참조 관계에 따라 순차적으로 빌드를 진행하지 않으면 안된다.
  • 젠킨스에서는 이러한 빌드 파이프라인 구성을 간단히 할 수 있으며, 스크립트를 통해서 매우 복잡한 제어까지도 가능하다.

단점

  • 규모가 작은 프로젝트의 경우, 설정하는데 리소스 낭비가 발생할 수 있다.
  • 호스팅을 직접해야하기 때문에 서버 운영 및 관리 비용이 발생한다.

참조

https://inpa.tistory.com/entry/Jenkins-📚-젠킨스란-무엇인가

 

[Jenkins] 🤵 젠킨스란 무엇인가? (CI /CD)

선행학습 👩‍💻 CI / CD 파이프 라인 이란? CI(Continuous Integration) CI/CD의 "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다. CI를 성공적으로 구현할 경우 애플

inpa.tistory.com

 

728x90

'Dev' 카테고리의 다른 글

빌드 이벤트 지정  (0) 2024.08.13
CI/CD 파이프라인  (0) 2024.08.13
오토스케일링(AutoScaling)  (0) 2024.08.08
데이터베이스 샤딩  (0) 2024.08.07
배치 파일과 도스 명령어  (0) 2024.08.05