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 |
댓글