Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- rnn
- oracle
- inline
- HTML
- FileWriter
- iframe 태그
- 상속
- 메서드
- Position
- 사전학습
- css 기초
- 파이썬
- ObjectOutputStream
- BorderLayout
- 퍼셉트론
- 푸리에 변환
- Codility
- Database
- g검정
- html 프로젝트
- 미디어쿼리
- html 기초
- FlowLayout
- FFT
- CSS
- java
- 반응형웹
- 예제
- 반응형 웹 프로젝트
- GridLayout
Archives
- Today
- Total
도라에몽주머니
[CI/CD] CI/CD 란 무엇일까? 본문
GitHub Actions에 대해 공부하던 중, CI/CD 라는 용어가 자주 나오는 것을 보고 용어를 한번 정리해야겠다는 생각이 들어 글을 작성하게 되었다.

CI/CD 란?
: 애플리케이션 개발부터 배포까지 모든 단계를 자동화함으로써 좀 더 효율적이고 빠르게 (사용자들에게 빈번하게) 배포할 수 있는 것 을 의미
CI (Continuous Integration) ; 지속적인 통합
: 코드의 변경 사항을 공유 소스 리포지토리에 자동으로 자주 통합(merge) 하는 것
CI은 왜 하는걸까?
- 코드 병합(Code Merge) 에 시간을 덜 쓰기 위해서
- CI (지속적인 통합) 를 빈번하게 하지 않으면 개발자 각자가 오랜시간동안 개발을 진행하고 merge 하게 된다. 그렇게 되면 충돌되는 코드가 더 많이 생길 수 있으며, 새로운 기능의 코드를 작성하는 시간 보다는 코드를 병합(merge) 하는 시간이 더 오래 걸릴 수 있다.
병합의 날(Merge Day) 을 정해 분기별 소스코드를 하루종일 병합하는 경우도 있다고 한다... - 따라서, 가능한 작은 단위로 나누어 주기적으로 개발 및 통합을 해나가는 것이 중요하다.
- CI (지속적인 통합) 를 빈번하게 하지 않으면 개발자 각자가 오랜시간동안 개발을 진행하고 merge 하게 된다. 그렇게 되면 충돌되는 코드가 더 많이 생길 수 있으며, 새로운 기능의 코드를 작성하는 시간 보다는 코드를 병합(merge) 하는 시간이 더 오래 걸릴 수 있다.
- 개발자별로 각각 커스터마이징 된 IDE를 통합하게 될 때의 충돌을 줄이기 위해서
- 팀이 하나의 IDE 사용에 동의하지 않고, 각자 로컬 IDE를 커스터마이징 하는 경우, CI를 하지 않는다면 애플리케이션을 병합할 때 상호 충돌할 가능성이 있다. 이러한 가능성을 줄이기 위해, CI를 통해 자동으로 애플리케이션을 빌드하고 테스트를 실행해야한다.
- 따라서, CI를 통해 충돌을 보다 빠르게 발견하고 자주 수정할 수 있도록 하는 것이 중요하다.
CD (Continuous Delivery, Continuous Deployment) ; 지속적인 제공, 지속적인 배포
Continuous Delivery ; 지속적인 제공
: CI를 통해 검증된 코드를 리포지토리로 릴리즈 하는 것을 자동화하는 것
Continuous Deployment ; 지속적인 배포
: 지속적인 제공(Continuous Delivery) 의 확장으로, 변경 사항을 리포지토리에서 프로덕션으로 릴리즈 하는 것을 자동화하는 것
CD의 장점
- 코드를 배포하는 데 필요한 노력을 최소화 할 수 있다. (개발의 효율성을 높일 수 있다.)
- 개발팀과 비즈니스 팀 간의 가시성과 커뮤니케이션 부족 문제를 해소할 수 있다.
- 수동 프로세스를 하게 되면 운영팀은 프로세스 과부화 문제가 발생할 수 있는데, 이러한 프로세스 과부화 문제를 CD를 통해 해결할 수 있다.
'Study' 카테고리의 다른 글
| 소프트웨어 아키텍처 ; 어니언 아키텍처 (2) | 2024.07.23 |
|---|---|
| [Google Colaboratory] 구글 코랩으로 시크릿(Secrets) 관리하기 (0) | 2024.07.19 |
| [GitHub] GitHub Actions 란? (0) | 2024.05.29 |
| [Git] 깃(Git)과 깃허브(Github) (0) | 2024.05.18 |
| [App] Monaca란? (0) | 2024.05.07 |