인프런 멘토링 이후 멘토님이 요새 신입들이 JENKINS를 이용한 CI/CD는 다하는 거 같다고 하셔서 일단 CI/CD가 뭔지 몰라 찾아보며 정리했다
출처
https://www.youtube.com/watch?v=0Emq5FypiMM
어플리케이션 개발 단계 부터 배포 까지 효율적으로 자동화를 통해 배포하는 것을 의미
CI(Continuous Integration) - 지속적인 통합
버그 수정이나 새로 만드는 기능들이 메인 repository에 자주 빌드되고 테스트되어서 머지되는 것을 의미
CI는 2가지 포인트를 잡고 생각하면 좋다
1. 개발자는 코드 변경사항을 메인 repository에 자주 머지해야 한다
머지 충돌 시의 시간을 줄이기 위해, 버그를 잡기 위해 작은 단위로 나누어서 개발하고 통합하는 것이 중요
2. 주기적으로 머지된 코드 변경사항이 자동으로 빌드되서 코드 변경 이후에도 빌드가 성공적으로 되었는지 확인해야함
다른 버그는 없는지 테스트도 자동으로 되어야 함
CI 원칙의 장점
- 개발 생산성 향상
- 버그 수정 용이
- 코드 퀄리티 향상(Unit Test를 꼭 포함해야 하기 때문)
CD(Continous Delivery or Deployment) - 지속적인 제공, 배포
배포 단계에서 자동화 해서 배포할 수 있을지를 고민하는 단계
CI를 통해서 테스트 까지 완료되었다면 배포가 자동으로 된다면 Deployment 수동이라면 Delivery
회사마다 수동으로 하는 경우도 있고 자동으로 하는 경우가 있다. 방식이 다양함
CI/CD 파이프라인
Code -> Build -> Test -> Release
CI/CD 에서 사용되는 툴
- JENKINS
- Buildkite
- GitHub Actions
'CS 공부' 카테고리의 다른 글
Http 헤더와 BODY (0) | 2023.02.02 |
---|---|
RESTful API란? (0) | 2023.01.30 |
HTTP 상태 코드(4xx, 5xx) (0) | 2023.01.27 |
HTTP 상태 코드 소개(2xx, 3xx) (0) | 2023.01.27 |
URI 와 웹 브라우저 요청 흐름 (0) | 2023.01.26 |