콘텐츠로 이동

환경 만들기

기존 활성 환경에서 브랜치하여 새 환경을 만들 수 있습니다. 이 프로세스는 소스 데이터베이스를 복제하고 선택적으로 구성 리소스를 복사하여 변경 사항을 개발하거나 테스트할 수 있는 격리된 작업 공간을 제공합니다.


  1. 백엔드 콘솔 상단 탐색 모음에서 환경 선택기 드롭다운을 엽니다.
  2. + 환경 만들기 버튼을 클릭합니다.
  3. 다음 구성 옵션이 포함된 모달 대화 상자가 나타납니다.
  • 브랜치 소스: 브랜치할 소스 환경을 선택합니다. active 상태의 환경만 소스로 사용할 수 있습니다.
  • 환경 이름: 새 환경의 고유한 이름을 입력합니다(예: staging, feature-auth, qa-sprint-12). 이름에는 영숫자, 하이픈, 밑줄만 포함할 수 있습니다.

소스 데이터베이스 복제 방식을 선택합니다:

  • Full(스키마 + 데이터): 모든 테이블 구조와 행 데이터를 포함한 소스 데이터베이스의 전체 복사본을 만듭니다. 테스트 또는 QA를 위한 현실적인 데이터가 필요할 때 사용합니다.
  • System(스키마만): 행 데이터 없이 데이터베이스 스키마(테이블, 열, 인덱스, 관계, 열거형, 뷰)만 복사합니다. 빈 데이터 세트로 시작하려는 깨끗한 개발 환경에 사용합니다.

선택적으로 소스 환경에서 리소스 구성을 복사합니다. 각 옵션은 체크박스로 제어되며 ProjectOwner 역할이 필요합니다:

  • 파일 스토리지 공급자: 파일 스토리지 공급자 구성(S3, GCS, Azure, Filestack)을 새 환경에 복사합니다. 복사된 각 공급자에는 새로운 고유 식별자가 할당됩니다.
  • 게이트웨이 라우트: 사용자 지정 API 게이트웨이 라우트 및 webhook을 복사합니다. 새 환경에서 라우팅 구성을 유지합니다.
  • 보안 구성: CORS 원본 및 속도 제한 설정을 복사합니다. 새 환경이 부모와 동일한 네트워크 정책을 상속하도록 보장합니다.
  • 환경 변수: 환경 변수 키-값 쌍을 복사합니다. 새 환경이 소스와 동일한 구성 비밀로 시작할 수 있게 합니다.

참고: 보안상의 이유로 인증 공급자는 의도적으로 복사 옵션에서 제외됩니다. OAuth 클라이언트 비밀, Cognito 자격 증명 및 기타 인증 키는 실수로 자격 증명을 공유하는 것을 방지하기 위해 환경별로 독립적으로 구성해야 합니다.

  1. 브랜칭 프로세스를 시작하려면 환경 만들기를 클릭합니다.

복사 옵션이 있는 환경 브랜칭 모달


새 환경을 만들면 다음 순서가 발생합니다:

  1. 검증: 시스템은 환경 이름이 고유하고 소스 환경이 active 상태인지 확인합니다.
  2. 레코드 생성: 새 환경 레코드가 생성되고 플랫폼의 구성 저장소에서 프로젝트에 등록됩니다.
  3. 데이터베이스 복제: 소스 PostgreSQL 데이터베이스가 복제됩니다. Full 모드에서는 모든 데이터가 포함되고, System 모드에서는 스키마(테이블 구조)만 복사됩니다.
  4. 데이터베이스 사용자: 복제된 환경을 위한 새로운 보안 데이터베이스 자격 증명이 자동으로 프로비저닝됩니다.
  5. 구성 등록: 새 환경이 프로젝트의 전역 설정에 연결됩니다.
  6. 리소스 복사: 선택한 경우 파일 공급자, 게이트웨이 라우트, 보안 구성 및 환경 변수가 소스에서 새 환경으로 복사됩니다.
  7. 상태 활성화: 환경 상태가 active로 전환되고 사용할 수 있게 됩니다.

어떤 단계라도 실패하면 시스템은 자동 롤백을 수행합니다: 복제된 데이터베이스와 관련 자격 증명이 제거되어 고아 리소스가 남지 않도록 합니다.


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"
}
}
}
}
필드유형필수설명
projectIdString프로젝트의 고유 식별자
nameString새 환경의 이름
sourceEnvironmentString브랜치할 환경의 이름
modeString복제 모드: "full" 또는 "system"
copyFileProvidersBoolean아니오파일 스토리지 공급자 구성 복사
copyGatewayRoutesBoolean아니오사용자 지정 API 게이트웨이 라우트 복사
copySecurityConfigBoolean아니오CORS 및 속도 제한 설정 복사
copyEnvironmentVariablesBoolean아니오환경 변수 키-값 쌍 복사
  • 복사 플래그 없이 환경을 만들려면 표준 프로젝트 액세스가 필요합니다.
  • 복사 플래그(copyFileProviders, copyGatewayRoutes, copySecurityConfig, copyEnvironmentVariables) 중 하나를 활성화하려면 ProjectOwner 역할이 필요합니다. 이러한 작업에는 민감한 구성 데이터 복사가 포함되기 때문입니다.