개발 생산성 향상을 위한 GitHub Actions: CI/CD 자동화
최근 지속적 통합(CI)과 지속적 배포(CD)의 중요성이 날로 커지고 있습니다. 이러한 흐름에 맞추어 GitHub Actions 가 점점 많이 사용되고 있는데요. 과거에는 Jenkins 를 주로 사용했지만 최근에는 비교적 접근성이 좋은 Github Action 을 더 많이 사용하고 있어 GitHub Actions 의 개념을 한번 정리해보았습니다. GitHub Actions 는 GitHub 에서 제공하는 CI/CD 서비스입니다. 개발자들은 GitHub 코드 저장소와 직접 연계된 자동화된 워크플로우를 비교적 손쉽게 구축할 수 있습니다. 1. 활용 사례 * 자동화된 배포: 새로운 기능이나 버전을 서버에 자동으로 배포 * 주기적 작업 실행: 데이터 수집, 처리 등의 정기적인 작업 자동화 * 테스트 자동화: 코드 변경 시 자동으로 테스트 실행 2. 개념 Workflow: * 자동화된 전체 프로세스를 정의 * YAML 형식으로 작성되며, 프로젝트의 최상위 개념 Event: * Workflow를 트리거하는 특정 활동이나 조건 * 예: 특정 브랜치로의 푸시, Pull Request 생성 등 Job: * 독립된 실행 환경 * 가상 머신 또는 컨테이너 Ex: Lunux(ubuntu-latest), Window 에서 수행되는 작업 단위 Steps: * Job 내부에서 순차적으로 실행되는 개별 작업들 * 셸 명령어 실행이나 Action 사용 등을 포함 Action: * GitHub Actions의 꽃 * 재사용 가능한 작업 단위로, GitHub Marketplace에서 다양한 Action 활용 가능 * Ex: actions/checkout@v4 (레포지토리를 워크플로우 실행 환경으로 가져옴. 복제) Runner: * Workflow 를 실행하는 서버 인스턴스 * GitHub 에서 제공하는 호스팅 Runner 또는 사용자가 직접 관리하는 Self-hosted Runner 선택 가능 3. 고려사항 * 보안: 민감한 정보는 GitHub Secrets 를 활용하여 안전하게 관리 * 모듈화: 재사용 가능한 Action 개발을 통한 생산성 향상 이런 자동화 프로세스를 이용하여 팀의 생산성을 높여 보세요. 반복적인 작업에서 벗어나 더 가치 있는 업무에 집중할 수 있습니다. https://docs.github.com/ko/actions