Jenkins 개요

JJStone·2022년 5월 11일
0

Jenkins

목록 보기
1/1

Jenkins 개요

1. CI/CD란?

  • 개발자가 만든 코드를 결과물로 만들어서 보여주는 일련의 과정중에는 컴파일, 빌드, 배포 단계가 있다.

1-1. 컴파일

  • 개발자가 만든 프로그래밍 언어 (C/C++, Java 등...)을 기계가 이해할 수 있는 기계어로 번역하는 것이다.
  • 이때 프로그래밍 언어를 기계어로 번역해주는것을 컴파일러라고 한다.

1-2. 빌드

  • 컴파일된 기계어를 사용자에게 보여주기위해 소프트웨어 가공물로 만드는 행위이다.
  • Java의 경우 maven, gradle 과 같은 빌드 도구를 이용하면 소스코드를 컴파일과 함께 .jar, .war 파일로 빌드할 수 있다.

1-3. 배포

  • 이렇게 만들어진 산출물을 각각의 서버에서 동작하도록 해 상품을 사용자에게 공개하는것이 배포이다.
  • 이러한 과정들을 거치면서 CI/CD라는 개념이 자주 들려온다. 이를 정리해보겠다.

1-4. CI(Continuous Integration)

  • 지속적 통합 이라는 뜻으로 개발을 진행하면서 품질을 관리할 수 있도록 하는것.
  • 여러명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있음을 의미한다.
  • CI를 적용하면 각작의 개발자가 자신의 구현해야할 기능들을 구현하고 구현이 완료 됐으면 Main 브랜치에 병합하기만 하면 된다. 병합한 뒤에는 코드가 빌드가 잘 되는지, 올바르게 동작하는지 테스트하며 코드에 버그가 있다면 해결한다.
  • 이러한 일련의 과정들을 지속적으로 반복할 경우, 또는 프로젝트 크기가 클 경우에는 반복작업들이 많아져 피로도가 높다.
  • 이를 자동화 시킬경우 개발자가 빌드와 테스트를 직접 하지 않아도 수정한 코드를 브랜치에 병합하기만 하면 자동으로 빌드와 테스트를 검증 할 수 있다.
  • 자동화 시킬 경우 개발자가 단위별로 구현한 부분을 병합할 때마다 자동화된 빌드와 테스트가 트리거 되어 실행된다. 결과를 통해 어떤 부분에서 문제가 있는지 배포 전에 확인할 수 있다.

    1-4-1. CI의 순서

    1. 개발자가 구현한 코드를 기존 코드와 병합
    2. 병합된 코드가 올바르게 동작하고 빌드되는지 검증
    3. 테스트 결과에 문제가 있다면 수정하고 다시 1번으로 돌아간다. 문제가 없으면 배포를 진행한다.
profile
java, scala 개발자 입니다.

0개의 댓글