멋사 Backend 77일차 🦁

신재원·2023년 8월 10일

🔎 CI / CD

🌍 CI / CD가 나타나게된 배경

  • 일반적인 프로젝트에서는 여러 개발자가 참여하게 됩니다.

이러한 프로젝트에서 각자 맡은 특정 기능을 개발하게되면서, 개발자 마다 개발 스타일과 테스트 환경이 천차 만별일수 있기 때문에 통합하는 과정 에서 문제점이 발생할수 있습니다.

  • 이렇게 만든 프로젝트는 실제로 사용자에게 도달하기 위해서는 아래와 같은 여러 단계를 거치게 됩니다.

1 : 컴퓨터를 준비
2 : 컴퓨터에 인터넷을 연결
3. 컴퓨터에 만든 프로젝트를 준비합니다.

각 단계에서 더 복잡한 과정이 필요할수도 있습니다.

➡ 이렇게 소프트웨어가 사용자에게 도달하기 까지의 과정을 소프트웨어 생명 주기라고 합니다.

이러한 소프트웨어 생명주기를 어떻게 관리할지에 대한 방법론과 통합하는 과정을 정의하여 CI / CD 개념이 등장하게 되었습니다.

❓ CI / CD 란 ?

CI 란 ?

개별 개발자들이 새로운 코드를 지속적으로 공유하고 통합하는 것을 의미합니다. 개발자들의 작업을 더 자주 많게는 하루에 몇번이라도 각 개발자들의 작업을 하나의 장소로 통합하는 개발 방식 입니다.

⭕ 필요성 : 지속적으로 공유하지 않고 통합하지 않는다면, 통합하는 과정에서 문제가 더 복잡해지고 많아질 가능성이 있습니다.

CD 란 ?

CI의 확장으로서, 짧은 주기로 통합되고 빌드되는 소프트웨어가 자동으로 배포될 수 있도록 구성하는 개발 방식을 말합니다.

CI / CD 를 한줄로 정리하면 지속적인 통합 / 배포를 의미합니다.

CI / CD의 목적

코드를 통합으로 관리하기 때문에 빠른 피드백과 문제를 해결할수있으며, 코드의 높은 품질과 안정성을 기대할수있습니다.
배포를 빠르게 진행할수 있기때문에 새로운 기능을 빠르게 사용자에게 제공할수있으며, 사용자의 요구에 신속하게 대응할수 있습니다.

궁극적으로 CI / CD 의 주요 목적은 소프트웨어 개발 및 배포를 더욱 효율적으로 할수 있다는 점입니다.

많이 알려진 CI / CD 의 기술로는

젠키스, 깃허브 액션, 깃랩, 도커 가 있습니다.

🦊 Gitlab을 통한 CI / CD 구축

  • 깃랩에서는 위에서 설명드린 CI / CD를 스테이지와 잡으로 구성한다고 합니다.
stages:
  - build
  - test
  - deploy

이전의 스테이지가 끝나야 다음 스테이지가 진행되고, 각 스테이지 안의 잡들은 동시에 병렬로 실행되는 것을 기본으로 한다고 합니다.
이렇게 Job (잡) 과 스테이지로 구성되는 것을 CI / CD 파이프 라인이라고 부른다고 합니다.

Reference

https://insight.infograb.net/blog/2021/04/08/gitlab-cicd-pipeline/

😎 팀 프로젝트 기획 / 설계

반려동물 관리 플랫폼 서비스

  • Github 레포지토리 클론, 및 이슈 네이밍 정하기, 브랜치 네이밍 정하기, 풀 리퀘스트 연습
  • 일일 보고서 작성, 기획서 작성, To - Do 리스트 작성
  • 나는 오픈 API 동물병원 위치기반 기능을 맡았다.
  • 해당 기능에 대한 ERD, 세부기능 설계

0개의 댓글