골든래빗

GitHub Actions으로 배포 자동화해 보기(a.k.a CI/CD) – 1편

thumbnail

GitHub Actions으로 배포 자동화해 보기(a.k.a CI/CD) - 1편

1. CI/CD 소개

1.1 지속적 통합(CI)의 의미

  • CI는 "Continuous Integration"의 약자로, 개발자들이 새 코드를 통합하는 프로세스를 자동화하는 것을 말합니다.
  • CI는 코드 저장소에 변경 사항이 푸시되면 자동으로 코드를 빌드하고 테스트하는 과정을 포함합니다.
  • 이를 통해 코드 변경 내역이 리포지토리에 반영되기 전에 코드 품질을 확인할 수 있습니다.

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

  • CD는 CI 작업을 완료한 후 실행되는 작업입니다.
  • 지속적 제공(Continuous Delivery)은 코드를 성공적으로 빌드하고 테스트한 후 코드 저장소(예: GitHub)에 자동으로 업로드하는 과정을 말합니다.
  • 지속적 배포(Continuous Deployment)은 지속적 제공 단계를 통과한 코드 변경 내역을 실제 배포 환경(예: AWS)에 보내는 것을 의미합니다.
  • 지속적인 배포는 지속적 제공의 다음 단계까지 자동화합니다.

2. 깃허브 리포지토리 생성하고 코드 푸시하기

2.1 깃허브 리포지토리 생성하기

  • CI 작업을 위해 코드를 업로드할 깃허브 리포지토리를 생성해야 합니다.
  • 깃허브 리포지토리를 생성하면 SSH로 접근할 수 있는 주소를 제공합니다.

2.2 로컬 저장소를 깃 저장소로 초기화하기

  • 로컬에서 스프링 프로젝트를 깃 저장소로 초기화합니다.
  • git init 명령어를 사용하여 특정 폴더를 깃 저장소로 만들 수 있습니다.

2.3 깃허브 리포지토리와 로컬 깃 저장소 연결하기

  • git remote 명령어를 사용하여 깃허브 리포지토리와 로컬 깃 저장소를 연결합니다.
  • 깃허브 리포지토리 주소는 이전에 복사해둔 주소를 사용합니다.

2.4 커밋하고 코드 푸시하기

  • git addgit commit 명령어를 사용하여 로컬 저장소의 변경 내역과 파일을 준비합니다.
  • 스테이지는 변경 사항을 모아놓는 곳이며, 리포지토리에 올리기 전에 변경 사항을 스테이징합니다.
  • git branch -M maingit push origin main 명령어를 사용하여 변경 내역을 깃허브 리포지토리에 푸시합니다.

2.5 깃허브 리포지토리 확인하기

  • 깃허브에 접속하여 리포지토리를 확인하면 커밋할 때 입력한 메시지와 함께 코드가 업로드된 것을 확인할 수 있습니다.

핵심 요약

  • CI는 개발자를 위해 빌드와 테스트를 자동화하는 과정이고, CD는 CI 작업을 완료한 후 실행되는 작업으로, 배포 준비가 된 코드를 자동으로 서버에 배포하는 작업을 자동화하는 것을 의미합니다.
  • 깃허브는 깃과 연동해 작업한 코드를 저장할 수 있는 서비스입니다.