✈️ 교환학생/Cloud Solution

지속적 통합(CI) 및 지속적 배포(CD)의 원칙과 GitLab 파이프라인 설정 방법

놀러와요 버그의 숲 2023. 8. 29. 06:36
728x90
반응형

CI / CD는 무엇인가?

어플리케이션 개발 단계부터 배포때까지의 과정을 자동화하여 사용자들에게 빈번히 배포할 수 있게 하는 것을 말합니다.

 

CI (Continuous Intergration) - 지속적 통합

정의: 버그 수정이나 새로운 기능이 추가되면, 주기적으로 빌드되고 테스트가 되어서 머지되는 것을 말합니다.

 

특징

1. 코드 변경사항을 주기적으로 빈번하게 머지해야 합니다. (오랜 기간 머지를 안하면, 서로 다른 코드들을 통합하기가 나중에 힘들다)

그래서 최대한 작은 단위로 나누는 고민을 해야한다. 

 

2. 빌드, 테스트, 머지의 자동화

CI 서버에서 빌드도 잘 되고, 테스트도 잘 된다는 초록색 신호를 받거나, 문제가 생기면 적색 신호를 받고 개발자에게 알림이 간다.

장점: 문제점을 빠르게 발견하고 버그 수정이 용이하다.

        왜냐하면 코드의 변경사항이 작기 때문에 확인이 쉽다. 또한 코드의 퀄리티도 향상된다.

 

-> 자동으로 빌드 및 테스트되는 프로세스.

 

CD (Continuous Delivery / Deployment) -지속적 제공 / 배포

정의: CI 프로세스 이후에 코드 변경 사항이 자동으로 프로덕션 환경에 배포되는 과정을 말합니다.

 

 

파이프라인

정의:"파이프라인"이라는 용어는 여러 단계나 프로세스가 연속적으로 이루어져 단계의 출력이 다음 단계의 입력으로 사용되는 방식을 나타냅니다.

원래 용어는 물리적인 파이프를 통해 물이나 기름 등의 액체가 흐르는 시스템에서 유래했습니다.

액체가 파이프의 한쪽 끝에서 들어가면 여러 단계를 거쳐 다른 한쪽 끝에서 나옵니다.

소프트웨어 개발에서 CI/CD 파이프라인은 코드의 변경이 시작점에서(: 코드의 커밋) 최종적으로 프로덕션 배포까지 여러 연속적인 단계(: 빌드, 테스트, 배포) 거치는 프로세스를 나타냅니다.

 

CODE -> BUILD -> TEST -> RELEASE -> DEPLOY

 

 

사용툴

 

GitLab 파이프라인 설정 방법

GitLab 장점: 이미 소스코드들이 깃랩에 있으면, 다른 툴을 별도로 사용할 필요없이 깃랩을 사용하면 된다.

 

 

깃랩 아키텍쳐

 

깃랩이 자동으로 YAML 파일을 통해서 파이프라인을 감지한다. 

 

.gitlab-ci.yml 파일 작성 예시

 

 

 

 

출처: https://www.youtube.com/watch?v=0Emq5FypiMM&t=318s

https://www.youtube.com/watch?v=qP8kir2GUgo

https://www.youtube.com/watch?v=Jav4vbUrqII