환경 만들기
기존 활성 환경에서 브랜치하여 새 환경을 만들 수 있습니다. 이 프로세스는 소스 데이터베이스를 복제하고 선택적으로 구성 리소스를 복사하여 변경 사항을 개발하거나 테스트할 수 있는 격리된 작업 공간을 제공합니다.
새 환경 만드는 방법
섹션 제목: “새 환경 만드는 방법”- 백엔드 콘솔 상단 탐색 모음에서 환경 선택기 드롭다운을 엽니다.
- + 환경 만들기 버튼을 클릭합니다.
- 다음 구성 옵션이 포함된 모달 대화 상자가 나타납니다.
구성 필드
섹션 제목: “구성 필드”- 브랜치 소스: 브랜치할 소스 환경을 선택합니다.
active상태의 환경만 소스로 사용할 수 있습니다. - 환경 이름: 새 환경의 고유한 이름을 입력합니다(예:
staging,feature-auth,qa-sprint-12). 이름에는 영숫자, 하이픈, 밑줄만 포함할 수 있습니다.
브랜치 모드
섹션 제목: “브랜치 모드”소스 데이터베이스 복제 방식을 선택합니다:
- Full(스키마 + 데이터): 모든 테이블 구조와 행 데이터를 포함한 소스 데이터베이스의 전체 복사본을 만듭니다. 테스트 또는 QA를 위한 현실적인 데이터가 필요할 때 사용합니다.
- System(스키마만): 행 데이터 없이 데이터베이스 스키마(테이블, 열, 인덱스, 관계, 열거형, 뷰)만 복사합니다. 빈 데이터 세트로 시작하려는 깨끗한 개발 환경에 사용합니다.
소스에서 구성 복사
섹션 제목: “소스에서 구성 복사”선택적으로 소스 환경에서 리소스 구성을 복사합니다. 각 옵션은 체크박스로 제어되며 ProjectOwner 역할이 필요합니다:
- 파일 스토리지 공급자: 파일 스토리지 공급자 구성(S3, GCS, Azure, Filestack)을 새 환경에 복사합니다. 복사된 각 공급자에는 새로운 고유 식별자가 할당됩니다.
- 게이트웨이 라우트: 사용자 지정 API 게이트웨이 라우트 및 webhook을 복사합니다. 새 환경에서 라우팅 구성을 유지합니다.
- 보안 구성: CORS 원본 및 속도 제한 설정을 복사합니다. 새 환경이 부모와 동일한 네트워크 정책을 상속하도록 보장합니다.
- 환경 변수: 환경 변수 키-값 쌍을 복사합니다. 새 환경이 소스와 동일한 구성 비밀로 시작할 수 있게 합니다.
참고: 보안상의 이유로 인증 공급자는 의도적으로 복사 옵션에서 제외됩니다. OAuth 클라이언트 비밀, Cognito 자격 증명 및 기타 인증 키는 실수로 자격 증명을 공유하는 것을 방지하기 위해 환경별로 독립적으로 구성해야 합니다.
- 브랜칭 프로세스를 시작하려면 환경 만들기를 클릭합니다.

브랜칭 중 발생하는 일
섹션 제목: “브랜칭 중 발생하는 일”새 환경을 만들면 다음 순서가 발생합니다:
- 검증: 시스템은 환경 이름이 고유하고 소스 환경이
active상태인지 확인합니다. - 레코드 생성: 새 환경 레코드가 생성되고 플랫폼의 구성 저장소에서 프로젝트에 등록됩니다.
- 데이터베이스 복제: 소스 PostgreSQL 데이터베이스가 복제됩니다. Full 모드에서는 모든 데이터가 포함되고, System 모드에서는 스키마(테이블 구조)만 복사됩니다.
- 데이터베이스 사용자: 복제된 환경을 위한 새로운 보안 데이터베이스 자격 증명이 자동으로 프로비저닝됩니다.
- 구성 등록: 새 환경이 프로젝트의 전역 설정에 연결됩니다.
- 리소스 복사: 선택한 경우 파일 공급자, 게이트웨이 라우트, 보안 구성 및 환경 변수가 소스에서 새 환경으로 복사됩니다.
- 상태 활성화: 환경 상태가
active로 전환되고 사용할 수 있게 됩니다.
어떤 단계라도 실패하면 시스템은 자동 롤백을 수행합니다: 복제된 데이터베이스와 관련 자격 증명이 제거되어 고아 리소스가 남지 않도록 합니다.
GraphQL API
섹션 제목: “GraphQL API”Mutation: branchEnvironment
섹션 제목: “Mutation: branchEnvironment”mutation BranchEnvironment($input: BranchEnvironmentInput!) { branchEnvironment(input: $input) { success message environment { id name parentId parentName branchMode branchedAt status createdAt updatedAt } }}Variables:
{ "input": { "projectId": "f7e4a264-d659-4719-91e8-c2d74654e529", "name": "staging", "sourceEnvironment": "master", "mode": "full", "copyFileProviders": true, "copyGatewayRoutes": true, "copySecurityConfig": false, "copyEnvironmentVariables": true }}Response:
{ "data": { "branchEnvironment": { "success": true, "message": "Environment created successfully", "environment": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "name": "staging", "parentId": "master-env-id", "parentName": "master", "branchMode": "full", "branchedAt": "2026-03-08T20:00:00Z", "status": "active", "createdAt": "2026-03-08T20:00:00Z", "updatedAt": "2026-03-08T20:00:05Z" } } }}Input Fields
섹션 제목: “Input Fields”| 필드 | 유형 | 필수 | 설명 |
|---|---|---|---|
projectId | String | 예 | 프로젝트의 고유 식별자 |
name | String | 예 | 새 환경의 이름 |
sourceEnvironment | String | 예 | 브랜치할 환경의 이름 |
mode | String | 예 | 복제 모드: "full" 또는 "system" |
copyFileProviders | Boolean | 아니오 | 파일 스토리지 공급자 구성 복사 |
copyGatewayRoutes | Boolean | 아니오 | 사용자 지정 API 게이트웨이 라우트 복사 |
copySecurityConfig | Boolean | 아니오 | CORS 및 속도 제한 설정 복사 |
copyEnvironmentVariables | Boolean | 아니오 | 환경 변수 키-값 쌍 복사 |
권한 요구 사항
섹션 제목: “권한 요구 사항”- 복사 플래그 없이 환경을 만들려면 표준 프로젝트 액세스가 필요합니다.
- 복사 플래그(
copyFileProviders,copyGatewayRoutes,copySecurityConfig,copyEnvironmentVariables) 중 하나를 활성화하려면 ProjectOwner 역할이 필요합니다. 이러한 작업에는 민감한 구성 데이터 복사가 포함되기 때문입니다.