Configuring the build settings for an app
amplify.yml
amplify.yml
은 AWS Amplify에서 애플리케이션을 배포할 때 빌드(Build) 및 테스트(Test), 배포(Deploy) 과정을 제어하는 설정 파일이다. 이 파일을 사용하면 Amplify 파이프라인에서 단계별로 자동화된 CI/CD 워크플로우를 정의할 수 있다.
amplify.yml
의 예시
version: 1
applications:
- appRoot: .
frontend:
phases:
preBuild:
commands:
- npm install
build:
commands:
- npm run build
test:
commands:
- npm run test # 테스트 단계 추가
deploy:
commands:
- amplify publish
environment:
variables:
API_URL: https://example.com/api
🤔 문제
개발자가 AWS Amplify Hosting을 사용하여 애플리케이션을 빌드하고 배포하고 있습니다. 사용자로부터 버그 보고가 증가하자, 프로덕션 환경으로 버그가 넘어가기 전에 최대한 많은 버그를 제거하기 위해 애플리케이션에 엔드투엔드(E2E) 테스트를 추가하고자 합니다. 이러한 요구사항을 충족하려면 개발자가 어떤 솔루션을 구현해야 할까요?
- Amplify CLI에서 amplify add test 명령어를 실행합니다.
- 애플리케이션에 유닛 테스트를 생성하고 Amplify CLI에서 amplify push 명령어로 유닛 테스트를 배포합니다.
- 애플리케이션의 amplify.yml 빌드 설정에 테스트 단계를 추가합니다.
- 애플리케이션의 aws-exports.js 파일에 테스트 단계를 추가합니다.
정답
정답. 3번
애플리케이션의 amplify.yml 빌드 설정에 테스트 단계를 추가합니다.
AWS Amplify는 애플리케이션의 배포 파이프라인을 제어할 수 있는 amplify.yml 파일을 제공한다. 이 파일에 E2E 테스트 단계를 추가하면, 빌드 및 배포 과정에서 테스트가 자동으로 실행되어 애플리케이션의 품질을 확인할 수 있다.
즉, 프로덕션 환경으로 넘어가기 전에 발견하지 못한 문제를 E2E 테스트를 통해 검출함으로써 애플리케이션의 전체적인 품질을 높이는 효과를 기대할 수 있다. Amplify Hosting의 빌드 파이프라인에서 테스트가 자동으로 실행되므로, 모든 배포 단계에서 테스트가 이루어져 안정성이 향상된다.
1번. amplify add test 명령어는 실제로 존재하지 않는다.
2번. 유닛 테스트는 개별 함수나 모듈에 초점을 맞춘 테스트로, 애플리케이션 전체의 E2E 테스트와는 다르다.
3번. aws-exports.js는 AWS 리소스 구성을 포함하는 파일로, 이곳에 테스트 단계를 추가하는 것은 적절하지 않다.