-
728x90
- 시장과 고객의 요구에 빠르게 반응하여 제품을 출시, 업데이트 하는 것이 중요
세계적으로 많은 기업들이 ci/cd를 개발 프로세스로 활용하고있다.
- CI/CD란 어플리케이션 개발부터 배포까지 모든 단계들을 자동화하여
사용자에게 빈번히 배포할 수 있도록 만드는 것이다.
CI: continuous integration
CD: continuous delivery (혹은 deployment)
CI는 버그 fix나 새로 추가한 기능들이 main repository에 주기적으로 merge되고, 빌드, 테스트되는 프로세스를 의미한다.
CI가 중점적으로 둔 사항은
1. 개발자들은 코드 변경사항을 주기적으로, 빈번하게 merge해야 한다.
=> 동일한 소스파일을 서로 다른 개발자들이 너무 오랜기간동안 변경을 할 경우 conflict에 대한 수정시간이 매우 오래걸리기 때문이다. 그래서, 최대한 작은 단위로 개발하여 빈번하게 merge를 하는 것이 중요하다.
2. 통합을 위한 단계(빌드, 테스트, 머지)의 자동화
=> 개발자들이 코드 리뷰를 받고 merge를 했다면, 자동으로 팀에서 만든 CI script를 통해 추가된 코드와 이 repository가 build가 되고, build가 잘 된다면 팀에서 작성한 unit Test, integrate test등 여러가지 test도 실행이 된다.
build 나 test에 실패한다면 개발자에게 알림이 가서 다시 수정을 하는 식이다.
장점
=> merge를 빈번하게 하여 빌드, 테스트 과정을 하므로 더 작은단위로 개발이 이루어지기 때문에
버그를 발견하고 fix하기가 더 쉬워진다.
jenkins
- java runtime 환경에서 작동을 하는 자동화 서버. 빌드, 테스트, 배포 모든 것을 자동화해준다.
- 많은 플러그인을 활용해서 각종 자동화작업을 할 수 있다.
- 개발자가 개발에만 몰입을 할 수 있게 해주는 좋은 툴이다.
'Etc > WEB' 카테고리의 다른 글
Base64 인코딩이란 (0) 2021.09.11 window객체와 document 객체, BOM, DOM (0) 2021.09.02 웹 기초 용어 정리 (0) 2021.08.27 directives 기능 사용하여 http 요청 https로 일괄 변환하기 (0) 2021.08.22 프로젝트 환경분석3(ApolloServer, ApolloClient) (0) 2021.07.20