Skip to main content

Function 코드 버전 관리 (GitHub 연동)

왜 GitHub와 연동하나요?

Integration Hub UI에서 Function Node공통 함수 코드를 수정하면 원본은 S3에 저장되고, 실행 시점에는 Lambda의 EFS로 복사되어 로드됩니다. 이 원본 코드는 변경 이력을 추적하고, 코드 리뷰나 이전 버전으로의 롤백을 지원하기 위해 GitHub 저장소로도 동기화됩니다.

저장소 구조

Function 코드가 동기화되는 저장소는 다음과 같은 경로 규칙을 따릅니다.

{stage}/{scope}/{flowId}/{flowName}/Function/{nodeKey}.js # 개별 Function Node 코드
{stage}/{scope}/{flowId}/{flowName}/functions.js # Flow 공통 함수 코드
  • stage: 실행 환경(dev/staging/prod)
  • scope: 고객사/시스템을 식별하는 값
  • flowId, flowName: Flow의 ID와 이름
  • {nodeKey}.js: Flow 내 각 Function Node의 코드 (Node 별로 파일이 분리되어 있어, Node 단위로 변경 이력과 diff를 확인할 수 있습니다)

동기화 방식

코드가 저장될 때마다 GitHub REST API를 이용해 아래 순서로 커밋이 생성됩니다.

  1. 대상 branch의 최신 커밋 정보 조회
  2. 변경된 파일 내용으로 Git Tree 생성
  3. 생성된 Tree로 Commit 생성
  4. Branch 생성 또는 기존 Branch 갱신

이 과정을 통해 UI에서의 모든 코드 저장 동작이 Git 커밋 이력으로 남아, 언제 누가 어떤 코드를 변경했는지 추적할 수 있습니다.