[Cloud] 지속적 통합

정동아·2023년 7월 27일
0

백엔드 부트캠프

목록 보기
41/41

우선, 빌드란 소스 코드 파일들을 컴퓨터가 이해할 수 있는 실행 가능한 소프트웨어 산출물로 변환하는 과정을 말한다.
이 산출물은 일반적으로 Artifact라고 부르며 바이너리 파일, 라이브러리, 패키지 들ㅇ의 형태로 제공된다. 빌드 과정에서는 소스 코드 파일들을 컴파일하고, 링크하고, 패키징하고, 배포할 수 있는 형태로 변환한다.

언어별로 대표적인 빌드 도구는

  • Java : Maven, Gradle

  • Python : (의존성 관리 및 빌드 스크립트 실행 도구) pip, setuptools

  • JavaScript : (의존성 관리 및 빌드 스크립트 실행 도구) npm, yarn
    C++ : CMake, Makefile

이렇게 있다.
빌드 도구를 선택할 때는 라이브러리 관리, 빌드 스크립트 작성 용이성, 확장성 등을 고려해야한다.

  • 라이브러리 관리는 빌드 도구에서 의존성을 해결할 수 있는 기능을 제공하는지 고려해야한다.

  • 빌드 스크립트 작성 용이성은 빌드 도구의 문법과 구성이 개발자에게 친숙한지 여부를 고려해야한다.

  • 확장성은 빌드 도구가 대규모 프로젝트에서도 충분히 확장 가능한 구조를 가지고 있는지 여부를 고려해야한다.


지속적 통합 (CI) 개요

  • 전체 CI/CD과정 중 CI과정

지속적 통합(CI: Continous Integration)은 개발자들이 새로운 코드를 작성하고 이전 코드와 함께 자동으로 빌드하고 테스트를 수행하는 프로세스이다.
(중요한 개발 방법론 중 하나!!)

지속적 통합 (CI라고 부르겠다.)의 장점은 다음과 같다.

  • 코드 품질 향상: CI는 코드를 자동으로 빌드하고 테스트하므로 개발자 실수를 줄일 수 있다. -> 코드 품질 향상에 도움이 된다.

  • 더 빠른 피드백: CI는 새로운 코드를 작성하고 이전 코등와 함께 자동으로 빌드하고 테스트하므로, 문제가 발생하면 빠르게 발견할 수 있다. -> 이는 더 빠른 피드백을 받게 해준다.

  • 더 높은 효율성 : CI는 빌드 및 테스트를 자동화하므로, 개발자들은 수동으로 작업하는 시간을 절약하고 더 많은 시간을 실제 개발에 할애할 수 있다.

CI는 다음과 같은 프로세스를 따른다.

1) 버전 관리 시스템에서 새로운 코드가 등록되면, CI 서버에서 자동으로 빌드 및 테스트를 진행한다.
2) 빌드 및 테스트가 완료되면, 결과를 개발자들에게 알려준다.
3) 문제가 발생한 경우, 개발자들은 이를 빠르게 수정할 수 있다.
4) 문제가 없으면, 코드를 릴리스한다.


Github Actions를 통한 컨테이너 지속적 통합

3개의 댓글

comment-user-thumbnail
2023년 7월 27일

좋은 정보 감사합니다

1개의 답글
comment-user-thumbnail
2023년 8월 4일

내가 이거 읽는다고 내 머리에 남아있을까....곰방 휘발될거같은데...

답글 달기