오늘은 부트캠프 64일차이다. 오늘은 오전에 CI/CD를 공부를 하고 테스트 코드를 만들고 Git actions를 사용해서 자동화로 배포를 해보려고 시도했지만 쉽지만은 않았고, 내일은 저번 프로젝트에 대한 테스트 코드를 만들어 보고 aws에 배포하는 것까지 반드시 끝내야겠다. 다음주부터 당장 마지막이라고 생각이 들어 너무 조바심을 가지고 공부하는 것 같아서 조금 편안한 마음을 가지고 이번주를 시작해야겠다.
오늘 배운 것
1. GitHub Action란?
- GitHub Action는 코드 저장소로 유명한 GitHub에서 제공하는 CI/CD를 위한 서비스이다. 당연히 GitHub에서 코드를 관리하고 있는 소프트웨어 프로젝트에서 사용할 수 있으며 개인은 누구나 GitHub에서 코드 저장소를 무료로 만들 수 있다.
- GitHub Actions를 사용하면 자동으로 코드 저장소에서 어떤 이벤트가 발생했을 때 특정 작업이 일어나게 하거나 주기적으로 어떤 작업들을 반복해서 실행시킬 수 있다. 누군가가 GitHub에 Pull Request를 생성하게 되면 GitHub Actions를 통해 해당 코드 변경분에 문제가 없는지 각종 검사를 진행할 수 있고, 어떤 새로운 코드가 메인 브렌치에 push되면 GitHub Actions를 통해 소프트웨어를 빌드하고 상용 서버에 deploy할 수도 있다.
- 이렇게 소프트웨어 프로젝트에서 지속적으로 수행해야하는 반복 작업들을 CI/CD라고 부른다. 사람이 매번 직접 하기에는 비효율적이고 실수할 위험이 있기에 GitHub Actions와 같은 자동화시키는 것이 유리하다.
2. 워크플로우란?
- 워크플로우는 자동화 시켜놓은 작업 과정을 뜻하며 YAML 파일을 통해 어떤 작업(job)들이 언제 실행되야 하는지를 설정한다.
- 각 워크플로우는 독립된 환경에서 실행되는 작업이 적어도 한 개 이상으로 구성되며, 각 작업에는 작업ID가 부여되고 세부 내용(실행 환경, 작업 단계 등)이 명시됩니다.
- 하나의 작업은 보통 순차적으로 수행되는 여러 대의 단계로 정의되며, 각 단계는 단순한 커맨드일 수도 있고 추상화된 액션일 수도 있다.