12.1 사전 지식 : CI/CD

SummerToday·2024년 5월 7일
1
post-thumbnail
post-custom-banner

CI/CD란?

출처 : https://www.hanl.tech/blog/ci-cd-%EA%B8%B0%EB%B3%B8%EA%B0%9C%EB%85%90%EA%B3%BC-%EA%B0%80%EC%9E%A5-%EB%A7%8E%EC%9D%B4-%EC%93%B0%EC%9D%B4%EB%8A%94-%EB%8F%84%EA%B5%AC-5%EA%B0%80%EC%A7%80/

CI/CD는 지속적 통합(Continuous Integration) 및 지속적 제공/배포(Continuous Delivery/Deployment)를 뜻하며, 해당 용어는 소프트웨어 개발 라이프사이클을 간소화하고 가속화하는 방법을 의미한다.

CD/CD를 도입하기 전에는, 서비스를 배포하고 운영하는 중에 변경사항이 생겨 코드를 변경할 일이 발생하면 코드를 수정하고, 빌드를 하고 빌드한 jar 파일을 서버에 업로드해 새 배포 버전을 제공하는 등의 복잡한 과정들을 거쳐야했다.

하지만, CI/CD를 도입함으로써 빌드부터 배포까지의 과정을 자동화 하고 모니터링도 가능하게되었다.


지속적 통합, CI

Continuous Integration으로 지속적 통합이라는 뜻이며, 개발자를 위해 빌드와 테스트를 자동화하는 과정을 의미한다.

  • 변경사항을 자동으로 테스트해 애플리케이션의 무결성을 보장한다.

  • 다수의 개발자가 참여해 프로젝트를 진행하는 경우, 충돌을 방지하고 모니터링이 가능하다.

  • 코드 변경 사항이 코드 저장소에 업로드 되면 CI를 시작한다.

성공적인 CI란, 개발자가 애플리케이션에 적용한 변경 사항들이 병합된 후 애플리케이션에 문제가 발생하지 않도록 자동으로 빌드하고 다양한 수준의 자동화된 테스트를 실행하여 해당 변경 사항을 검증하는 것이다.


지속적 제공과 지속적 배포, CD

Continuous Delivery, Continuous Deployment를 의미한다. CI가 끝난 후 배포 준비가 된 코드를 서버에 배포하는 작업을 자동화 하는 과정을 의미한다.

지속적 제공에서의 CD 의미

CI를 성공적으로 진행 후 깃허브와 같은 코드 저장소에 자동으로 업로드하는 과정을 의미한다. 최소한의 노력으로 배포를 쉽게 하는 것을 목표로 한다.

지속적 배포에서의 CD 의미

지속적 배포는 지속적 제공의 확장으로, 지속적 제공을 통해 성공적으로 병합한 코드 내역을 리포지토리에서 프로덕션으로 릴리스하는 것을 자동화 하는 것을 의미한다. 즉, 병합된 코드 내역을 AWS와 같은 배포 환경으로 보내는 것을 의미한다.


출처 : 신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 341p


참고 : GIT 설치하기

  1. http://git-scm.com/download/win에 접속한 뒤 [Click here to download]를 눌러 깃을 설치한다.

  2. 깃 설치 완료시 CMD를 열어 git --version 명령어를 통해 버전을 확인해 정상적으로 설치가 되었는지 확인한다.


참고 : Git과 GitHub 연동하기

  1. CMD를 열어 다음 명령어를 통해 깃허브에 가입한 사용자 이름과 이메일 주소를 설정한다.

    git config --global user.name "[깃허브 아이디]"
    git config --global user.email "[깃허브 이메일]"

  2. 깃은 SSH로 접속하기 위해 인증정보를 등록해야한다. 각 PC의 고유한 SSH 키를 깃허브에 등록해줘야 한다.
    따라서 CMD를 열어 SSH 키를 생성해준다.

    ssh-keygen -t rsa -C "[깃허브 이메일]"

    cf. 중간에 나오는 입력창들은 모두 Enter로 넘어가 기본 값으로 설정한다.


  1. 생성 완료 메시지에 뜨는 키 생성경로에 들어가 pub 파일을 확인한다. pub 파일을 메모장으로 열어 내용들을 복사하한다.

  1. 깃허브에 접속한 다음 프로필의 [settings] -> [SSH and GPG keys]를 선택하고 [New SSH Key]를 눌러 새로운 키를 등록하는데, 여기에 아까 복사 해둔 키를 붙여넣기하여 SSH 키를 추가해준다.



해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다.
신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 384쪽

추가 참고: https://www.redhat.com/ko/topics/devops/what-is-ci-cd

profile
IT, 개발 관련 정보들을 기록하는 장소입니다.
post-custom-banner

0개의 댓글