개발 지식

CI / CD

JJIMJJIM 2024. 4. 11. 19:42
728x90
반응형
SMALL

 

CI / CD ( Continuous Intergration / Delivery & Deployment )

개발자가 코드를 짰다면 그 다음 해야할 일은 무엇일까요?

지속적으로 코드를 합치고 코드를 배포해야 합니다.

이를 CI / CD 라고 합니다.

저는 한번도 이러한 걸 해본적이 없어서... 

다음 토이 프로젝트를 만들거나 할때 테스트코드 입력하고 테스트 실행하는것, 그리고 이 CI/CD까지 해보려고 합니다.

후아 개발자들 화이팅 

 

 

git actions, jenkins, AWS code deploy, travis, Amplify, heroku
(Elastic Beanstalk -> 문제점: platform 환경이 종종 deprecated되는 상황들이 많이온다, 

 

 

반응형

 

 

파이프라인

코드구축부터 시작해서 배포까지의 일련의 과정들을 CI / CD 파이프라인이라고 합니다.

총 3단계로 구성됩니다.

 

 

continuous intergration : 코드를 빌드하고 테스트하고 합칩니다.

continuous delevery : 해당 래퍼지토리에 릴리스 합니다. 

continuous deployment : 이를 프로덕션, 즉 실제 서비스에 배포합니다.

 

장점

  • 파이프라인이 주는 장점은 코드배포까지 좀 더 체계적으로 만드는 점.
  • 테스트가 강제된다는 점.
  • 파이프 라인 자체내에 테스트가 있기 때문에 테스트 없으면 코드 머지자체가 안되게 만들수도 있기 때문.

 

 

빌드

  • 대표적인 예로 webpack
  • 여러가지 모듈들(.ts, .jsx, .vue, .js, .sass, ...)을 정적 자산으로 빌드시켜준다.
  • 웹브라우저에서 사용할 수 없는 모듈들을 웹브라우저에서 사용할 수 있게 html, js, css 로 바꿔준다.

 

 

테스트

  • 테스트는 함수 등 작은 단위를 테스팅하는 단위 테스트.
  • 모듈등을 통합할 때 테스트하는 통합테스트.
  • 사용자가 서비스를 사용하는 상황을 가정해서 테스트하는 엔드투엔드테스트.
  • 테스트를 위한 대표적인 프레임워크는 mocha, jest
  • 보안테스트?도 있다.

 

 

머지

  • git이나 svn을 이용해 머지를 합니다. 요새는 그냥 git 쓴다고 보시면 됩니다.
  • 충돌을 최소화 하는게 중요
  • 충돌은 어차피 일어나기 때문에 조금 더 작은 단위로 충돌이 일어나게 하는게 중요하다.
  • 한달동안 코드를 짜고 한번에 배포 or 너무 아토믹하게 작은 단위로 머지 하는게 아니라, 적당한 작은 이슈 단위로 나눠서 머지
  • 충돌시에는 서로 화면을 공유하면서 합의하에 충돌을 해결하는게 제일 좋습니다. 

 

 

 

배포

  • 사용자를 위한 서비스 배포
  • 관리자를 위한 내부적으로 필요한 배포등도 포함한다

 

 

  • github action, genkins, circle ci가 유명하며 heroku를 통해 CI, CD 설정 없이 자동가능
  • 참고로 heroku + github action 으로 설정도 가능

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참조!

https://www.youtube.com/watch?v=KTHZyV9yJGY&list=PLTC3gIv9IzFLblGSX7yf_4p9VeUqAr_9q&index=5

 

728x90
반응형
LIST