일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JPA
- 의존성
- AOP
- AWS
- 미션
- MSA
- 우아한세미나
- 스프링 부트
- 자바
- 트랜잭션
- CircuitBreaker
- mock
- 프리코스
- 코드리뷰
- REDIS
- 프로그래머스
- 우테코
- 우아한테크코스
- JUnit5
- 스프링부트
- Level2
- Docker
- 서블릿
- 백준
- yml
- 레벨2
- Paging
- HTTP
- 세션
- Spring Batch
Archives
- Today
- Total
늘
CI와 CD 그리고 Jenkins? 어디서 들어는 봤는데... 본문
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
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