

Amazon CodeCatalyst는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 마이그레이션하는 방법](migration.md) 단원을 참조하십시오.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 블루프린트 사용자로서 수명 주기 관리 작업
<a name="lifecycle-management-user"></a>

수명 주기 관리는 업데이트된 옵션 또는 블루프린트 버전에서 코드베이스를 재생성하는 기능입니다. 이를 통해 블루프린트 작성자는 특정 블루프린트이 포함된 모든 프로젝트의 소프트웨어 개발 수명 주기를 중앙에서 관리할 수 있습니다. 예를 들어, 웹 애플리케이션 블루프린트에 보안 수정을 푸시하면 웹 애플리케이션 블루프린트을 포함하거나 웹 애플리케이션 블루프린트에서 생성된 모든 프로젝트가 해당 수정 사항을 자동으로 픽업할 수 있습니다. 또한 이 동일한 관리 프레임워크를 사용하면 블루프린트 사용자가 블루프린트 옵션을 선택하고 나서 변경할 수 있습니다.

**Topics**
+ [기존 프로젝트에서 수명 주기 관리 사용](#using-lm-existing-projects)
+ [프로젝트의 여러 블루프린트에서 수명 주기 관리 사용](#using-lm-multiple-bp)
+ [수명 주기 풀 요청의 충돌 처리](#lm-conflicts)
+ [수명 주기 관리 변경 사항 옵트아웃](#opt-out-lm)
+ [프로젝트에서 블루프린트의 수명 주기 관리 재정의](#override-updates-lm)

## 기존 프로젝트에서 수명 주기 관리 사용
<a name="using-lm-existing-projects"></a>

블루프린트에서 생성된 프로젝트 또는 블루프린트와 연결되지 않은 기존 프로젝트에 수명 주기 관리를 사용할 수 있습니다. 예를 들어, 블루프린트에서 생성되지 않은 5년 된 Java 애플리케이션에 표준 보안 관행 블루프린트를 추가할 수 있습니다. 해당 블루프린트는 보안 스캔 워크플로 및 기타 관련 코드를 생성합니다. 이제 Java 애플리케이션의 코드베이스 중 해당 부분은 블루프린트에 변경 사항이 생길 때마다 팀의 모범 사례에 따라 자동으로 최신 상태로 유지됩니다.

## 프로젝트의 여러 블루프린트에서 수명 주기 관리 사용
<a name="using-lm-multiple-bp"></a>

블루프린트는 아키텍처 구성 요소를 나타내기 때문에 동일한 프로젝트에서 여러 블루프린트를 함께 사용할 수 있습니다. 예를 들어, 프로젝트는 회사 플랫폼 엔지니어가 구축한 중앙 웹 API 블루프린트와 앱 보안 팀이 구축한 릴리스 확인 블루프린트로 구성될 수 있습니다. 이러한 각 블루프린트은 독립적으로 업데이트할 수 있으며 과거에 적용된 병합 해결책을 기억합니다.

**참고**  
임의의 아키텍처 구성 요소로서 블루프린트가 서로 병합하려고 하더라도 모든 블루프린트가 합당하거나 논리적인 방식으로 함께 작동하는 것은 아닙니다.

## 수명 주기 풀 요청의 충돌 처리
<a name="lm-conflicts"></a>

경우에 따라 수명 주기 풀 요청으로 인해 병합 충돌이 발생할 수 있습니다. 이러한 문제를 수동으로 해결할 수 있습니다. 후속 블루프린트 업데이트 시 해결책이 기억됩니다.

## 수명 주기 관리 변경 사항 옵트아웃
<a name="opt-out-lm"></a>

사용자는 프로젝트에서 블루프린트를 제거하여 블루프린트에 대한 모든 참조를 연결 해제하고 수명 주기 업데이트를 옵트아웃할 수 있습니다. 안전상의 이유로, 블루프린트에서 추가된 것을 포함하여 프로젝트의 코드 또는 리소스는 제거되거나 영향을 받지 않습니다. 자세한 내용은 [업데이트 중지를 위해 프로젝트에서 블루프린트 연결 해제프로젝트에서 블루프린트 연결 해제](disassociate-bp.md) 단원을 참조하십시오.

## 프로젝트에서 블루프린트의 수명 주기 관리 재정의
<a name="override-updates-lm"></a>

프로젝트의 특정 파일에 대한 블루프린트 업데이트를 재정의하려면 리포지토리에 소유권 파일을 포함할 수 있습니다. [GitLab’s Code Owners](https://docs.gitlab.com/ee/user/project/codeowners/) 사양은 권장 지침입니다. 블루프린트는 항상 다른 모든 파일보다 Code Owners 파일을 존중하며 다음과 같은 샘플을 생성할 수 있습니다.

```
new BlueprintOwnershipFile(sourceRepo, {
      resynthesis: {
        strategies: [
          {
            identifier: 'dont-override-sample-code',
            description: 'This strategy is applied accross all sample code. The blueprint will create sample code, but skip attempting to update it.',
            strategy: MergeStrategies.neverUpdate,
            globs: [
              '**/src/**',
              '**/css/**',
            ],
          },
        ],
      },
    });
```

이렇게 하면 다음 내용이 포함된 `.ownership-file`이 생성됩니다.

```
[dont-override-sample-code] @amazon-codecatalyst/blueprints.import-from-git
# This strategy is applied accross all sample code. The blueprint will create sample code, but skip attempting to update it.
# Internal merge strategy: neverUpdate
**/src/**
**/css/**
```