👉 핵심 포인트: 이 섹션은 실습 중심(Hands-on) 으로 진행되며, CI/CD 파이프라인 구축 과정을 처음부터 끝까지 다룸 .
👉 핵심 포인트: CI 단계에서 자동화된 테스트로 애플리케이션 정상 동작 여부 확인.
👉 핵심 포인트: 코드 변경 → 자동 빌드 & 배포까지 연결되는 완전 자동화 파이프라인.
👉 핵심 포인트: GitHub Actions ↔ AWS 간 통신은 Secrets 기반 인증 필수.
👉 핵심 포인트: 코드 변경 → 자동 테스트 & 배포 → 즉시 서비스 반영.
👉 핵심 포인트: 보안 유지 및 비용 절감을 위해 정리 작업은 필수.
문항 1. GitHub Actions 워크플로우 파일(.yaml)의 실행 트리거 조건으로 올바른 것은?
① git fetch 실행 시
② main 브랜치에 push 발생 시
③ Docker Hub에서 이미지 빌드 완료 시
④ AWS EC2 인스턴스 재부팅 시
👉 정답: ②
📖 해설: 강의에서는 main 브랜치에 push 이벤트가 발생하면 GitHub Actions 워크플로우가 실행되도록 구성함 .
문항 2. requirements.txt 파일에 포함된 라이브러리가 아닌 것은?
① Flask
② Gunicorn
③ Requests
④ TensorFlow
👉 정답: ④
📖 해설: 본 프로젝트는 단순한 Flask 웹 애플리케이션 배포 실습용이므로 Flask, Gunicorn, Requests만 포함되어 있음 .
문항 3. (서술형) tests.py 파일에서 확인하는 두 가지 주요 검증 항목은 무엇인가요?
👉 정답:
📖 해설: 이는 기본적인 애플리케이션 정상 동작을 확인하기 위한 최소 단위 테스트임.
문항 4. CI/CD 파이프라인에서 Docker 이미지를 빌드한 후, 이를 저장하고 배포하기 위해 사용하는 AWS 서비스는?
① S3 (Simple Storage Service)
② ECR (Elastic Container Registry)
③ RDS (Relational Database Service)
④ CloudFront
👉 정답: ②
📖 해설: 빌드된 Docker 이미지는 AWS ECR에 푸시(push)한 후, EC2에서 풀(pull) 받아 실행함 .
문항 5. 강의에서 EC2 인스턴스 생성 시 Amazon Linux 2023 AMI 대신 Amazon Linux 2 AMI를 권장한 이유는 무엇인가?
① Amazon Linux 2023은 요금이 비싸서
② Amazon Linux 2에는 Docker 설치를 쉽게 해주는 aws extras 기능이 있어서
③ Amazon Linux 2가 더 빠른 CPU 성능을 제공해서
④ GitHub Actions과 호환되지 않아서
👉 정답: ②
📖 해설: Amazon Linux 2023은 기본적으로 Docker 설치에 필요한 extras 기능이 없어 에러가 발생할 수 있음. 따라서 Amazon Linux 2 사용을 권장 .
문항 6. (서술형) GitHub Secrets에 반드시 등록해야 하는 값들을 두 가지 이상 쓰세요.
👉 정답 예시:
문항 7. 다음 중 CI/CD 파이프라인의 올바른 실행 흐름을 순서대로 나열한 것은?
① 코드 푸시 → ECR 푸시 → GitHub Actions 실행 → 테스트 실행 → EC2 배포
② GitHub Actions 실행 → 테스트 실행 → Docker 이미지 빌드 → ECR 푸시 → EC2 배포
③ EC2 배포 → Docker 이미지 빌드 → GitHub Actions 실행 → ECR 푸시
④ Docker 이미지 빌드 → 테스트 실행 → GitHub Actions 실행 → ECR 푸시
👉 정답: ②
📖 해설: GitHub Actions가 트리거되면 → 테스트 실행 → Docker 이미지 빌드 → ECR 푸시 → EC2 배포 순서로 진행됨 .
문항 8. 강의에서는 Flask 애플리케이션의 기본 응답 메시지를 "Hello from CI/CD powered by Flask app v1" 로 설정했다. 만약 "v2"로 변경 후 커밋한다면 어떤 현상이 발생하는가?
① EC2에 배포 실패
② GitHub Actions가 무시됨
③ 새 컨테이너가 자동으로 실행되며 브라우저에서 "v2" 반영
④ 수동으로 EC2 재시작해야 반영
👉 정답: ③
📖 해설: CI/CD 파이프라인은 코드 변경 후 자동으로 새 Docker 이미지 빌드 → ECR 푸시 → EC2 배포까지 진행하여 즉시 반영됨 .
문항 9. (서술형) 보안 및 비용 절감을 위해 Hands-on 종료 후 반드시 해야 할 정리(Cleanup) 작업 2가지를 서술하세요.
👉 정답 예시:
📖 해설: 실습용 리소스를 방치하면 비용이 발생하며, Access Key를 그대로 두면 보안 위험이 있음 .
문항 10. (응용 서술형) GitHub Actions 없이 수동으로 Flask 앱을 배포한다고 가정했을 때, 최소한 어떤 단계들을 직접 수행해야 하나요?
👉 정답 예시:
📖 해설: GitHub Actions가 자동화한 작업을 수동으로 한다면 위 과정을 순서대로 수행해야 함.