CI와 CD 그리고 Jenkins? 어디서 들어는 봤는데... 본문

백앤드 개발일지

CI와 CD 그리고 Jenkins? 어디서 들어는 봤는데...

giron 2021. 4. 25. 21:25
728x90

낯이 익은 아저씨..

Continuous Integration(CI)와 Continuous Delivery(CD)

  • CI
    • CI(Continuous Integration)는 개발자가 공유 버전 제어 저장소에서 팀의 코드를 컴파일 할 수 있도록 함으로써 빌드 주기 비효율성을 줄이기 위한 프로세스입니다.
    • 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레포지토리에 통합되므로 여러 명의 개발자가 동시에 어플리케이션 개발과 관련된 코드 작업을 할 경우에서 발생하는 충돌을 해결할 수 있습니다.

 

  • CD
    • 지속적인 서비스 제공(Continuous Delivery) or 지속적인 배포(Continuous Deployment)
    • 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 레포지토리에 자동 업로드 되는것을 뜻하며, 운영팀은 레포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있습니다.
    • 개발팀과 비즈니스팀 간의 가시성과 커뮤니케이션 부족문제를 해결해 줍니다.

 

💡 배치가 수행된 상태를 실시간으로 조회하기 위해 어떤 방법을 선택해야 하는가?

 - 크게 두가지 방법이 있다고 합니다. Spring Batch Metadata Tables 젠킨스 API 

그 중 젠킨스에  대해서 가~볍~게 알아보겠습니다. 

[Spring Batch Metadata Tables 방법이 궁금하면 jojoldu님의 블로그]

 

 

 

Jenkins의 장점과 단점부터

  • 팀에서 지속적인 통합 옵션을 고려할 때 Jenkins는 서버에서 실행해야 하며 (비용)시스템 관리 기술(시간)을 가진 사람의 관심이 필요한 경우가 있습니다. 시스템을 설정한 다음 시스템을 자주 업데이트하고 유지 관리해야 합니다.
  • Jenkins는 오픈 소스이며 개발자 팀을 위해 CI/ CD를 구현할 수 있는 가장 널리 사용되고 무료 도구중 하나입니다.
  • 하지만 CI 시스템이 정기적으로 중단됩니다. 프로젝트의 설정이 변경되면 종종 CI 시스템의 구성을 다시 조정해야 합니다.
  • 설정하는 데 시간이 걸리고 업데이트를 유지하려면 상당한 양의 작업이 필요합니다. 그러나 팀은 시스템 유지 관리를 간소화하고 효율성을 높이기 위해 테스트할 수 있습니다.
  • 하지만 Jenkins를 사용하면 코드를 유지 관리하기가 더 쉬워지고 버그가 줄어 듭니다. 팀이 더욱 통합되고 구축 시간이 단축됩니다.
  • 실행 이력, 로그 관리, 다양한 실행 방법

시험기간이라 간단하게만 알아보았는데 시험이 끝나고 나면 젠킨스를 직접 구현해보도록 할게요~~💡

 

 

참고 자료

woowabros.github.io/experience/2021/04/06/fetch-jenkins-api-async.html

 

제모옥은 젠킨스 조회로직 개선으로 하겠습니다. 근데 이제 비동기를 곁들인 - 우아한형제들 기

제목의 밈은 조림요정의 휴먼강록체입니다.

woowabros.github.io

jjeongil.tistory.com/810

 

Jenkins란 무엇이며 왜 사용해야 할까요?

많은 devops팀의 일반적인 문제는 조각난 워크 플로우입니다. 대부분 비효율적인 업무에 화를 내게 되고는 합니다. 팀원은 독립적으로 일하는 경향이 있습니다. 솔로 코딩을 통해 엔지니어는 정

jjeongil.tistory.com

 

728x90

'백앤드 개발일지' 카테고리의 다른 글

Swagger2  (0) 2021.07.19
GitLab 버전 관리와 협업 하면서 막혔던 부분 기록 일지  (0) 2021.07.12
TDD, BDD, DDD  (0) 2021.07.04
클린 코드란?  (0) 2021.06.29
DTO? DAO?  (0) 2021.03.10
Comments