GitHub Actions으로 배포 자동화해 보기(a.k.a CI/CD) – 1편
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 add
와 git commit
명령어를 사용하여 로컬 저장소의 변경 내역과 파일을 준비합니다.
- 스테이지는 변경 사항을 모아놓는 곳이며, 리포지토리에 올리기 전에 변경 사항을 스테이징합니다.
git branch -M main
과 git push origin main
명령어를 사용하여 변경 내역을 깃허브 리포지토리에 푸시합니다.
2.5 깃허브 리포지토리 확인하기
- 깃허브에 접속하여 리포지토리를 확인하면 커밋할 때 입력한 메시지와 함께 코드가 업로드된 것을 확인할 수 있습니다.
핵심 요약
- CI는 개발자를 위해 빌드와 테스트를 자동화하는 과정이고, CD는 CI 작업을 완료한 후 실행되는 작업으로, 배포 준비가 된 코드를 자동으로 서버에 배포하는 작업을 자동화하는 것을 의미합니다.
- 깃허브는 깃과 연동해 작업한 코드를 저장할 수 있는 서비스입니다.