

# 콘텐츠 도메인 1: SDLC 자동화
<a name="devops-engineer-professional-02-domain1"></a>

## 작업 설명 1.1: CI/CD 파이프라인 구현
<a name="dop-02-task-1-1"></a>

### 관련 지식:
<a name="dop-02-task-1-1-knowledge"></a>
+ 소프트웨어 개발 수명 주기(SDLC) 개념, 단계 및 모델
+ 단일 및 다중 계정 환경을 위한 파이프라인 배포 패턴

### 관련 기술:
<a name="dop-02-task-1-1-skills"></a>
+ 코드, 이미지 및 아티팩트 리포지토리 구성
+ 버전 제어를 사용하여 파이프라인을 애플리케이션 환경과 통합
+ 빌드 프로세스 설정(예: AWS CodeBuild)
+ 빌드 및 배포 보안 정보 관리(예: AWS Secrets Manager, AWS Systems Manager Parameter Store)
+ 적절한 배포 전략 결정(예: AWS CodeDeploy)

## 작업 설명 1.2: 자동화된 테스트를 CI/CD 파이프라인에 통합
<a name="dop-02-task-1-2"></a>

### 관련 지식:
<a name="dop-02-task-1-2-knowledge"></a>
+ 다양한 유형의 테스트(예: 단위 테스트, 통합 테스트, 승인 테스트, 사용자 인터페이스 테스트, 보안 검색)
+ CI/CD 파이프라인의 여러 단계에서 다양한 유형의 테스트를 합리적으로 사용

### 관련 기술:
<a name="dop-02-task-1-2-skills"></a>
+ 풀(pull) 요청 또는 코드 병합을 생성할 때 빌드 또는 테스트 실행(예: CodeBuild)
+ 로드/스트레스 테스트, 성능 벤치마킹 및 대규모 애플리케이션 테스트 실행
+ 애플리케이션 종료 코드를 기반으로 애플리케이션 상태 측정
+ 단위 테스트 및 코드 커버리지 자동화
+ 테스트를 위해 파이프라인에서 AWS 서비스 호출

## 작업 설명 1.3: 아티팩트 빌드 및 관리
<a name="dop-02-task-1-3"></a>

### 관련 지식:
<a name="dop-02-task-1-3-knowledge"></a>
+ 아티팩트 사용 사례 및 보안 관리
+ 아티팩트를 만들고 만들기하는 방법
+ 아티팩트 수명 주기 고려

### 관련 기술:
<a name="dop-02-task-1-3-skills"></a>
+ 아티팩트 리포지토리 만들기 및 구성(예: AWS CodeArtifact, Amazon S3, Amazon Elastic Container Registry(Amazon ECR))
+ 아티팩트 생성을 위한 빌드 도구 구성(예: CodeBuild, AWS Lambda)
+ Amazon EC2 인스턴스 및 컨테이너 이미지 빌드 프로세스 자동화(예: EC2 Image Builder)

## 작업 설명 1.4: 인스턴스, 컨테이너 및 서버리스 환경에 대한 배포 전략 구현
<a name="dop-02-task-1-4"></a>

### 관련 지식:
<a name="dop-02-task-1-4-knowledge"></a>
+ 다양한 플랫폼을 위한 배포 방법론(예: Amazon EC2, Amazon Elastic Container Service(Amazon ECS), Amazon Elastic Kubernetes Service(Amazon EKS), Lambda)
+ 애플리케이션 스토리지 패턴(예: Amazon Elastic File System(Amazon EFS), Amazon S3, Amazon Elastic Block Store(Amazon EBS))
+ 변경 불가능한 배포 패턴과 대조되는 변경 가능한 배포 패턴
+ 코드 배포에 사용할 수 있는 도구 및 서비스(예: CodeDeploy, EC2 Image Builder)

### 관련 기술:
<a name="dop-02-task-1-4-skills"></a>
+ 아티팩트 리포지토리에 대한 액세스를 허용하도록 보안 권한 구성(예: AWS Identity and Access Management(AWS IAM), CodeArtifact)
+ 배포 에이전트 구성(예: CodeDeploy 에이전트)
+ 배포 문제 해결
+ 다양한 배포 방법 사용(예: 블루/그린 배포, canary)