도구
GitHub Actions 강좌 #10 운영 패턴: 경로 필터, concurrency, 디버깅, 비용 점검
모노레포에서 바뀐 부분의 워크플로만 깨우는 paths 필터와 그 한계, 중복 실행을 정리하는 concurrency 그룹과 cancel-in-progress의 판단 기준, timeout-minutes를 기본 습관으로 삼아야 하는 이유를 정리합니다. 디버그 로그와 재실행 같은 디버깅 도구, 사용량 화면으로 하는 비용 점검까지 일상 운영의 패턴을 모아 시리즈를 마무리하겠습니다.
GitHub Actions 강좌 #9 보안 강화: permissions 최소화, SHA 고정, pull_request_target
GITHUB_TOKEN의 기본 권한을 읽기로 줄이고 잡별로 필요한 권한만 여는 최소화 방법부터 시작해, 태그가 가변이라 생기는 서드파티 액션의 공급망 위험과 SHA 고정, Dependabot 자동 업데이트 조합을 다룹니다. 시크릿이 노출되는 대표 경로인 pull_request_target의 함정과 제목·브랜치명 보간이 만드는 스크립트 인젝션 방어까지 정리하겠습니다.
GitHub Actions 강좌 #8 셀프호스티드 러너: 도입 기준, 등록, 보안 원칙
호스티드 러너로 부족해지는 세 가지 상황인 내부망 접근, 비용, 특수 하드웨어를 도입 기준으로 정리하고, 러너 등록 절차와 라벨로 잡을 라우팅하는 방법을 다룹니다. 퍼블릭 저장소에 셀프호스티드 러너를 쓰면 안 되는 이유와 임시 러너 운영 원칙, 쿠버네티스에서 러너를 자동 확장하는 actions-runner-controller까지 짚겠습니다.
GitHub Actions 강좌 #7 AWS 배포와 OIDC: 액세스 키 없는 자격 증명
액세스 키를 secrets에 저장하는 방식의 유출과 로테이션 문제를 짚고, 워크플로가 단기 토큰으로 AWS 역할을 맡는 OIDC 연동의 동작 원리를 토큰 교환 흐름으로 설명합니다. AWS 쪽 신뢰 구성과 sub 클레임 제한, configure-aws-credentials 액션과 id-token 권한 설정, S3 정적 사이트 배포 예제까지 완성해 배포 파이프라인의 자격 증명 문제를 끝내겠습니다.
GitHub Actions 강좌 #6 Docker 빌드와 GHCR 푸시: 태그 전략과 빌드 캐시
컨테이너 이미지를 빌드해 GitHub Container Registry에 올리는 표준 파이프라인을 조립합니다. GITHUB_TOKEN만으로 끝나는 GHCR 로그인, metadata-action이 이벤트에 따라 태그를 자동 결정하는 원리, build-push-action과 gha 캐시로 빌드 시간을 줄이는 설정까지 다루고, 브랜치·태그·SHA별 태그 전략의 실무 기본형을 정리하겠습니다.
GitHub Actions 강좌 #5 재사용: composite action과 reusable workflow
여러 워크플로와 저장소에 반복되는 스텝 뭉치를 부품으로 만드는 두 방법을 다룹니다. 스텝 묶음을 포장하는 composite action의 action.yml 작성법, 잡 단위 전체를 호출하는 reusable workflow의 workflow_call과 inputs, secrets 전달, 두 방식의 선택 기준과 조직 차원에서 공용 저장소로 표준화하는 패턴까지 정리하겠습니다.
GitHub Actions 강좌 #4 매트릭스·캐시·아티팩트: 조합 실행과 시간·비용 절약
한 잡 정의를 여러 버전과 OS 조합으로 늘리는 매트릭스 전략을 include, exclude, fail-fast 옵션과 함께 다루고, 의존성 설치 시간을 줄이는 actions/cache의 key와 restore-keys 설계, setup 계열 액션의 내장 캐시 옵션을 정리합니다. 잡 사이에 파일을 넘기는 아티팩트의 업로드와 다운로드, 보존 기간 설정까지 실행 시간과 러너 비용을 줄이는 관점으로 묶겠습니다.
GitHub Actions 강좌 #3 시크릿·변수·환경: secrets vs vars, environment 승인 관문
워크플로에 비밀 값과 설정값을 넣는 두 통로인 secrets와 vars의 구분 기준과 조직, 저장소, environment 세 계층의 우선순위를 정리합니다. 로그 마스킹이 보호해 주는 것과 과신하면 안 되는 이유, environment의 보호 규칙으로 배포 앞에 승인자와 대기 시간을 거는 방법, 자동 발급되는 GITHUB_TOKEN의 정체까지 다루겠습니다.
GitHub Actions 강좌 #2 문법 핵심: 컨텍스트와 표현식, if 조건, 값 전달
워크플로 YAML의 문법을 체계적으로 잡습니다. github, env, steps 같은 컨텍스트와 표현식 문법, if 조건과 success·failure·always 함수로 스텝을 골라 실행하는 방법을 다루고, GITHUB_OUTPUT으로 스텝 사이에 값을 전달하는 법과 needs·outputs로 잡 사이의 순서와 데이터를 연결하는 법까지 정리하겠습니다.
GitHub Actions 강좌 #1 워크플로의 구조: 이벤트, 잡, 러너, 그리고 첫 실행
푸시할 때마다 손으로 반복하던 테스트와 빌드를 자동화하는 GitHub Actions의 뼈대를 잡습니다. 워크플로, 이벤트, 잡, 스텝, 러너라는 다섯 개념의 관계를 정리하고, 파이썬 테스트를 돌리는 첫 워크플로를 작성해 Actions 탭에서 결과를 읽는 법과 상태 배지까지 다루겠습니다. 트리거 이벤트의 종류와 러너의 무료 한도도 함께 짚습니다.
Teams 봇 입문: Bot Framework와 Graph API의 역할 구분
Teams에서 대화형 봇을 만들 때 필요한 구성 요소를 정리합니다. Graph API만으로 봇을 대신할 수 없는 이유(봇 정체성·앱 권한 제약), Azure Bot 리소스와 메시징 엔드포인트로 이루어진 봇의 동작 구조, 사용자가 먼저 말을 걸지 않아도 메시지를 보내는 선제 메시지와 대화 참조·선제 설치 우회, 멘션 없이 채널 메시지를 읽는 RSC 권한, 어댑티브 카드까지, 알림 봇에서 대화형 봇으로 가는 길을 다룹니다.
Power Automate vs Graph API: 업무 자동화, 언제 무엇을 쓰나
Microsoft 365 자동화의 두 경로를 비교합니다. 커넥터를 조립하는 로우코드 도구 Power Automate와 코드로 직접 호출하는 Graph API가 각각 잘하는 것, 트리거·승인 흐름·시민 개발이라는 Power Automate의 강점과 볼륨·복잡도·버전 관리에서 드러나는 한계, 프리미엄 커넥터와 라이선스라는 숨은 변수, 그리고 두 도구를 섞어 쓰는 실무 분업 기준까지 다룹니다.