# 학습 목표
조건에 맞는 YAML 문서 작성하기
# 해결 과제
- github repository를 fork 한 후, clone 하여 스프린트를 진행합니다.
npm install
을 통해 필요한 모듈을 설치합니다.PUT_YOUR_YAML.yaml
파일에 아래 test1, test2, test3의 요구조건을 만족하는 yaml 문서를 작성합니다.npm run test
를 통해 테스트케이스 통과 여부를 확인합니다.- 모든 테스트케이스를 통과하면,
sprint-yaml
레포지토리에 Pull Request를 통해 제출합니다.
# 실습 자료
# 과제 항목별 진행 상황
Test1
아래의 표와 같은 데이터를 YAML 파일로 작성하세요.

Car:
Color: Blue
Model:
Name: Cyber Truck
Year: 2022
Fuel: Electric
Price: "$100,000"
Test2
다음 데이터를 YAML 형식으로 변경하여 작성하세요.
- Statement는 각 다섯개의 dictionary를 요소로 하는 array/list의 형태로 작성되어야 합니다.
- 각 요소 중
[ ]
로 작성된 것은 list의 형태로 작성되어야 합니다. - 같은 배경색을 가지는 값들은 dictionary의 형태로 작성되어야 하며, array/list의 한 요소여야 합니다.

case A
Version: "2012-10-17"
Statement:
- Effect: Allow
Action: ["ec2:*","elasticloadbalancing:*","route53:*","autoscaling:*","cloudwatch:*","SNS:*"]
Resource: ["*"]
- Effect: Allow
Action: ["s3:*"]
Resource: ["arn:aws:s3:::travis-terraform-state","arn:aws:s3:::travis-terraform-state/*","arn:aws:s3:::travis-shared-1-registry-images","arn:aws:s3:::travis-shared-1-registry-images/*","arn:aws:s3:::travis-shared-2-registry-images","arn:aws:s3:::travis-shared-2-registry-images/*"]
- Effect: Allow
Action: ["iam:GetUser"]
Resource: ["arn:aws:iam::341288657826:user/igor-terraform"]
- Effect: Allow
Action: ["iam:*"]
Resource: ["arn:aws:iam::341288657826:role/*","arn:aws:iam::341288657826:user/registry-shared-1","arn:aws:iam::341288657826:user/registry-shared-2","arn:aws:iam::*:user/cyclist-*","arn:aws:iam::*:user/worker-*","arn:aws:iam::*:user/build-trace-*"]
- Effect: Allow
Action: ["dynamodb:*"]
Resource: ["arn:aws:dynamodb:us-east-1:341288657826:table/travis-terraform-state"]
case B
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- ec2:*
- elasticloadbalancing:*
- route53:*
- autoscaling:*
- cloudwatch:*
- SNS:*
Resource:
- "*"
- Effect: Allow
Action:
- s3:*
Resource:
- arn:aws:s3:::travis-terraform-state
- arn:aws:s3:::travis-terraform-state/*
- arn:aws:s3:::travis-shared-1-registry-images
- arn:aws:s3:::travis-shared-1-registry-images/*
- arn:aws:s3:::travis-shared-2-registry-images
- arn:aws:s3:::travis-shared-2-registry-images/*
- Effect: Allow
Action:
- iam:GetUser
Resource:
- arn:aws:iam::341288657826:user/igor-terraform
- Effect: Allow
Action:
- iam:*
Resource:
- arn:aws:iam::341288657826:role/*
- arn:aws:iam::341288657826:user/registry-shared-1
- arn:aws:iam::341288657826:user/registry-shared-2
- arn:aws:iam::*:user/cyclist-*
- arn:aws:iam::*:user/worker-*
- arn:aws:iam::*:user/build-trace-*
- Effect: Allow
Action:
- dynamodb:*
Resource:
- arn:aws:dynamodb:us-east-1:341288657826:table/travis-terraform-state
Test3
다음 JSON으로 작성된 설정 파일을 YAML 형식으로 작성하시오.
test3: {
"name": "Node.js CI",
"on": {
"push": {
"branches": "main"
},
"pull_request": {
"branches": "main"
}
},
"jobs": {
"build": {
"runs-on": "ubuntu-latest",
"steps": [
{
"uses": "actions/checkout@v2"
},
{
"name": "Use Node.js",
"uses": "actions/setup-node@v1",
"with": {
"always-auth": true,
"node-version": "12.x",
"registry-url": "https://registry.npmjs.org",
"scope": "@octocat"
}
},
{
"name": "Install dependencies",
"run": "npm ci",
"env": {
"NODE_AUTH_TOKEN": "${{secrets.NPM_TOKEN}}"
}
}
]
}
}
}
name: "Node.js CI"
on:
push:
branches: main
pull_request:
branches: main
jobs:
build:
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v2"
- name: "Use Node.js"
uses: "actions/setup-node@v1"
with:
always-auth: true
node-version: "12.x"
registry-URL: "https://registry.npmjs.org"
scope: "@octocat"
- name: "Install dependencies"
run: "npm ci"
env:
NODE_AUTH_TOKEN: "${{secrets.NPM_TOKEN}}"
# TROUBLE SHOOTING LOG
💡 문제 내용
원인
해결 방안
# 피드백
오태경 | 박찬규 |
---|---|
config 파일 포맷으로 간단하게만 다뤄본 YAML 을 여러가지 case 별로 직접 작성해 볼 수 있어서 의미 있는 실습이었다. | test2 에서 dictionary → array 형태를 작성할때 방향을 잘못 잡고 있었는데 문서 행별로 짚어주셔서 실습 시간을 단축시켜주셨다. |