<목차>


CI/CD

우리가 저번에 CI/CD가 무엇인지, 툴은 어떤 것이 있는지에 대해서는 대략적으로 공부를 했는데, 개념과 설명이 부족했다는 생각이 들어 배경부터 개념까지 잡고 갈까 합니다!

1. CI/CD가 나오게 된 배경

전통적인 개발 과정에서는 개발이 끝난 후 한꺼번에 코드 통합을 했었다고 합니다…! 😱😱

🤔 충돌이 많이 일어나지 않았을까?

네.. 당연히 충돌이 많이 일어났습니다. 통합 과정이 몇 시간 또는 며칠이 걸리기도 했다고 합니다.

이를 통합 지옥이라고 했는데, 여기서 벗어나고자 하는 노력에서 나온 개념이 CI/CD입니다.

<aside> 💡 2010년대 이후 IT 시스템은 Resilient + Anti-Fragile + Cloud Native를 핵심 키워드로 발전했습니다.

</aside>

DevOps라는 IT 문화가 생겨났고, 시스템이 로컬에서 클라우드로 이전되었고(Cloud Native), 확장성과 안정성을 더 강화해야 했으며(Anti-fragile), 지속적인 변경사항이 생겨도 시스템을 안정적 + 탄력적으로 운영할 수 있어야 했습니다.(Resilient)

<aside> ❓ DevOps?

소프트웨어의 개발(Development)과 운영(Operations)의 합성어, 어떤 요구사항을 효율적으로 만족시키기 위하여, 일을 자동화하여 변경사항 지표들을 측정하고, 공유하고, 이 모든 결과물들을 지속적으로 축적해 나아가는 문화를 만들어가는 철학, 방법론, 기술

</aside>

⇒ 좀 어려운 느낌이고 어려운 거 맞지만.. 결론적으로는 개발팀이랑 운영팀이 따로 일하지 않고 단일팀으로 병합되어 엔지니어가 개발에서 테스트, 배포, 운영에 이르게까지 전체 애플리케이션 수명 주기에 걸쳐 작업하고 단일 기능에 한정되지 않은 광범위한 기술을 개발하는 것.이라고 보면 될 것 같습니다.