피처 플래그를 배포된 피처 플래그 뒤에서 활성화 및 비활성화하기
GitLab은 피처 플래그 전략을 채택하여 기능을 초기 개발 단계에서 배포하여 점진적으로 출시할 수 있도록 합니다.
영구적으로 사용 가능하게 하기 전에 기능은 다음과 같은 여러 가지 이유로 플래그 뒤에 배포될 수 있습니다:
- 기능을 테스트하기 위해.
- 기능이 개발 초기 단계에 있을 때 사용자 및 고객의 피드백을 받기 위해.
- 사용자 채택을 평가하기 위해.
- GitLab의 성능에 미치는 영향을 평가하기 위해.
- 릴리스를 통해 작은 조각으로 기능을 구축하기 위해.
플래그 뒤에 있는 기능은 일반적으로 점진적으로 출시됩니다:
- 기능은 기본적으로 비활성화됩니다.
- 기능은 기본적으로 활성화됩니다.
- 피처 플래그가 제거됩니다.
이러한 기능은 사용자가 사용할 수 있도록 활성화 및 비활성화할 수 있습니다. GitLab 관리자가 Ruby 콘솔 또는 피처 플래그 API에 액세스할 수 있습니다.
피처 플래그를 비활성화하면 해당 기능이 사용자에게 숨겨지고 모든 기능이 사용 중지됩니다. 예를 들어, 데이터는 기록되지 않으며 서비스는 실행되지 않습니다.
특정 기능을 사용하고 버그, 잘못된 동작 또는 오류를 확인했다면, GitLab에 가능한 한 빨리 피드백을 제공해주셔야 중요합니다. 이렇게 하면 우리가 해당 기능을 향상하거나 수정할 수 있습니다. GitLab을 업그레이드하면 피처 플래그 상태가 변경될 수 있습니다.
아직 개발 중인 기능을 활성화했을 때의 위험
운영 중인 GitLab 환경에서 비활성화된 피처 플래그를 활성화하기 전에 잠재적인 위험을 이해하는 것이 중요합니다.
기본적으로 비활성화된 피처 플래그 뒤에 있는 기능은 GitLab의 향후 버전에서 알림 없이 변경되거나 제거될 수 있습니다.
기본적으로 비활성화된 기능을 사용하는 것은 추천되지 않으며, 이로 인해 발생하는 문제는 GitLab 지원의 대상이 아닙니다.
기본적으로 비활성화된 기능에서 발견된 보안 문제는 정기 릴리스에 패치되며 수정 사항을 되감기하는 데 대한 우리의 정기적인 유지 관리 정책을 따르지 않습니다.
릴리스된 기능을 비활성화했을 때의 위험
대부분의 경우, 피처 플래그 코드는 GitLab의 향후 버전에서 제거됩니다. 그러면 해당 지점부터 해당 기능을 비활성화 상태로 유지할 수 없습니다.
피처 플래그 뒤에서 기능을 활성화하고 비활성화하는 방법
각 기능별로 사용해야 하는 자체 플래그가 있습니다. 피처 플래그 뒤에 있는 각 기능의 문서에는 플래그의 상태와 해당 기능을 활성화하거나 비활성화하는 명령에 관한 섹션이 포함되어 있습니다.
GitLab Rails 콘솔 시작
피처 플래그 뒤에 있는 기능을 활성화 또는 비활성화하려면 먼저 GitLab Rails 콘솔 세션을 시작해야 합니다.
Linux 패키지 설치의 경우:
```shell sudo gitlab-rails console ```
소스에서의 설치의 경우:
```shell sudo -u git -H bundle exec rails console -e production ```
자세한 내용은 Rails 콘솔 세션 시작을 참조하십시오.
기능 활성화 또는 비활성화
Rails 콘솔 세션이 시작되었으면 해당 기능의 문서에서 찾을 수 있는 Feature.enable
또는 Feature.disable
명령을 실행하십시오.
기능을 활성화하려면 다음을 실행하십시오:
```ruby
Feature.enable(:
예를 들어, example_feature
라는 허구의 피처 플래그를 활성화하려면:
```ruby Feature.enable(:example_feature) ```
기능을 비활성화하려면 다음을 실행하십시오:
```ruby
Feature.disable(:
예를 들어, example_feature
라는 허구의 피처 플래그를 비활성화하려면:
```ruby Feature.disable(:example_feature) ```
일부 피처 플래그는 프로젝트 단위로 활성화 또는 비활성화할 수 있습니다:
```ruby
Feature.enable(:
예를 들어, 프로젝트 1234
에 대해 :example_feature
피처 플래그를 활성화하려면:
```ruby Feature.enable(:example_feature, Project.find(1234)) ```
Feature.enable
및 Feature.disable
는 애플리케이션에서 해당 플래그를 사용하지 않더라도 항상 true
를 반환합니다:
```ruby irb(main):001:0> Feature.enable(:example_feature) => true ```
기능이 준비되면 GitLab은 해당 피처 플래그를 제거하여 더 이상 활성화하거나 비활성화하는 옵션이 존재하지 않게 합니다. 해당 기능은 모든 인스턴스에서 사용 가능해집니다.
피처 플래그가 활성화되었는지 확인
플래그가 활성화되었는지 또는 비활성화되었는지 확인하려면 Feature.enabled?
또는 Feature.disabled?
을 사용하십시오.
예를 들어, 이미 활성화된 example_feature
이라는 피처 플래그의 경우:
```ruby Feature.enabled?(:example_feature) => true Feature.disabled?(:example_feature) => false ```
기능이 준비되면 GitLab은 해당 피처 플래그를 제거하여 더 이상 활성화하거나 비활성화하는 옵션이 존재하지 않게 합니다. 해당 기능은 모든 인스턴스에서 사용 가능해집니다.
설정된 피처 플래그 보기
모든 GitLab 관리자가 설정한 피처 플래그를 볼 수 있습니다:
```ruby Feature.all => [#<Flipper::Feature:198220 name=”example_feature”, state=:on, enabled_gate_names=[:boolean], adapter=:memoizable>]
좋은 출력
Feature.all.map {|f| [f.name, f.state]} ```
플래그 해제
GitLab이 해당 플래그에 대한 현재 기본값으로 되돌아갈 수 있도록 플래그를 해제할 수 있습니다:
```ruby Feature.remove(:example_feature) => true ```