CI/CD

hahagarden·2023년 9월 1일
0

CS

목록 보기
3/6

CI/CD 필요한 이유

지속적으로 코드를 합치고 배포해야 하는데 이를 수동으로 한다면 문제가 발생할 수 있다.

  • development에서 dev 브랜치 충돌
  • test의 부재로 production에서 사용자 에러 발생
    파이프라인 구축하여 체계적으로 코드 작성부터 배포까지 진행할 수 있고, 자동으로 테스트되도록 강제할 수 있다.

빌드

여러가지 모듈을 정적 자산으로 빌드한다. .vue처럼 웹 브라우저에서 사용할 수 없는 확장자를 브라우저에서 사용할 수 있는 .js, .html, .css로 바꿔준다.
배포할 때 빌드 과정을 거쳐야 한다.

  • webpack

테스트

단위 테스트: 함수 등 작은 단위 테스트
통합 테스트: 모듈을 통합할 때 테스트
엔드투엔드 테스트: 사용자가 서비스를 사용하는 상황을 가정해서 테스트
보안 테스트: 공격자가 서비스를 공격했을 때 막아줄 수 있도록 테스트

  • mocha

머지

개발한 코드를 합치는 것. 머지 충돌을 최소화해야 한다. 충돌은 대부분 일어나기 때문에 더 작은 단위로 일어나게 해야 한다. 너무 atomic하게 작업을 쪼개는 것이 아니라, 작은 이슈 단위로 나누어서 작업하고 머지를 한다.

배포

사용자를 위한 서비스 배포 뿐만 아니라, QA엔지니어나 관리자 페이지를 위한 배포, 데이터웨어하우스로부터 데이터를 가공해서 백엔드 개발자를 위한 배포 등을 포함한다.

  • github action, jenkins, circle ci
  • heroku에서도 CI/CD 없이 가능

delivery
메인 브랜치에 최종 코드를 release 하는 것
deployment
사용자들이 이용하도록 production, 실제 서비스에 배포하는 것
delivery, deployment를 자동으로 한 번에 하거나, 나눠서 수동으로 하는 회사들이 있다

profile
공부한 내용을 기록합니다. 틀린 정보 피드백은 언제나 감사합니다 🌷 이전 블로그 https://hahagarden.tistory.com/

0개의 댓글