이전글은 아래 링크참고
https://dangammtech.tistory.com/37
GitHub Actions로 자동 소스코드 보안 진단 구축하기: DevSecOps 실전 가이드
최근 개발 환경에서는 보안(Security)·품질(Quality)·테스트(Test) 가 코드 작성만큼이나 중요한 요소가 되었습니다.이제는 개발자가 직접 모든 파일을 확인하며 보안 문제를 찾아내기보다,CI/CD 파이
dangammtech.tistory.com
🔎 GitHub Actions란?
GitHub Actions는 코드를 push하거나 PR을 만들 때 자동으로 어떤 작업을 실행해주는 자동화(Workflow) 엔진입니다.
대표적인 사용 예:
- 코드 테스트/빌드 (pytest, jest 등)
- 코드 스타일 검사 (black, flake8)
- 보안 스캔 (Bandit, pip-audit)
- Docker 이미지 빌드 & 배포
- Slack/Jira 등 외부 서비스 알림
우리가 만들고 싶은 것도 이 중 하나죠:
“Python 코드가 Git에 올라갈 때마다 자동으로 보안 진단 + 테스트를 돌리고, 결과를 슬랙/지라에 연동해 주는 파이프라인”
이걸 GitHub 웹 화면(GUI)에서 어떻게 설정하는지 단계별로 살펴보겠습니다.
1️⃣ GitHub Actions 화면으로 이동하기
- GitHub에서 레포지토리를 연다
- 상단 탭 중에서 “Actions” 클릭
처음 들어가면 GitHub에서 여러 가지 템플릿을 추천해 줍니다.
- “Python application”
- “Node.js”
- “Deploy to …”
등의 템플릿이 보일 거예요.
2️⃣ 템플릿 선택 또는 직접 만들기
GitHub Actions를 GUI에서 설정하는 방법은 크게 두 가지가 있습니다.
방법 A. 템플릿 기반으로 시작하기
- Actions 탭에서 Python application 템플릿을 찾는다
- 템플릿 카드 안의 “Configure” 또는 “Set up this workflow” 버튼 클릭
- 자동으로 .github/workflows/python-app.yml 같은 파일이 생성되며
- 브라우저 상에서 YAML을 편집할 수 있는 화면이 나타난다
이 상태에서 기본 파이썬 테스트 flow를 살짝 수정해서
Bandit 등을 추가하는 방식으로 사용하면 됩니다.
방법 B. 완전 새 워크플로우 만들기
- Actions 탭 → 상단이나 중간쯤에 있는 “set up a workflow yourself” 링크 클릭
- .github/workflows/main.yml 같은 기본 이름으로 비어 있는 YAML 에디터가 나타남
- 여기에 직접 Workflow 내용을 써 넣고 Commit
개발자 입장에서는 B 방법이 더 자유도가 높고, 처음엔 A 방법으로 시작했다가 B로 옮겨가는 패턴이 많습니다.
3️⃣ GUI에서 Workflow YAML 편집하기
브라우저 에디터 상단에는 파일 이름, 브랜치, Commit 메시지 등을 설정하는 UI가 있고,
아래에는 YAML을 직접 수정할 수 있는 코드 영역이 있습니다.
예를 들어, Python 보안/테스트용 간단한 Workflow를 만들어 보겠습니다.
name: Security CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
security-check:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Run tests
run: |
pytest
- name: Run Bandit security scan
run: |
bandit -r app -ll
GUI에서 이렇게 작성 후, 오른쪽 상단의 “Commit changes” 버튼을 누르면
해당 YAML 파일이 레포에 커밋되고,
바로 Actions 탭에 새로운 Workflow가 생성됩니다.
4️⃣ Commit 시 자동으로 Workflow 실행되는지 확인하기
이제 main 브랜치에 커밋을 하나 push 해보면,
- GitHub Actions 탭에 새 실행(history)이 생기고
- 각 Step(Checkout, Set up Python, Install dependencies, Run tests, Run Bandit)이 순서대로 실행됩니다.
Actions 화면에서:
- 각각의 Step을 클릭하면
- 실제 실행된 로그, 에러 메시지, Bandit 출력 등을 GUI로 확인할 수 있습니다.
이 로그를 보면서 어디서 실패하는지, 어떤 취약점이 검출됐는지까지 웹에서 바로 확인할 수 있습니다.
5️⃣ GitHub Secrets를 Workflow에서 사용하는 방법 (GUI 연계)
1편에서 만든 GitHub Secrets는 GUI에서 만든 Workflow 안에서 바로 사용할 수 있습니다.
예를 들어 Slack Webhook을 secret으로 등록했다면:
- name: Notify Security result to Slack
env:
SLACK_WEBHOOK_URL: ${{ secrets.SECURITY_SLACK_WEBHOOK }}
run: |
python tools/security_gate.py bandit-report.json pip-audit-report.json
GUI에서 YAML 편집할 때도 똑같이 secrets.SECURITY_SLACK_WEBHOOK 형태로 사용하면 됩니다.
Secrets 이름이 정확한지만 맞춰주면,
코드/레포에는 실제 URL이 전혀 보이지 않고,
GitHub Actions 실행 시에만 적절한 값이 주입됩니다.
6️⃣ 특정 브랜치에만 Workflow 적용하고 싶다면?
on: 섹션에서 브랜치를 조정하면 됩니다.
on:
push:
branches: [ "main", "develop" ]
pull_request:
branches: [ "main" ]
- main, develop에 push → CI 실행
- main을 대상으로 하는 PR → CI 실행
- 나머지 브랜치는 CI 스킵
이 설정도 모두 GUI에서 YAML만 수정하면 됩니다.
7️⃣ GUI에서 예전 Workflow 수정하기
이미 만들어 놓은 Workflow를 수정하고 싶다면:
- 레포 상단 메뉴에서 Actions 탭 클릭
- 왼쪽 사이드바에 있는 Workflow 이름 선택 (예: Security CI)
- 오른쪽 상단의 “Edit workflow” 클릭
- YAML을 수정한 뒤, 다시 Commit changes 버튼으로 저장
이렇게 하면 새 커밋부터 수정된 설정이 적용됩니다.
'Tech' 카테고리의 다른 글
| 워드프레스 자동 포스팅 이미지 리사이징 해결 방법 | Python API 이미지 최적화 (feat. 중앙정렬) (0) | 2026.02.01 |
|---|---|
| 8년차 FullStack개발자, DevSecOps로 전환을 결심하다 [1] (0) | 2026.01.25 |
| GitHub Actions로 자동 소스코드 보안 진단 구축하기: DevSecOps 실전 가이드 (0) | 2025.12.05 |
| GitHub Webhook을 Slack과 연결하니 "no_text" 오류 발생? 이렇게 해결했습니다 (0) | 2025.11.18 |
| [AWS] AWS Bedrock 서울리전 정식 출시 (0) | 2024.11.15 |