본문 바로가기
study/Devops

CI/CD란? (feat. 드림코딩앨리)

by stilinski 2022. 10. 13.
728x90

 

 

 

개발 프로세스

 

 

CI/CD란?

어플리케이션 개발 단계부터 배포까지 모든 단계들을 자동화를 통해 조금 더 효율적이고 빠르게 빈번히 배포할 수 있도록 만드는 것.

 

CI - Continuous Integration

CD - Cotinuous Delivery(or Deployment)

 

 

 

CI

지속적인 통합

새로 만든 기능들이나 버그수정들이 repository에 매일 주기적으로 빌드돼고 테스트가 되어서 merge되는 것을 뜻함.

Grady Boody(객체지향 프로그래밍에 대해 유명한 책을 쓴 저자)가 쓰던 방식.

 

포인트

1. 코드 변경사항을 주기적으로 빈번하게 머지해야 한다.

빈번하게 merge하지 않으면 여러개발자들이 나중에 merge할때 개발자들끼리의 코드를 merge하는데에 시간이 걸림. 

2. 통합을 위한 단계(빌드, 테스트, 머지)의 자동화!

CI 스크립트, 테스트를 거쳐서 merge

 

== 주기적으로 머지를 하기때문에 머지충돌을 피할 수 있어 개발의 생산성을 높일 수 있음

== 머지되는 모든 코드들은 자동으로 빌드, 테스트되기 때문에 문제점을 빠르게 발견할 수 있음

== 코드 퀄리티 향상

 

 

CD

지속적 제공, 배포

CI(빌드 테스트) -> cd에서 배포준비/검증, 배포

delivery - 수동

deployement - 자동화

회사마다 방식이 다름.

 

 

 

CI/CD 

코드개발 및 머지 - 빌드 - 테스트 - 릴리즈 -  수동 or 자동 배포

 

 

CI/CD Tool

Jenkins, GitHub Actions, GitLab CI/CD, Buildkite 등등

 

 

728x90

'study > Devops' 카테고리의 다른 글

CI/CD를 위한 Jenkins 실습  (0) 2022.10.21
Jenkins와 CI/CD에 대해  (0) 2022.10.17
도커란? (feat. 드림코딩앨리)  (0) 2022.10.14
Docker 도커 입문 2 (feat. 생활코딩)  (0) 2022.10.14
Docker 도커 입문 1 (feat. 생활코딩)  (0) 2022.10.14

댓글