Just describe what you need. Bkend builds it for you 🚀 
Get Started!
Sign In

프로젝트 : 환경(Environments)

개요

Environments 페이지는 프로젝트의 환경(dev, staging, production 등)을 관리하고 각 환경의 배포 상태를 확인할 수 있는 페이지입니다. 각 환경은 독립적인 데이터베이스 클러스터와 리전을 가지며, 환경별로 다른 설정과 데이터를 유지할 수 있습니다.
경로: /org/{orgSlug}/project/{projectSlug}/environments

주요 기능

1. 환경 목록 조회

표시 정보:
환경 이름
환경 타입 배지 (개발, 스테이징, 프로덕션, 커스텀)
배포 상태 배지 (생성 중, 준비됨, 활성, 실패, 삭제 중)
클라우드 제공자 (AWS, GCP, Azure)
리전 정보
클러스터 정보 (staging/prod 환경에만 표시)
생성일
에러 메시지 (배포 실패 시)
환경 분류:
프로덕션 환경: 별도 섹션으로 상단에 표시
기타 환경: 그리드 형태로 표시 (최대 3열)

2. 환경 생성 (현재 비활성화)

현재 Beta에서는 dev 환경 1개만 사용 가능하며, 환경 생성 기능은 비활성화되어 있습니다.
생성 대화상자 필드:
환경 이름: 1-50자, 소문자와 숫자만 사용 가능
예: dev, staging, production, qa1, preview-feature
환경 타입:
개발: 공유 클러스터 사용 (즉시 생성)
스테이징: 전용 클러스터 사용 (2-5분 프로비저닝)
프로덕션: 전용 클러스터 사용 (2-5분 프로비저닝)
커스텀: 사용자 정의 타입

3. 환경 삭제 (현재 비활성화)

각 환경 카드의 우측 상단 메뉴를 통해 삭제할 수 있으나, 현재는 비활성화되어 있습니다.
삭제 확인 대화상자:
환경 이름 표시
"이 작업은 취소할 수 없으며, 모든 데이터가 영구적으로 삭제됩니다" 경고
확인/취소 버튼

4. 배포 상태 표시

상태 타입:
생성 중: 환경 프로비저닝 중 (파란색, 시계 아이콘)
준비됨: 프로비저닝 완료, 사용 가능 (하늘색, 체크 아이콘)
활성: 정상 작동 중 (녹색, 체크 아이콘)
실패: 배포 실패 (빨간색, X 아이콘)
삭제 중: 환경 삭제 중 (회색, 시계 아이콘)

5. 클러스터 정보 표시

staging/prod 환경에만 표시:
클러스터 이름
클러스터 타입 (FLEX_SHARED, FLEX, REPLICASET, SHARDED, GEOSHARDED)
dev 환경: 공유 클러스터를 사용하므로 클러스터 정보가 표시되지 않습니다.

환경 유형

1. 개발 (dev)

용도: 개발 및 테스트
클러스터: 공유 클러스터 사용
프로비저닝: 즉시 생성
배지 색상: 파란색

2. 스테이징 (staging)

용도: 프로덕션 배포 전 최종 테스트
클러스터: 전용 클러스터 사용
프로비저닝: 2-5분 소요
배지 색상: 주황색

3. 프로덕션 (prod)

용도: 실제 서비스 운영
클러스터: 전용 클러스터 사용
프로비저닝: 2-5분 소요
배지 색상: 녹색
특징: 별도 섹션으로 상단에 표시

4. 커스텀 (custom)

용도: 사용자 정의 환경
클러스터: 설정에 따라 다름
배지 색상: 보라색

사용 방법

환경 목록 확인하기

1.
프로젝트 선택 후 좌측 메뉴에서 "환경 관리" 클릭
2.
환경 목록에서 각 환경의 상태 확인
3.
배포 상태 배지를 통해 현재 상태 파악
4.
클러스터 정보를 통해 인프라 구성 확인

현재 제약사항

※ 현재 Beta에서는 dev 환경 1개만 사용 가능합니다.

클러스터 표시 규칙

dev 환경: 공유 클러스터 사용으로 클러스터 정보 표시 안 함
staging/prod 환경: 전용 클러스터 정보 표시
경고 아이콘과 함께 상세 오류 내용 제공

기술 정보

API 엔드포인트

목록 조회: GET /projects/{projectId}/environments
생성: POST /projects/{projectId}/environments/{environment}
조회: GET /projects/{projectId}/environments/{environment}
수정: PUT /projects/{projectId}/environments/{environment}
삭제: DELETE /projects/{projectId}/environments/{environment}

데이터 구조

interface EnvironmentDTO { id: string projectId: string environment: string environmentType: 'dev' | 'prod' | 'staging' | 'custom' isCustom: boolean cloud: 'aws' | 'gcp' | 'azu' region: string deployment: { status: 'creating' | 'ready' | 'active' | 'failed' | 'deleting' createdAt?: string readyAt?: string activeAt?: string failedAt?: string errorMessage?: string estimatedReadyTime?: number } clusterAssignment?: { clusterName: string clusterType: string region: string cloud: string // ... 기타 클러스터 정보 } createdAt: string updatedAt: string }

상태 관리

TanStack Query 사용
자동 캐싱 및 재검증
낙관적 업데이트 적용
에러 자동 처리
환경 목록 조회
배포 상태 확인
클러스터 정보 확인