CI/CD

김예찬·2021년 6월 10일
0

CI/CD에 대해 정리해봅니다.😋

이 포스팅은 얄팍한 코딩사전님의 유튜브를 듣고 정리한 내용입니다.

CI/CD

  • CI : Continuous Integration, 지속적 통합
  • CD : Continuous Deployment (or Delivery) 지속적 배포

애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법.
새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제 인테그레이션 헬(integration hell)을 해결하기 위한 솔루션.

CI

코드를 병합하는 과정 전에 코드에 결함이 있는지 확인하지 않으면 프로덕션에 문제가 생길 수 있습니다. 개인의 실수로 문제가 생겨날 수도 있고, 합쳐져서 생기는 논리적 오류들이 있을 수도 있습니다.
그래서 프로그래머들은 테스트하는 것이 거의 필수적입니다. 하지만 테스트하는 과정이 소규모를 넘어 대규모 소프트웨어로 향하게 되면 어려움이 생기게 됩니다.

그래서 CI가 생겨났습니다. 지속적으로 관리하며 통합함.

CD

배포한다는 것은 소프트웨어를 최종 사용자에게 넘겨주는 과정을 마합니다. 앱스토어에 앱을 등록하거나, 코드를 빌드해 서버 컴퓨터에 커맨드로 실행해주는 것까지가 배포(deploy)의 예시입니다. CD는 이런 배포 과정을 자동으로 해주는 것을 말합니다.

CI/CD 툴

  1. 젠킨스 : 설치형, 내 컴퓨터나 서버가 돌아갈 컴퓨터에 설치해서 사용. 컴퓨터 ip로 접속 후, 8080에 로그인하면 다양하게 CI/CD를 지원해주는 툴이 열림. 매크로를 만드는 화면이 열린다고 생각하면 쉽습니다. 무료로 사용할 수 있습니다.

🍕 예시 Github에 코드 푸쉬 -> 젠킨스에서 자동으로 젠킨스 전용 폴더로 다운로드 -> 그 다음에 메크로에 따라 로직 실시 -> 실패나 오류가 있을 경우 슬랙 등의 메세지를 날리거나 깃헙에 알려줌(플러그인 이용) -> 문제가 없다면 프로젝트를 배포용 파일로 빌드 후 원하는 폴더로 옮겨서 기존 서비스 중지 후, 이 파일로 새로운 서비스 실시

  1. Travis : Github에 Node.js로 만든 파일과 연동시킬 수 있습니다. 프로젝트 최상위 폴더에 .travis.yml이란 파일을 만들어 형식을 지정해 놓고, 작업을 저장해 둡니다.

  2. Github actions: 위에 예시들을 보면 결국 전부 github에 소스 코드를 푸쉬하는 걸로 시작되는걸 알수 있슴니다. Github에서도 CI/CD를 자체적으로 서비스합니다. 상단에 재생버튼에 actions라는 버튼을 눌러 워크플로우로 CI/CD 프로세스를 자체적으로 만들수 있습니다!

profile
프론트엔드

0개의 댓글