CI / CD

    728x90
    반응형

     

    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
    반응형

    '개발 지식' 카테고리의 다른 글

    HTTP 헤더 (Header)  (0) 2024.04.16
    www.daum.net을 주소창에 치면 무슨 일이 일어날까?  (0) 2024.04.16
    API  (0) 2024.04.11
    디자인 패턴  (0) 2024.04.11
    this의 용법을 아는대로 설명하시오  (0) 2022.11.11

    댓글