엔지니어링 블로그

Symphony 포크해서 Github, Discord 연동으로 개조해보기

지난번 Symphony 리뷰에서 예고했던 대로, 직접 포크(Fork)해서 Github와 Discord 연동으로 수정해 실무에 적용해 보았습니다. 기존 Linear와 Slack 조합에서 벗어나 저의 워크플로에 맞게 개조한 내용을 공유합니다.

포크한 Github 주소는 이곳입니다: https://github.com/kimjj81/symphony

주요 변경 사항

  1. Github Labels 기반 워크플로 구축 Github에도 Labels에 상태를 추가해서 워크플로가 동작하게 만들었습니다. Github CLI(gh)를 설치해서 Symphony가 이를 관리하도록 연동했습니다.

  2. Git Clone 대신 Git Worktree 적용 Symphony의 기본 동작은 매번 git clone을 수행하는 것입니다. 하지만 로컬 장비에는 이미 저장소가 존재하므로, 경로를 연결하고 git worktree로 동작하게 변경했습니다. 디스크 공간 절약은 물론 속도도 훨씬 빠릅니다.

  3. Worktree 스크립트를 통한 로컬 테스트 환경 자동화 Worktree 생성 후 동작할 스크립트를 설정했습니다. .env처럼 .gitignore에 포함되어 있어 Clone으로 가져올 수 없는 환경 설정 데이터들을 복사하여 로컬 테스트 환경을 바로 구축할 수 있게 했습니다. 아마 Codex 환경에서 이미 Worktree를 사용하시던 분들이라면 익숙한 환경 구성일 것입니다.

  4. Issue & PR 기반 파이프라인 전체적인 작업 흐름을 Issue 등록 -> PR 생성 -> PR 완료 -> Issue 완료의 워크플로로 동작하게 설정했습니다.

  5. Webhook 연동 및 Polling 최적화 기본 동작은 8초마다 Github API를 Polling하는 방식입니다. 이를 개선하기 위해 Ngrok을 통해 Webhook 이벤트로 처리하도록 구성했습니다. 다만, 간혹 Webhook 처리가 누락되는 경우가 발생하여 Polling 방식도 유지하되, API 호출 낭비를 막기 위해 주기를 8초에서 30초로 늘렸습니다.

장점: 확실한 기록(History) 관리

Codex만으로 작업을 진행하다 보면 대화 내역 외에는 작업의 히스토리가 잘 남지 않는 문제가 있었습니다. 하지만 이렇게 Issue와 PR 기반의 워크플로로 전환하니 작업 지시와 결과가 기록으로 명확하게 남는다는 점이 가장 큰 장점입니다.

단점: 재작업(Rework) 시의 번거로움

작업 수행 후 재작업이 필요할 때 약간의 허들이 있습니다. 기존에는 Codex 대화창에 바로 수정 지시를 입력하면 됐지만, 지금은 Github에서 코멘트를 달고 라벨(Label)을 변경해 주어야 하는 번거로움이 있습니다. (물론 Github를 연동해 두면 Codex 내에서도 코멘트를 달고 라벨을 변경하는 것이 가능하긴 합니다.)

총평: 지시에서 위임으로

순수하게 Codex만 사용할 때는 AI에게 직접 ‘지시’를 내린다는 느낌이 강했습니다. 하지만 Symphony를 제 워크플로에 맞게 개조하여 Issue 시스템과 결합해 보니, 이제는 AI 동료에게 업무를 ‘위임(Delegate)‘하는 느낌이 훨씬 강해졌습니다. 단순한 코딩 어시스턴트를 넘어, 비동기적으로 협업하는 팀원 하나가 생긴 기분입니다.

Join the Investigation

Get the latest updates on my projects and indie hacking journey directly in your inbox.

No spam. Unsubscribe anytime.