00:00:00GitHub에서 매우 흥미로운 도구를 출시했습니다. '에이전틱 워크플로(agentic workflows)'라고 불리는 이 도구는
00:00:05자연어 프로그래밍을 통해 워크플로를 조율하는 방식을 제공하여 CI/CD 파이프라인 관리를 단순화하는 것을 목표로 합니다.
00:00:12상당히 멋진 아이디어이며, 저장소를 유지 관리하고 조정하는 방식을 현대화할 수도 있을 것 같습니다.
00:00:18이번 영상에서는 GitHub 에이전틱 워크플로가 어떻게 작동하는지 자세히 살펴보고,
00:00:24여러분의 저장소에 직접 설정하는 방법도 보여드리겠습니다. 아주 재미있을 거예요.
00:00:28그럼 시작해 볼까요?
00:00:30GitHub 에이전틱 워크플로는 GitHub Next와 Microsoft Research가 진행 중인
00:00:40'Continuous AI(지속적 AI)'라는 더 넓은 비전의 일환으로 발표된 새로운 프로젝트입니다. 목표는 단순한 자동화를 넘어
00:00:47'생산적 모호성(Productive Ambiguity)'이라는 개념으로 나아가는 것입니다. 기존의 GitHub Actions는 결정론적입니다.
00:00:54즉, 'X가 발생하면 Y를 수행하라'는 방식이죠. 하지만 버그 분류, 문서 업데이트,
00:01:00또는 아키텍처 결함 발견과 같은 작업에는 판단력이 필요합니다. 에이전틱 워크플로를 사용하면
00:01:06그러한 판단 과정을 평이한 마크다운으로 설명하고 실행할 수 있습니다. 하지만 이는 또한
00:01:11어떤 안전장치가 필요하다는 의미이기도 하며, 이것이 바로 '액션 우선(actions-first)' 접근 방식을 취하는 이유입니다.
00:01:16기본적으로 팀 전체에 공개되는 로그, 비밀번호 관리, 감사 가능한 권한 등
00:01:23GitHub Actions의 생태계 전체를 그대로 상속합니다. 따라서 표준 CI/CD 파이프라인의 가드레일을 유지하면서
00:01:29에이전트의 지능을 활용할 수 있습니다. 이러한 에이전트들은 기본적으로 최소 권한으로 실행되므로,
00:01:35코드를 분석하고 개선 사항을 제안할 수는 있지만, 명시적인 승인이나
00:01:41사전에 정의된 정화된 경로 없이는 쓰기 작업을 수행할 수 없습니다. 즉, 보안 가드레일을 갖춘
00:01:46AI DevOps 어시스턴트를 만드는 것이 핵심 아이디어입니다. 설정 방법도 매우
00:01:52간단합니다. GitHub CLI 확장을 사용하여 추가하기만 하면 바로 사용할 수 있습니다.
00:01:57워크플로 자체는 두 단계 과정으로 진행됩니다. 먼저 에이전트에 대한 지침이 담긴 마크다운 파일을 만든 다음,
00:02:03해당 파일에 'gh aw compile' 명령을 실행합니다. 그러면 시스템이 자연어 지침을 읽고
00:02:10이를 지정된 '.log.yaml' 파일에 저장되는 강력하고 보안이 유지된 GitHub Actions 워크플로로 변환합니다.
00:02:16그런 다음 변경 사항을 저장소에 푸시하면 에이전트가 자동으로 활성화됩니다. 그럼 실제로 어떻게 작동하는지
00:02:22데모를 통해 살펴보겠습니다. 여기 빈 프로젝트를 하나 만들었는데요,
00:02:29우선 몇 가지 데이터 변수가 포함된 간단한 파이썬 파일을 생성하겠습니다.
00:02:34이 파일은 잠시 후에 다시 살펴보겠지만, 지금은 이 정도로 충분합니다.
00:02:39이제 '.github' 폴더를 만들고 그 안에 'workflows' 하위 폴더도 만들어야 합니다.
00:02:46에이전틱 워크플로가 마크다운 파일을 컴파일할 때 위치를 찾을 수 있도록 이 명명 규칙을 반드시 따라야 합니다.
00:02:51그런 다음 'agent.md'라는 마크다운 파일을 만듭니다. 이 파일은 크게
00:02:57두 부분으로 구성됩니다. 첫 번째 부분은 헤더로, 에이전트가 가질 권한을 지정합니다.
00:03:03또한 어떤 AI 공급자를 사용할지도 지정해야 합니다. 저의 경우
00:03:09Copilot을 사용하겠습니다. 그 이후의 모든 내용은 자유롭게 작성할 수 있습니다. 에이전트가 수행해야 할 작업을
00:03:15자연어로 설명하면 됩니다. 이번 데모에서는 코드 커밋을 확인하고,
00:03:21새 코드의 Big O 복잡도를 계산하여 비효율적인 경우 이를 식별하고
00:03:27더 나은 최적화 방법을 제안하는 'Big O 감사자'를 만들어 보겠습니다. 또한 조사 결과를
00:03:33한눈에 보기 쉽게 마크다운 형식의 표로 표시해 달라고 요청하겠습니다. 이제 루트 디렉터리로 돌아가서
00:03:38'gh-aw-compile'을 실행합니다. 모든 것이 올바르다면 새 워크플로가
00:03:45컴파일되었다는 메시지가 뜹니다. 이제 파일 트리를 살펴보면,
00:03:51스크립트에 의해 자동으로 컴파일된 '.log.yaml' 파일과 GitHub Actions 로그 파일이 포함된
00:03:57'aw'라는 새 폴더가 생긴 것을 알 수 있습니다. 이제 이 변경 사항을 저장소에 푸시할 수 있습니다.
00:04:03마지막으로 해야 할 일은 에이전틱 워크플로가 액세스할 수 있도록 선택한 AI 공급자의 API 키를 시크릿으로 설정하는 것입니다.
00:04:10저는 Copilot을 엔진으로 선택했으므로 여기 제 Copilot GitHub 토큰을 제공하겠습니다.
00:04:15모든 설정이 완료되었으니, 이 변경 사항을 GitHub에 푸시하겠습니다. 이제
00:04:21에이전틱 워크플로가 설정되어 활성화될 준비가 되었습니다. 제 워크플로를
00:04:26모든 새 풀 리퀘스트 시 활성화되도록 구성했으니, 테스트를 위해 새 풀 리퀘스트를 만들어 보겠습니다.
00:04:32저장소에 새 브랜치를 생성하겠습니다. 그리고 이 새 브랜치의 'main.py' 파일에
00:04:37일치하는 레코드를 검색하는 새 함수를 추가하겠습니다. 하지만 저는 일부러 이 함수의
00:04:44Big O 복잡도를 매우 비효율적인 O(N²)으로 작성했습니다. 따라서 이 코드로 풀 리퀘스트를 열면
00:04:50에이전트가 이 함수를 비효율적이라고 판단하고 개선 사항을 제안해야 합니다.
00:04:56한번 해보죠. 코드를 추가하고 변경 사항을 푸시한 다음, GitHub로 돌아와서
00:05:02새 풀 리퀘스트를 열겠습니다. 리퀘스트를 열면 즉시 에이전틱 워크플로 파이프라인이
00:05:08활성화되어 코드 변경 사항을 처리하기 시작하는 것을 볼 수 있습니다. 파이프라인이 완료되는 데는
00:05:13약 3분 정도 걸렸습니다. 이제 'Big O 감사자'가 실제로 저희 함수를
00:05:20비효율적이라고 식별한 것을 볼 수 있습니다. 제가 요청한 대로 잘 정돈된 표와 함께
00:05:26그 이유에 대한 자세한 설명을 제공하고, 이어서 더 나은 솔루션을 제안하는 섹션이 나옵니다.
00:05:33최적화된 솔루션을 구현했을 때 얻을 수 있는 성능 향상 효과까지 계산해 주네요.
00:05:39이 예시를 통해 아주 최소한의 설정만으로 에이전틱 워크플로를 사용하여 코드베이스에
00:05:44추가적인 안전 점검을 적용하는 방법을 확인하셨기를 바랍니다. 여기서 '생산적 모호성'이 발휘됩니다.
00:05:51에이전트에게 코드 품질 및 성능 유지와 같은 고수준의 목표를 해결하기 위해 자체적인 판단을 사용하도록 요청할 수 있는 것이죠.
00:05:56물론 이것은 아직 GitHub Next의 연구 프로토타입 단계이므로 지연 시간이 발생할 수 있으며,
00:06:01최종 점검을 확인하려면 여전히 사람의 개입이 필요합니다. 하지만 이것은
00:06:07AI 에이전트의 힘을 빌려 CI/CD 파이프라인을 자율적으로 모니터링하고 관리할 수 있는
00:06:14'Continuous AI'라는 더 넓은 비전을 보여줍니다. 자율 관리 시스템에 대해 말씀드리자면,
00:06:19프로덕션 환경을 관리하는 분들은 원활한 운영을 유지하는 것이 24시간 내내 이루어져야 하는 작업임을 잘 아실 겁니다.
00:06:25그래서 여러분이 잠든 사이 대기 중 인시던트 처리를 도와주는 AI SRE를 최근 출시한
00:06:31Better Stack을 확인해 보시길 추천합니다. 그러면 긴급 장애 처리에 매달리는 대신 실제 코드 배포에 집중할 수 있습니다.
00:06:38자, 준비한 내용은 여기까지입니다. 이 영상이 유용하고
00:06:42정보가 되었다면 영상 아래의 '좋아요' 버튼을 눌러 알려주세요. 그리고
00:06:47저희 채널 구독도 잊지 마세요. 지금까지 Better Stack의 Andris였으며, 다음
00:06:52영상에서 뵙겠습니다.