https://www.youtube.com/watch?v=0Emq5FypiMM
1. CI/CD 란?
어플리케이션 개발 단계부터 배포때까지의 이 모든 단계들을 자동화를 통해서 조금 더 효율적이고 빠르게 사용자에게 빈번히 배포할 수 있도록 말하는 방법
1.1 CI ( Continuous Integration )
- 지속적인 통합
- 버그수정이나 새로 만드는 기능들이 메인 리포지토리에 주기적으로 빌드되고 테스트가 되어서 머지가 되는것을 말한다.
- (1) 개발자들은 코드 변경사항을 주기적으로 빈번하게 머지해야 한다.
- 오랜기간 머지를 안하다가 나중에 한번에 머지를 하게되면 충동 해결하는데 시간이 오래 걸리게된다.
- 최대한 작은 단위로 나누어서 개발하고 통합해 나가는것이 중요하다.
- (2) 통합을 위한 단계 (빌드, 테스트, 머지) 의 자동화
- 머지된 코드가 자동으로 빌드되고 자동으로 테스트까지 되어야 한다
코드가 머지가 되면 자동으로 다음과 같은 동작들이 일어나야 한다.
- CI 스크립트를 통해서 머지된 코드가 빌드가 되고, 테스트도 통과 되어야 한다. (green)
- 빌드 혹은 테스트에 실패하게되면 자동으로 개발자에게 알람이 표시된다. (red)
1.1.1 CI 장점
- 주기적으로 머지를 해서 병합충돌이 안일어나게 되고, 문제점을 빠르게 발견할 수 있게된다.
- 머지된 코드의 크기가 작기때문에 버그 수정도 용이하고, 문제점도 빠르게 발견할 수 있다.