CI, CD

majungha·2023년 5월 2일
1

메모

목록 보기
56/57

오늘의 공부 👍

오늘은 CI, CD에 대해서 알아보겠습니다.

📝 CI


  • Continuous Integration의 약자이다.
  • 지속적인 통합이라는 의미이다.

▷ 지속적인 통합

  • 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합되는 것이다.

▷ CI가 필요한 환경

▶ 다수의 개발자가 형상관리 툴을 공유하여 사용하는 환경

  • 형상관리 툴을 사용하는 개발자들은 기능 추가 시마다 commit 등을 날려 레포지토리(Repository)에 버전 업데이트를 한다.
  • 위와 같은 상황에서 CI는 자동화된 빌드와테스트를 해준다. 이는 원천 소스코드의 충돌 등을 방어한다.

▶ MSA(Micro Service Archietecture) 환경

  • 기존의 어플리케이션이 모든 기능을 포함하는 하나의 거대한 서비스이었다면, MSA는 작은 기능별로 서비스를 잘게 쪼개어 개발하는 형태를 의미한다.
  • MSA 환경에서는 대부분 Agile(소규모 기능 단위로 빠르게 개발 & 적용을 반복하는 개발방법론) 방법론이 적용되기 때문에, 기능 추가가 매우 빈번하게 발생하게 된다.
  • 위와 같은 상황에서 CI는 기능 충돌 방지 등의 이익을 제공한다.

▷ CI 요약

  • 버그를 신속하게 찾아 해결한다.
  • 소프트웨어의 품질을 개선한다.
  • 새로운 업데이트의 검증 및 릴리즈의 시간을 단축시키는 것이다.
  • 새로운 소스코드의 빌드, 테스트, 병합까지를 의미한다.

📝 CD


  • Continuous Delivery 혹은 Continuous Depolyment의 약자이다.
  • 지속적인 서비스 제공 혹은 지속적인 배포 라는 의미이다.

▷ CD 특징

  • Continuous Delivery는 공유 레포지토리로 자동으로 Release 하는 것이다.
  • Continuous Deployment는 Production 레벨까지 자동으로 deploy 하는 것을 의미한다.
  • 개발자의 변경 사항이 레포지토리를 넘어, 고객의 프로덕션(Production) 환경까지 릴리즈 되는 것이다.

마무리 👍


출처 및 참고
CI/CD란 무엇인가 (Feat. DevOps 엔지니어)

profile
개발자 블로그 / 항상 겸손한 자세로 배우면서 성장하자 할 수 있다!

0개의 댓글