Yaml์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ # 3046์์ @fabiendibot ์ ์ํด ์ธ๊ธ๋์์ต๋๋ค.
CMDLet์ด XML์์ ๊ฐ์ ธ์จ ๊ฐ์ฒด์ ๋ณํ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ๊น๋ํ๊ฒ ์ฒ๋ฆฌํ๋ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ์ด ๋ณํ์ ๋ํ ์ข์ ํ ์คํธ๊ฐ ์์ต๋๊น?
DSC ์ธก๋ฉด ์์ ๋น์ทํ ๋
ผ์๋ฅผํ์ต๋๋ค.
json ๊ธฐ๋ฐ ๊ตฌ์ฑ ํ์ผ์ ๋ณ๊ฒฝํ ์ ์๋๋กํ์ฌ xml ๊ธฐ๋ฐ ํ์ผ, YAML ๊ธฐ๋ฐ ํ์ผ, Text Manipulation cmdlet ๋ด์์ RegEx ์ค์์ ์ง์ํ๋ INI ๊ธฐ๋ฐ ํ์ผ์ ์์ ํ๋ ์ต์
์ ์ํ์ต๋๋ค.
PS์ ๊ธฐ์กด ์ง์์ด ์๋ค๋ ๊ฒ์ ๊ทธ๋ฌํ ๋ฅ๋ ฅ์ ์ป๊ธฐ ์ํด ์ด์ฌํ ๋
ธ๋ ฅํด์ผํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ปค๋ฎค๋ํฐ ๊ธฐ์ฌ๋ฅผ ์ํด ๋ณด๋ฅ๋์์ง๋ง PS์ ๊ตฌ์์ง๋ฉด DSC ๋ถ๋ถ๋ ํจ์ฌ ์ฌ์ ์ง ๊ฒ์
๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋งํ ๋ XML ๋๋ JSON๊ณผ ๊ฐ์ ์๋ฏธ์ ๋๊น?
ํ์ฌ ์๊ฐํ๊ณ ์๋ ๊ฒ์ YAML์ด PowerShell์ ์ ํ ๊ตฌ์ ์ง์ง ์์์ผํ๋ค๋ ๊ฒ์ ๋๋ค. ๋์ ์ ๋ฒ์ ์ PowerShell์ ์ ํํ์ง ์๊ณ ๋ ์ ๋ฐ์ดํธ ํ ์์๋ ๋ณ๋์ ๋ชจ๋์ด์ด์ผํฉ๋๋ค.
YAML์ด XML๊ณผ ๊ฐ์ PowerShell๋ก ๊ตฌ์ ์ก๋ค๋ฉด ๋ถ๊ฐ๋ฅํฉ๋๋ค ([xml] " b "๋ฅผ ์๊ฐํด๋ณด์ญ์์ค).
JSON ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค๋ฉด YAML๊ณผ ํจ๊ป ์๋ํ๋ cmdlet์ด์์ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ค์ ๋ก PowerShell์ ๊ตฌ์์ง ๊ฒ์ ์๋์ง๋ง YAML ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๊ธฐ ์ํด PowerShell์ ์ ๋ฐ์ดํธํด์ผํ๋ ๋จ์ ์ด ์์ต๋๋ค.
@lzybkr ์ฐ๋ฆฌ๊ฐ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ์ง ์๋ค๊ณ ๋งํ ๊ฒ์ ์๊ณ ์์ง๋ง ์ด๊ฒ์ด ์ฌํ๊ฐ๊ฐ ํ์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ ๊ฐค๋ฌ๋ฆฌ ์๋ ๋ชจ๋์ ์ ๊ณตํด์ผํ์ง๋ง ํ๋ ์๋๋ฆฌ์ค์ ํค์๋ YAML์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
6.0 ์๊ฐ๋๊ฐ ์๋ ์๋ ์์ง๋ง ์ด์ ๋ํด ์ด์ผ๊ธฐํด์ผํฉ๋๋ค.
@ArieHein- ๋ ์ง์คํธ๋ฆฌ์ ํด์ ๋ฐฐ์ด์ ์ ์ฅํ๊ณ ๊ฒ์ํ๋ ๋ช ๊ฐ์ง ๊ฐ๋จํ ํจ์๊ฐ ์์ต๋๋ค. REG_SZ ๋ง ์ฒ๋ฆฌํ์ญ์์ค. ๊ทธ๋ฌ๋ ๊ฐ๋จํ ์ค์ ์ธํธ์ ๊ฒฝ์ฐ ์ถฉ๋ถํฉ๋๋ค. ์ฌ๋ณธ์ด ํ์ํ์ง ์๋ ค์ฃผ์ญ์์ค.
๋ด๊ฐ "๋ค์ดํฐ๋ธ"๋ผ๊ณ ๋งํ์ ๋ ์๋ชป ์ฐฉ๊ฐํ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก "๋ด์ฅ"์ ์๋ฏธํ์ต๋๋ค. ์ ๋ฐ์ดํธ ํ ์์๋ ์คํฌ๋ฆฝํธ ๋ชจ๋์ด ๊ธฐ๋ณธ ์ ๊ณต ๋์๋ค๋ฉด ๋ฌธ์ ๊ฐ๋์ง ์์ ๊ฒ์ ๋๋ค.
์ฒซ ๋ฒ์งธ ํ ๋ก # 2109
@iSazonov- ์,
์ค๋ ๋์์ YAML์ ๋ํ AWS ์ง์์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ผ๋ถ ํ ํ๋ฆฟ์ ๋ณํ ํด ์์ผ๋ฉฐ ์ด๊ฒ์ด ๋์์ด๋๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค : https://github.com/awslabs/aws-cfn-template-flip
@iSazonov ํฌ์ธํฐ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด๋ค ์ด์ ๋ก ๋ ์ฐพ์ ์ ์์์ต๋๋ค. ๊ทธ๋๋ ์ ๊ธฐ์ตํ์ญ์์ค.
์๋ ์ค๋ ๋๋ฅผ ๋ค์ ์ฝ์ ๋ ํฅํ ์ด๋ ์์ ์์ cmdlet์ ํ์คํ ๊ตฌํํ๊ณ ๊ฐค๋ฌ๋ฆฌ์ ์ ๊ณตํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๊ณผ ์ฌ๋๋ค์ด์ธ์ง ํ ์ ์ฉ์ฑ (6.0.0 ์ดํ์ ์ํ ํ ์ผ๋ถ ๋ฆฌํฉํ ๋ง ์์ ๊ณผ ํจ๊ป)์ ๊ธฐ๋ฐ์ผ๋ก ์ธ ๋ฐ์ค ๋ ๊ฐค๋ฌ๋ฆฌ ์ ์ฉ ํธ์ถ์ ํ ์ ์์ต๋๋ค.
์, ์ด๊ฒ์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. https://github.com/awslabs/aws-cfn-template-flip ์ ์ฌ์ฉํ์ฌ ๋ณํํ์ต๋๋ค.
@MattTunny ๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค! :-)
๊ทธ๊ฒ์ ํฌํํ๊ธฐ ์ํด ์ด๋ฆฐ Windows Server ์ฌ์ฉ์ ๋ชฉ์๋ฆฌ๊ฐ ์์ต๋๋ค :-)
์ด๊ฒ์ ํ์คํ ๋ค์ดํฐ๋ธ PS 6.1 ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ผ๋ถ ์ฌ์ผํฉ๋๋ค. ์์ฆ YAML์๋ ๋ง์ ๊ฒ๋ค์ด ์์ต๋๋ค.
์ด์ PSGallery์ psyaml
๋ฐ powershell-yaml
๋ชจ๋์ด ์์ง๋ง ๋ ๋ค VSTS ๋น๋ ์ ์์์ YAML ํ์ผ์ ์๋ณต ํ ์๋ ์์ต๋๋ค. ๋ชจ๋์ด PowerShell์ ๊ตฌ์ ์ก๋์ง ์๋๋ฉด PSGallery์ ๋ชจ๋์ธ์ง ์๊ด ์์ต๋๋ค.
์ฌ๊ธฐ์ ํต์ฌ ๋ฌธ์ ๋ ๋ชจ๋์ ๋ฐฐํฌํ๋ ํฌ๋ฐํ ๋ฐฉ๋ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค. ์ค๋๋ ๋ชจ๋์ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ๋ชจ๋์ ์ฐพ๊ณ , ์ ๋ขฐํ๊ณ , ์ค์นํด์ผํฉ๋๋ค. ์ด๊ฒ์ Javascript๊ฐ var m = require('mymodule')
ํ๋ (๋ถ๋ช
ํ) ๋งค๋๋ฌ์ด ๋ฐฉ์๊ณผ ๋น๊ตํ์ญ์์ค. DSC๊ฐ ์ํํ๋ ์์
์ ์ํ ํ ์์๋ ๋ฐฉ๋ฒ์ด ์์ง๋ง ๊ธฐ๋ณธ PowerShell์ ์ฌ์ฉํด์ผ ํ ์๋ ์์ต๋๋ค. DSC์์ ๋ชจ๋์ด ๊ตฌ์ฑ์์ ์ฐธ์กฐ๋๋ฉด ์๋ ์์
์์ด ๋์ ๋
ธ๋์ ์๋์ผ๋ก ๋ค์ด๋ก๋๋๊ณ ์ค์น๋ฉ๋๋ค. ์ค์ํ์ง๋ง ํต์ฌ์ด ์๋ ๋ชจ๋์ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒํ๋ฉด "ํต์ฌ์ ์ผ๋ถ๊ฐ๋์ด์ผํฉ๋๋ค"๋ผ๋ ์ฃผ์ฅ์ ์ ๊ฑฐํด์ผํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋คํธ์ํฌ์์ ์ฐ๊ฒฐ์ด ๋์ด์ง ๋
ธ๋์ ๊ฒฝ์ฐ ์คํฌ๋ฆฝํธ์ ์ข
์์ฑ์ ์์นด์ด๋ธ์ ๋ฒ๋ค๋ก ๋ฌถ์ ๋ค์ ๋์์ ๋ฐฐํฌํ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด Azure DSC ๋ฆฌ์์ค ํ์ฅ์ด ์๋ํ๋ ๋ฐฉ์์
๋๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ์ค์บํ์ฌ ํ์ํ ๋ชจ๋์ ํ์
ํ ๋ค์ ํ์ํ ๋ชจ๋ ๊ฒ์ด ํฌํจ ๋ zip ํ์ผ์ ๋น๋ํ๊ณ ์ด๋ฅผ Blob์ ๊ฒ์ํ๋ ๋๊ตฌ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Azure ๋ฆฌ์์ค ํ์ฅ์์ด Blob์ ๊ฐ์ ธ์ ๋ชจ๋์ ์ค์นํ๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค.
์ด์ฒ๋ผ ์ค์ํ ๊ฒ์ ๋ํด ๋ฒค๋ ๋ง ๋ฐฉ๋ฒ์ด์๋ ํ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ๊ณ ์ถ์ง๋ ์์ต๋๋ค. ํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ ์ฒด ์ํ๊ณ๋ฅผ ์ ์ฌ์ ์ผ๋ก ํ๊ดดํ๋ ๊ฒ์ ๋๋ฌด ์ฝ์ต๋๋ค (https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/ ์ฐธ์กฐ).
@bergmeister๊ฐ ์ง์ ํ๋ฏ์ด ๋ ๊ด๋ฒ์ํ ๋ฌธ์ ๋ฅผ ์ ์ธํ๊ณ ๋ ํ์ฌ PowerShell ์ฉ ์ข์ YAML ๋ชจ๋์ด ์์ต๋๋ค. ์ด๊ฒ์ ์๋ํ์ ์ค์ ์ ๋ ์ธ์ด์ ํ์ ์ฌํญ์ ๋๋ค. YAML ๊ธฐ๋ฐ ๊ตฌ์ฑ ํ์ผ์ ํ์ฌ ๋งค์ฐ ์ธ๊ธฐ๊ฐ ์์ผ๋ฉฐ ๊ทธ๋ ๊ฒํ๊ธฐ ์ํด ํ์ ์๊ฒฌ๊ณผ ๊ฒฝ์ ํ ํ์๊ฐ ์๋๋ผ๋ ํผํ๋ ๊ฒ์ด ๋งค์ฐ ์ด๋ ต์ต๋๋ค. XML๊ณผ JSON์ ์ธ์ด์ ํต์ฌ ๋ถ๋ถ์ผ๋ก ํฌํจํ๋ ์ด์ ๋ฅผ ์๊ฐํด๋ณด์ญ์์ค. YAML์ ๊ฒฝ์ฐ๋ ์ค์ ๋ก ๊ทธ๋ ๊ฒ ๋ค๋ฅด์ง ์์ต๋๋ค.
@bgshacklett ๋ด๊ฐ ๊ผญ๋๊ฐ์ ๋ ์๋ค๋ก๋ถํฐ๋ค์
platyPS ํ์๊ฐ ์ถฉ๋ถํฉ๋๊น?
@vors PowerShell Core repo์์ platyPS YAML ํ์๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
@lzybkr ๊ณผ ๊ฐ์ PowerShell ๊ฐค๋ฌ๋ฆฌ์ ๋ณ๋ ๊ณต์ ๋ชจ๋ ์์ด๋์ด๋ฅผ ์ ํธํฉ๋๋ค. ์ด์ powershell ๋ฒ์ ์์ ์ฌ์ฉํ ์ ์๊ณ ์์ฒด ๋ฆด๋ฆฌ์ค๋ฅผ ๊ฐ์ง ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๊ฒ์ sqlserver ๋ชจ๋๊ณผ ๊ฐ์ต๋๋ค. @BrucePay ๊ฐ Microsoft ์์ฒด ๋ชจ๋์ด์๋ PowerShell Gallery์ ํ์ด์ง๋ผ๋ฉด ์ฐพ๊ธฐ๊ฐ ๋ ์ฌ์ธ ๊ฒ์ด๋ฉฐ ๋ชจ๋๊ฐ ์ ๋ขฐํ ์ ์๋ค๋ ๊ฒ์ ์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ XML ๋ฐ JSON์ผ๋ก Powershell์ ๋ฐฑ์ ๋์๋์ง ์ดํดํฉ๋๋ค.
์ค์ํ ๊ฒ์ ConvertFrom-YAML
๋ฐ ConvertFrom-YAML
๊ณต์ ํจ์๊ฐ ์กด์ฌํ๋ค๋ ๊ฒ์
๋๋ค. YAML์ ๊ตฌ์ฑ ํ์ผ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ์์ด๊ณ @bgshacklett์ด ์ง์ ํ ๊ฒ์ฒ๋ผ ํ์ฌ ๋ชจ๋์ด
๋ธ๋ก๊ทธ ํญ๋ชฉ์ ํ ์คํธํ๊ณ YAML ํ์ผ์์ ์๋ํ๋ ๊ฒ์ผ๋ก ํ์ธ ๋ ๋ ๋ชจ๋ ์ธ PSYaml ๋ฐ powershell-yaml์ ๋น๊ตํ์ต๋๋ค .
๋ด๋ถ์ ์ผ๋ก ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋์์ด ์์ต๋๋ค.
| ๋ชจ๋ | ๋งคํ | ์ํ์ค |
| --------- | : -------------- | ----------- |
| PSYaml | OrderedDictionary | ์ด๋ ์ด |
| powershell-yaml | Hastable | ๋ชฉ๋ก |
ํ์ค ConvertFrom-YAML
๋ฐ ConvertFrom-YAML
๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ค์ ๋ก, ConvertFrom-Yaml
์์ powershell-yaml
์ฉ๋ OrderedDictionary
๋ก ๋ณํ ํ ๋ -ordered
ํ๋ผ๋ฏธํฐ.
์ด ๋ชจ๋์ ์ ์ ๋์ ์ฑ๊ณต์ ์ผ๋ก ์ฌ์ฉํ์ง๋ง (DSC ๊ตฌ์ฑ ๋ฐ์ดํฐ ์ฉ Datum ๋ชจ๋ ๋ฐ ์ฃผ๋ฐฉ yamls์์) ํ
์คํธ ํ vsts ๋น๋ ์ ์๊ฐ ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋ถ๋ฅด๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค :
get-content -Raw MyFile.yml | ConvertFrom-Yaml -Ordered
(์ฌ๋๋ค์ ์ข ์ข-Raw
๋์นฉ๋๋ค).
Microsoft _official_ ๋ชจ๋์ด ํ์ํ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค. MSFT์ ๋ ๋ง์ ์ค๋ฒ ํค๋๋ฅผ ์ถ๊ฐํ๊ณ ํ ์ ๋ค์ ๋ฐ๋ช
ํ๋ ๊ฒ์
๋๋ค. ๋ฌธ์ ๋ ๋ ๋์ ์ ๊ทผ ๋ฐฉ์์
๋๋ค ...
99 ๊ฐ์ ๊ธฐ์กด ๊ตฌํ ์ค์์ ํ์ค์ ๋ง๋ค๋ ค๊ณ ํ ๋ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง ์๊ณ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์, ์ธ์ด ๋ฐ์์ ๋ ์ข์ ๊ฒ์
๋๋ค. ์ข
์์ฑ ๊ด๋ฆฌ๊ฐ ๋ ์ข์ ์ ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ PS์ ๋ฒ๋ค๋ก ๋ฌถ๋ ๊ฒ์ ํด๊ฒฐ์ฑ
์ด ์๋๋๋ค.
๊ด๋ฒ์ํ npm ๋ฌธ์ ๋ ํ๋ก์ธ์ค์ ์คํจ์ด๊ธฐ๋ํฉ๋๋ค. Fork ๋ฐ re-publish๋ ์ฆ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ต์ ๋ฒ์ ์ ์ธํฐ๋ท์์ ์ฑ์ ๋น๋ํ๋ ๊ฒ์ด ๋ง์ ๋ผ์ด๋ธ ์ฑ์ ๋ง๊ฐ ๋จ๋ฆฐ ์ด์ ์์ต๋๋ค.
@gaelcolas์ ๋์ํฉ๋๋ค. ํ์ง์ ๋์ด๊ณ ๋ณด์ฅํ๊ธฐ ์ํด ๊ธฐ์กด ์ปค๋ฎค๋ํฐ ๋ชจ๋์ ์์ ์์ ํจ๊ป ์์ ํ๋ ๋ชจ๋ ์ฌ๋์๊ฒ ์ด๊ฒ์ด ๋ ๋ซ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ฌํ ํ๋ก์ ํธ์ ๋ํ ํ ์คํธ์๋ AppVeyor, Travis CI, VSTS, AWS CloudFormation ๋ฑ๊ณผ ๊ฐ์ ๋ง์ ์ค์ YAML ํ์ผ ์์ ์ด ํฌํจ๋์ด์ผํ๋ค๋ ์ ์ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. YAML deserilization์ ๋ํ ์ ์ ๊ฒฝํ์ ์ํด ์ ๋ ํ๋์ ์๋ฃจ์ ์ด ๋ณดํธ์ ์ผ๋ก ์๋ํ๋ ๋ฐ๋ ๊ฑฐ์ ์ฑ๊ณตํ์ง ๋ชปํ๊ณ ๊ถ๊ทน์ ์ผ๋ก ํ ์ ์ฌ๋ฌ ๋ฒ ์ฌ๋ฐ ๋ช ํด์ผํ์ต๋๋ค. ๊ทธ๋ฐ ์๋ฏธ์์ ์ ๋ @BrucePay "์ข์ YAML ํ์๊ฐ ์์ต๋๋ค"์ ๋์ํฉ๋๋ค.
์ด platyPS ๋ชจ๋์ ์ด๋ฏธ PowerShell ๋์๋ง ํ๊ฒฝ์์ ํ๋ฐํ๊ฒ ์ฌ์ฉ๋๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ๋๋ MSFT์์ ์๋ฌด๋์ด ๋ชจ๋์ด ํ๋ ๊ฐ๋ น ๋๋ฌธ์ ์ผ๋ง๋ ์ข์์ง ๋งํ ์ ์๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋ค์ ์กฐ์ฉํ ๊ทธ๊ฒ์ ๊ฑฐ๋ถํ๊ฑฐ๋ ๊ฐ์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ ๋ํด ์ค๋ ์ ์ ์ด์ผ๊ธฐ ํด ์์ง๋ง ์ฌ๊ธฐ์์ด ๋ชจ๋์ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ ์์๋ ๋ฐฉ๋ฒ์ ์ ์ ์์ต๋๋ค.
์๋ง๋ @adityapatwardhan ๊ณผ @ SteveL-MSFT๋ ํนํ ์๋ก์ด Help RFC๊ฐ ์ด๋ฏธ ์คํ ๋จ๊ณ์ ์๊ธฐ ๋๋ฌธ์ ๊ณํ๊ณผ ํ์ ๋ผ์ธ์ ์ด ๊ฒ์
๋๋ค.
์ ๊ฐ์ธ์ ์ธ ๊ฒฌํด๋ Msft์ "๊ณต์"๋ชจ๋์ ์๊ตฌํ๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ์ปค๋ฎค๋ํฐ ๋ชจ๋์ด ์ฑ๊ณตํ๊ณ ์ฌ์ค์์ ํ์ค์ด๋๋ ๊ฒ์ ๋ฐ๋ผ๋ ๊ฒ์ ๋๋ค.
@iSazonov ์ ์ ์ ๋ ์คํค๋ง๋ฅผ ์ง๋ ฌํ / ์ญ ์ง๋ ฌํํ๋ ์๋ฃจ์ ์ ๊ฐ๋ ๊ฒ์ ํ ๊ฐ์ง์ ๋๋ค. YAML์ ์ค์ํ๋ ๋ชจ๋ ์คํค๋ง์์ ์ผ๋ฐ์ ์ผ๋ก ์๋ํ๋ ์๋ฃจ์ ์ ๊ฐ๋ ๊ฒ์ ๋ ๋ค๋ฅธ ์ผ์ ๋๋ค.
๋น์ฉ์ ์ ๊ฐํ๊ธฐ ์ํด ์ปค๋ฎค๋ํฐ ํ๋ก์ ํธ๋ฅผ ์ฌ์ฌ์ฉํ๋ ค๋ MSFT์ ๋ฐ๋์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก MSFT๋ ๋ง์ ์ปค๋ฎค๋ํฐ ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ์ง ์์ ์ ์์ต๋๋ค.
MSFT๋ 10 ๋
์ ์ Powershell ์ฌ์์ ๊ฒ์ํ์ง๋ง MSFT๊ฐ ์ ์ฉ๋๊ธฐ ์ ๊น์ง๋ ์๋ฌด๋์ด๋ฅผ ํฌํ
ํ์ง ์์์ต๋๋ค.
OpenSSL ํ๋ก์ ํธ๋ ์๋
๋์ ์กด์ฌ ํด ์์ง๋ง MSFT๋์ด๋ฅผ ์ํํ์ง ์์ ๋์ ์๋ฌด๋ Windows๋ก ์ด์ํ์ง ์์์ต๋๋ค.
MSFT๋ ์์ฒ ๊ฐ์ API ์ธํฐํ์ด์ค๋ฅผ ๊ณต๊ฐํ์ง๋ง ๊ทธ์ค ๋ช ๊ฐ๊ฐ Unix๋ก ํฌํ
๋์์ต๋๊น?
ํ์ฌ๊ฐ Mono๋ฅผ ์ฌ์ฌ์ฉํ๋ ๋์ .Net Core ํ๋ก์ ํธ๋ฅผ ์์ํ ์ด์ ์ ๋ํ ํฅ๋ฏธ๋ก์ด ์ ์ ๋ฌด์์
๋๊น?
PowerShell์ ์ด๋ฏธ 1 ๋
๋ฐ์ด ์คํ ์์ค ํ๋ก์ ํธ์ด์ง๋ง์ด ์ ์ฅ์์์๋ ์ปค๋ฎค๋ํฐ์ ํ ์ฌ๋ ๋ง @markekraus ์ฝ๋์ ์ฒด๊ณ์ ์ผ๋ก ๊ธฐ์ฌํ๊ณ ํ ์ฌ๋ ๋ง @ mklement0์์ ์ฒด๊ณ์ ์ธ ๋ถ์์ ์ํํฉ๋๋ค.
ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋๋๋ฉด ๋ ๋ง์ ๊ธฐ์ฌ๋ฅผ ํ ์ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๋ด์ผ ์ํฉ์ด ๋ฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ฏฟ์ง ์์ ๊ฒ์
๋๋ค.
@markekraus ๋๋ http://yaml.org/spec/1.2/spec.html#id2802346์์ ๋งค์ฐ ํฌ๋งํฉ๋๋ค :-)
@iSazonov ๋ ํ์ฌ ๋ชจ๋์ ์ง์, ์ ๋ขฐ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ ๋ํ ์ค์ํ ์ฌํญ์ ์ ์ํฉ๋๋ค. ์ผ๋ถ ํ์ฌ ๋ชจ๋์ Pester์ ๊ฐ์ด ์ฑ๊ณตํ๊ณ ์ฑ์ํด์ง ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํ๋ฅญํ YAML ๋ชจ๋์ด ํฅํ ๋ช ๋
๋์ ์์ฒด์ ์ผ๋ก ๋ฐ์ ํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํด์๋ ์๋ฉ๋๋ค. ํ์ค์ ๋๋ถ๋ถ์ ๋ชจ๋์ด ํน์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ผ๋ฐ์ ์ธ ๊ธฐ๋ณธ ์ฝ๋๋ฅผ ๊ฒ์ํ๋ ๋ฐ ์ฑ๊ณตํ ์์ฑ์์ ์ํด ๊ฒ์๋๋ค๋ ๊ฒ์
๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ๋ชฉํ๋กํ๋ 2 ๊ฐ์ ๋ชจ๋๋ก ๋๋ธ ๋ฐฉ๋ฒ์
๋๋ค. ์ด์์ ์ผ๋ก๋ ์ด๋ค์ ๋ณํฉํ์ฌ ๋
ธ๋ ฅ์ ์ง์คํด์ผํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฏธ๋์ ๋ ๋ฉ์ด ์ง๊ฑฐ๋ ๋ถ์ค ํด์ ธ ๊ณง ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ ๋ง์ ๋ชจ๋์ ๊ฒ์ํ๊ฒ ๋ ๊ฒ์
๋๋ค.
์ ์ ํ ํ์๋ฅผ ๊ฐ๋ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ ๊ธฐ๋ณธ (๊ทธ๋ฆฌ๊ณ ๋
ธ๋ ฅ ์ธก๋ฉด์์ ์๋นํ) ๊ธฐ์ด ์์
์ด ํ์ํ๊ณ ์ข์ YAML ๋ชจ๋์ ๊ฐ๊ธฐ ์ํด ํ์ํจ์ ๋ํ๋
๋๋ค.
๋๋ YAML ์ ๋ฌธ๊ฐ๋ ์๋์ง๋ง ์ด๊ฒ์ ๋์จํ ์ธ์ด ์ฌ์ ์์ฒด ๋๋ VSTS ๋๋ AppVeyor์ ๊ฐ์ ๋ค์ํ ์์คํ
์ ํน์ ํด์์ ๋ฌธ์ ์
๋๊น, ์๋๋ฉด ์ข์ ํ์๊ฐ ๋ถ์กฑํ ๊ฒ์ผ๊น ์?
VSCode์์ YAML์ ์์ฑํ๊ณ VSTS์์ ์คํํ ๋๋ง VSTS ํ์๊ฐ ์ข์ํ์ง ์๋๋ค๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด ์ค๋ง ์ค๋ฌ์ ์ต๋๋ค.
๋์๊ฒ์ด ๋ํ๋ ์คํ ์์ค์ "์ฝ๋ ํ ๋ ์ด์ / ์ํคํ ์ฒ"๋ฌธ์ ์ ๊ด๋ จ์ด ์์ต๋๋ค.
์คํ ์์ค๋ ์ข์ ์๋ ์์ด๋์ด์ ์ฝ๋ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์๋ฃจ์ ์ผ๋ก ์ฑํ๋์์ ๋ ์ฌ๊ฐํ ์ํคํ ์ฒ ์๋ชฉ์ด ์ฃผ์ด์ง์ง ์์ผ๋ฉด ์ ์ ํ ์ค๊ณ ๊ฒํ ์์ ์ฒ๋ฆฌ ํ ์์๋ ํญ๋ชฉ์ ๋ํ 10 ๋ ์ ๋ฒ๊ทธ ์์ ์ ๋๋ค. .
@bergmeister "์ฑ์ํ ์ฑ๊ณต"์ ์ค์ ์ฌ๋ก์์๋ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ผ๋ฐํํ๋ ์๋ฌด๋ฅผ ๋งก์ ์ ๊ทน์ ์ธ ๊ด๋ฆฌ์๊ฐ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํ์ง๋ง ๊ทธ๋ ๊ฒ ๋ณด์ฅ ํ ์๋ ์์ต๋๋ค.
์ฐ๋ฆฌ ์ค ์ผ๋ถ๋ "YAML ์ง์์ ํ์ผ ์์ฑ์ ๋ํ ์ง์๊ณผ ๊ฐ์ต๋๋ค. ํต์ฌ์ ๋๋ค. ๋์ผํ ๋ฐฉ์์ผ๋ก ์ค๊ณํด์ผํฉ๋๋ค => ํด๋น ๊ธฐ๋ฅ์ ๋ํ ํ์ค์ด ๋๋ ค๋ ์๋๋กํด์ผํฉ๋๋ค."
1) ์คํ ์์ค์ ๋ฐ ์ํคํ ์ฒ ์์ฑ๊ณผ 2) Microsoft PowerShell ๊ฐ๋ฐ์๊ฐ ์์ ์ ์ ์ฉํ๋ ๊ณ ๋๋ก ์ค๊ณ๋ ์ ๊ทผ ๋ฐฉ์์ ์ด๊ตฌํ๋ YAML์ ํต์ฌ ํน์ฑ์ ์กฐํฉ์ ๋๋ค. ์คํ ์์ค๊ฐ ์ค์ ๋ก ์ฐ๋ฆฌ์๊ฒ ๋์์ด ๋ ์์๋ ๋ค๋ฅธ ๋ชจ๋ ๋ฉ์ง ๊ฒ์์ ๋ฒ์ด๋๋ ๊ฒ์ด ๋ฐ๋์ ํ์ํ ๊ฒ์ ์๋๋๋ค.
์ํํธ์จ์ด ์ฑ์๋์ ๋ํ ๋งค์ฐ ์ ํจํ ํฌ์ธํธ. ๋๋ ์ฌ๊ธฐ์ ๋์ด๋ ๋ ๋ชจ๋์ ๋ฉด๋ฐํ ์ดํด ๋ณด์ง ์์๊ณ ์ด๋ค ์๊ฒฌ๋ ์ ์ํ๊ธฐ ์ํด yamldotnet์ ๋ณด์ง ์์์ต๋๋ค. 6.2.0์ ๋ํ ๊ณํ์ ์์ํ ๋ ์ดํด๋ณผ ์์๋ ๊ฒ
์คํดํ์ง ๋ง์ธ์. ์ ๋ PowerShell ํ๊ณผ MSFT ๊ฐ๋ฐ์์ ๊ฒฝํ๊ณผ ์ฒด๊ณ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์์คํ๊ฒ ์๊ฐํฉ๋๋ค. ์์ ์ ์คํฌํ๊ฐ ์ฐํ MSFT์ ๋ชจ๋๋ก ๋ชจ๋ ๊ฒฉ์ฐจ๋ฅผ ๋ฉ์ฐ๋ ค๋ ๊ฒ์ด ์๋ชป์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. (๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ด๋ฏธ DSC ๋ฆฌ์์ค์ ๋ฌธ์ ๋ฅผ ๋ณด์์ต๋๋ค).
MSFT ์ ๊ณต ๋ชจ๋์ ๋ํ ์์กด๋๋ฅผ ๋์ด๋ ๊ฒ์ ์ทจ์ฝํ๋ฉฐ ์ปค๋ฎค๋ํฐ ์ฑ์ฅ์ด๋ ์ํ๊ณ์ ๋ค์์ฑ์ ๋์์ด๋์ง ์์ต๋๋ค.
๋๋ MSFT๊ฐ ์คํ ์์ค ํ๋ก์ ํธ์ ๊ธฐ์ฌํ์ฌ ๊ทธ๋ค์ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ๊ดํ๊ณผ ํ์ง์ ํฅ์์ํค๋ ํํธ ๊ทธ๋ค์ ๋ํ ์์กด์ฑ์ ๋ง๋ค์ง ์๋ ๊ฒ์ ์ฐฌ์ฑํฉ๋๋ค (์๋ํ๋ฉด ๋ค๋์ฅ ...!).
์น์ธ ๋ ๊ฒ์ ๊ณ ์ ํ ๊ณต๊ธ์๋ก์์ _MSFT_๋ ์ด๋ฏธ ๊ต์ก์ ์ด๋ ค์์ ๊ฒช๊ณ ์๋ ์ค๋๋ ๋ชจ๋ธ์ด๋ฉฐ ์ปค๋ฎค๋ํฐ๊ฐ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฅ๋ คํ๋ ๋ฐ ๋์์ด๋์ง ์์ต๋๋ค. OSS ์ํ๊ณ์ ํ๋).
PS ํ์ด ์ฒ์๋ถํฐ ๋ค์ ์์ฑํ๋ ๋์ YAML ์ง์์ด ํต์ฌ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ธฐ์กด ํ๋ก์ ํธ ๊ด๋ฆฌ์๊ฐ ๊ฐ์ ํ๋๋ก ๋๊ณ ํ๋ก์ ํธ๋ฅผ ๋ณํฉํ๊ณ ์ด๋ค ์์
์ด ํ์ํ์ง๋ค์ ์์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ํต์ฌ ๊ธฐ๋ฅ ๋ชจ๋์ ๋ํ PS ํ์ ๊ฒฌ์ต / ๋ฉํ ์ญ๊ณผ ๋น์ทํฉ๋๋ค.
์ ๋ชจ๋์ ๋ค์ ์์ฑํ๋ ๊ฒ๋ง์ผ๋ก๋ ์์ง๋์ด๋ง ๋ฌธ์ ๊ฐ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ ์์ง๋์ด์ ๋ฐ์์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. YAML ๋ชจ๋์ ๋ค์ ์์ฑํ๋ ๊ฒ์ PS ํ์ _ ์ฌ์ด ์์ง๋์ด๋ง ์์
์ด์ง๋ง ์ปค๋ฎค๋ํฐ ์ฑ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ฑฐ๋ ์ ์ ํ ์ธ์ผํฐ๋ธ๋ฅผ ์ ๊ณตํ์ง๋ ์์ต๋๋ค.
Yaml์ด์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํ ์ ๋ต์ ํญ๋ชฉ์ธ์ง ์ฌ๋ถ๋ MSFT์ ์์ฒญ์
๋๋ค. :)
๋ฟก ๋นต๋จ
๋๋ YAML ์ ๋ฌธ๊ฐ๊ฐ ์๋ ์์ ์ผ๋ก ์ด๊ฒ์ ์๋์ ๋ ๊ฒ์ ๋๋ค. yaml ๊ตฌ์ฑ๊ณผ ๊ฐ์ AppVeyor๋ฅผ ๋ด franken-pipeline์ ๊ตฝ๊ณ ์ถ์ ๋ ์ด์ ๋ํ ์ฐ๊ตฌ๋ฅผ ์ํํ์ต๋๋ค. ์์ญ ๊ฐ์ C # ํ๋ก์ ํธ๊ฐ YAML์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์ดํด ๋ณด์์ต๋๋ค. PowerShell ํ๋ก์ ํธ๋ YamlDotNet์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์ฝ์ง ์๋ค๊ณ ๊ฐ์ ํ ์ ์์ต๋๋ค. ๋๋ ์ ์ด๋ PSYaml๊ณผ powershell-yaml์ ๊ฐ์ง๊ณ ๋์๊ณ ๊ทธ๊ฒ๋ค์ ์ฌ์ฉํ๋ ๋ช ๊ฐ์ง PowerShell ํ๋ก์ ํธ๋ฅผ ๋ ๋ฉด๋ฐํ ์ดํด ๋ณด์์ต๋๋ค.
๋๋ YAML ์ ๋ฌธ๊ฐ๋ ์๋์ง๋ง ์ด๊ฒ์ ๋์จํ ์ธ์ด ์ฌ์ ์์ฒด ๋๋ VSTS ๋๋ AppVeyor์ ๊ฐ์ ๋ค์ํ ์์คํ ์ ํน์ ํด์์ ๋ฌธ์ ์ ๋๊น, ์๋๋ฉด ์ข์ ํ์๊ฐ ๋ถ์กฑํ ๊ฒ์ผ๊น ์?
๋๋ ๊ธฐ๊ณ๊ฐ ๋ ์ฝ๊ฒ ์ฝ์ ์์๋ ๊ฐ๋ฅ์ฑ์ ํฌ์ํ๋ฉด์ ์ธ๊ฐ์ด ์ฝ์ ์์๋ YAML์ ๋ณธ์ง์ด๋ผ๊ณ ์๊ฐํ๋ค. ์ด ๊ฐ๋ ์ฑ ์ฐ์ ํจ๋ฌ๋ค์์ YAML ์์ฑ์๊ฐ YAML ํ์ผ์ ์์ฑํ๋ ๋ฐฉ์์ผ๋ก ํ์ฅ๋ฉ๋๋ค. ๊ฒฐ๊ณผ YAML์ YAML ์ฌ์์ ๋ฐ๋ผ ํธํ๋์ง๋ง ์ค์ ๋ก ์ ์ฉํ ๊ฐ์ฒด์ ๋ํ ์ค๊ฐ์๋ก์ ์ญ ์ง๋ ฌํ ๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ฝ๋์์ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฑ๋ฉ๋๋ค.
์ฆ, YAML์์ ๊ฐ์ฒด๋ก์ ์ญ ์ง๋ ฌํ์ 90 %๋ ๋ฌธ์ ๊ฐ ์๋์ง๋ง ๋ฐ์ดํฐ ๋์์ธ / ์ํคํ ์ฒ๊ฐ ๋ฌธ์ ์ ๋๋ค. ๋๋จธ์ง 10 %๋ "YAML์ ํ์ฑํ๊ธฐ ์ด๋ ต์ต๋๋ค."๋ผ๊ณ ์๊ฐํ ์์๋ ํ์ฑ ๋ฌธ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ deserialized ๊ฐ์ฒด๋ ์ฐพ๊ณ ์๋ ๊ฒ์ ์ ๊ทํํ๋ ๊ฒ๋ณด๋ค ์ฝ๊ฐ ๋ ์ ์ฉํฉ๋๋ค ....
์๋ฅผ ๋ค์ด AppVeyor.yml์ ๋ณด์ ๋ฌธ์์ด์
environment:
my_var1: value1
my_var2: value2
my_secure_var1:
secure: FW3tJ3fMncxvs58/ifSP7w==
powershell-yaml
๋ฐ YamlDotNet
๋ ์ด๊ฒ์ ๊ฐ์ฒด๋ก ๋ณํํ์ง๋ง, ๋ง์ ๋
ผ๋ฆฌ์์ด ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ผ๋จ ๊ทธ ๋
ผ๋ฆฌ๊ฐ ์์ผ๋ฉด์ด ์คํค๋ง์ ์ ํฉํ์ง๋ง ๋ค๋ฅธ ๋
ผ๋ฆฌ๋ ์ด๋ป์ต๋๊น?
์ด๋ฌํ ๋์ผํ ๋ฐ์ดํฐ ๋์์ธ ๋ฌธ์ ์ค ์ผ๋ถ๋ JSON์ ๊ดด๋กญํ์ง ๋ง JSON์ ๋ ์๊ฒฉํ ํน์ฑ์ผ๋ก ์ธํด ์ด๋ฌํ ๋จ์ ์ ํด๊ฒฐํ ์์๋ ๋ชจ๋ธ์ ๋ง๋๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค. ์ด ์ค๋ ๋์์ ์ธ๊ธ ๋ YAML ๋์๋ฆฌ์ผ๋ผ์ด์ ์ ๋ํ ๋ชจ๋ธ์ ๋ง๋๋ ๊ฒ์ ๊ฐ๋ฅํ๋ค๋ฉด ์ ๋ชฝ์ ๋๋ค.
๋ฌผ๋ก , ๋ชจ๋ธ์ ํ์ฌ JSON cmdlet์์ ์ฌ์ฉํ ์์๋ ๊ธฐ๋ฅ์ด ์๋์ง๋ง ์ค์ ๋ก ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค. "๊ณต์์ ์ธ"YAML ๋ชจ๋ / cmdlet์ ๋ํ ๋ฐ์ธ์ด ์์ผ๋ฉด "ํ์"๊ธฐ๋ฅ์ผ๋ก ๋ด๋ ค ๋์ ๊ฒ์ ๋๋ค. ํนํ v5์ PowerShell ํด๋์ค๊ฐ ์ถ๊ฐ๋๋ฉด์ ๋์น ๊ธฐํ์ ๋๋ค.
IMO, YAML ๋ฌธ์์ด์ ๊ฐ์ฒด๋ก ๊ฐ์ ธ ์ค๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ด ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค (์ ์ด๋ 90 %์ ์๊ฐ). ํธ๋ฆญ์ YAML ๋ฌธ์์ด์ _useful_ ๊ฐ์ฒด๋ก ๊ฐ์ ธ ์ค๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์ํด์๋ ์๋ฃจ์ ์ ์ ์ฐ์ฑ์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ์ ์ฐ์ฑ์ ๋ค์ ์ ๊ทผ ๊ฐ๋ฅํด์ผํ๋ฉฐ ์ง๋ ฌํ ์กฐ์ธ์ ์ ๊ณตํ๊ธฐ ์ํด @IISResetMe ๋ฐ @lzybkr ์ด ํ์ํ์ง ์์์ผํฉ๋๋ค ....
๊ทธ ํจ๊ณผ๋ฅผ ์ํด ์ผ๋ฐ์ ์ธ ๋ฒ์์์ ์๋ํ๋ ๊ฒ์ ๋ณด์ง ๋ชปํ์ต๋๋ค. ํ๋ก์ ํธ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ์ฑํํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ ์ค์ ๋ก ์ ์ฉํ ๊ฐ์ฒด์ ๋ํ ์ค๊ฐ์๋ก ์ฌ์ฉํฉ๋๋ค (์ ์คํธ๋ฆผ์์ ๊ตฌ์ ์ ธ์ผํ๋ ํ ์ฌ์ฐฝ์กฐ๋ก ์ด์ด์ง). ๋๋ ํ๋ก์ ํธ๋ YAML์์ ๊ฐ์ฒด๋ก ์ฝ๊ฒ ๊ตฌ๋ฌธ ๋ถ์ํ๊ธฐ ์ํด YAML ๊ฐ๋ ์ฑ์ ์์์ํต๋๋ค.
๋ฟก ๋นต๋จ
PS ํ์ด ์ฒ์๋ถํฐ ๋ค์ ์์ฑํ๋ ๋์ YAML ์ง์์ด ํต์ฌ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ธฐ์กด ํ๋ก์ ํธ ๊ด๋ฆฌ์๊ฐ ๊ฐ์ ํ ์ ์๋๋ก ๋๊ณ ํ๋ก์ ํธ๋ฅผ ๋ณํฉ ํ ์์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํ๊ณ ํ์ํ ์ฌํญ์
MSFT๊ฐ ๋ช ๋ ํ Mono๋ฅผ ๊ณ์ํ๋ ๋์ .Net Core ํ๋ก์ ํธ๋ฅผ ์์ํ ์ด์ ๋ฅผ ์๋ฌธ ํด๋ณด์ญ์์ค.
MSFT๋ ์ปค๋ฎค๋ํฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์ปค๋ฎค๋ํฐ๋ ๋ค๋ฅธ ์ปค๋ฎค๋ํฐ์์ ์ํธ ์์ฉ์ ๋ํด ๋์ผํ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ฌธ๋งฅ ์, ๋๋ ์ด๋ค ์์ ์ด ์ฒ์๋ถํฐ ์ํ๋๋ค๋ ๊ฒ์ ์์ํ๋ ๊ฒ์ด ์๋๋ผ ์ฝ๋๋ฅผ ์ฑํ ํ ์ ์์ง๋ง ๊ฐ์ ๋๊ธฐ ์ ์ ์์คํ ๊ฐ๋ฐ ์ํคํ ์ฒ ๊ด์ ์์ ๋ฉด๋ฐํ ์กฐ์ฌ๋์ด์ผํฉ๋๋ค. ๊ฒํ ๋ฐ ์ฌ ์ถ์ ํ ์คํ ์์ค๊ฐ ๋ ์๋ ์์ต๋๋ค.
์ ์์ ์ ๊ฑฐ์ ๋ชจ๋ ๊ณณ์์ ํ์ฉ ๋ ํต์ฌ ์ฝ๋์ ๋์์ค๋ฅผ ์ฒ ์ ํ ์ดํดํ๋ ํ์ผ๋ก๋ถํฐ ์ค์ํ ์ํคํ ์ฒ ๊ฒํ ๋ฐ ์์ ์๋ฐ๋ ๊ฒ์ ๋๋ค.
ํญ์ ๊ณ ๋ คํ ๊ฐ์น๊ฐ์๋ ๋ ๋ค๋ฅธ ๋ชจ๋ธ์ ๋งค์ / ๊ณ์ฝ / ์ด์ ๋๋ค. ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ช ์ด์์ ์ปค๋ฎค๋ํฐ ๊ตฌ์ฑ์ / ํ์ฌ์ ์์ ์ ์กฐ๊ฑด์ ๋๋ฌํ์ฌ MSFT ์ฃผ๋ / ์ด์ง ๋ ๊ฐ๋ฐ์ฃผ๊ธฐ์ ๋ํ ์๋น์ค๋ฅผ ๋ชจ์งํ์ฌ ์ ํ์ (์ผ๋ถ ๋ฐฉ์์ผ๋ก) ํตํฉ / ์ฐ๊ฒฐํฉ๋๋ค. . ์ด๊ฒ์ Net Foundation์ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ MIT์์ ๋ผ์ด์ผ์ค๋ฅผ ๋ถ์ฌํ๊ณ Xamarin์ ํตํด Miguel de Icaza ๋ฐ Nat Friedman๊ณผ ๊ฐ์ ์ฃผ์ ๋ฆฌ์์ค๋ฅผ ๋ชจ์ง / ๊ณ์ฝ / ๊ด๋ จ์ํจ Xamarin๊ณผ ํจ๊ป ์ฑ๊ณต์ ์ผ๋ก ์ํ๋์์ต๋๋ค. ์ผ๋ถ๋ ์ด๊ฒ์ด ์คํ ์์ค ๋ฐ์ญ์ด๋ผ๊ณ ์ฐ๋ ์๋ฆฌ๋ฅผ๋ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ์ฌ๋๋ค๊ณผ ์๊ท๋ชจ ๊ธฐ์ ์ด ๋์ค์ ํ๋ ์ด์์ ์ฃผ์ ์ํ๊ณ์ ๊ด๋ฒ์ํ๊ฒ ์ฑํํ๊ณ ํตํฉํ๋ ๋ฐ ์ ํฉ ํ ์์๋ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ํ๊ณ ๊ฐ๋ฐํ๋ ๋ฐ ๊ธ์ ์ ์ธ ์ธ์ผํฐ๋ธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ ์ฒด ๊ฐ๋ ๊ณผ ๊ธฐ๋ฅ๊ณผ ๋ง์ ์์ด๋์ด๋ฅผ ๋ณต์ฌํ์ง๋ง ์ ์์์ (ํ๋ฉด์ ์ผ๋ก) ์ฝ๋๋ฅผ ๋ฒ๋ฆฌ๋ ๋น ์ฌ๋ด ๋ค์ ์คํ์ผ๋ก ๋ฐ๋ก ์ด๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@iSazonov ๋ฆ๊ฒ ๋ต์ฅ์ ๋๋ ค ์ฃ์กํฉ๋๋ค. platyPS yaml ํ์๋ ์ข์ง ์์ต๋๋ค. ํค ๊ฐ ์๋ง ์ง์ํฉ๋๋ค. ๋ํ YamlDotNet์ ์ฌ์ฉํ์ฌ yaml์ ์์ฑํฉ๋๋ค.
์ด๋ฅผ ํต์ฌ ๊ธฐ๋ฅ ์ธํธ์์ ์ ์ธํ๋ ค๋ ๊ฐ์ ๊ณผ ๊ด๋ จํ์ฌ, Ruby, Python ๋๋ Node.js์ ๋น๊ตํ์ฌ PowerShell์ด โโ์ข ์์ฑ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์๋ ๋งค์ฐ ์ค์ํ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ด๋ฌํ ๊ฐ ์ธ์ด์๋ ์ข
์์ฑ ๊ด๋ฆฌ ๋๊ตฌ (๋ฒ ๋ค๋ฌ, pip, npm / yarn)๊ฐ์์ด ์ธ๋ถ ์ข
์์ฑ ๊ด๋ฆฌ๋ฅผ ์ฝ๊ณ , ๋ฌด์๋ณด๋ค ์ฌํ ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค. Gemfile/Gemfile.lock
๋๋ package.json/package-lock.json [,yarn.lock]
์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ฉด ํ์ํ ๋ชจ๋ ํจํค์ง๋ฅผ ์ฝ๊ฒ ์ค์นํ ์ ์๊ณ ๋งค์ฐ ํน์ ํ ํจ์น ์์ค์ ์ ์งํ ์ ์๋ค๋ ๊ฒ์ ์ ์๊ฐ์๋ ๋งค์ฐ ์ค์ํ ์ฐจ์ด์ ์
๋๋ค. ์ด ๊ทผ๋ณธ์ ์ธ ๊ฒ์ ์คํํ ์์๋ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋๋ ์ด์ .
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Nuget์ผ๋ก ์ํ ํ ์์๋ ์์ ์ด์์ ์ ์์ง๋ง PowerShell์ ๋ํ ์ข ์์ฑ ๊ด๋ฆฌ ์ ๋ต / ํจํด์ ์ค๋ช ํ๋ ๊ธฐ์ฌ๋ ๋ณธ ์ ์ด ์์ต๋๋ค. ๊ฐค๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ ๊ฒ์ ํ๋ฅญํ์ง๋ง ํ์ํ ๋ชจ๋ ํจํค์ง๋ฅผ ์๋์ผ๋ก ์ค์นํด์ผํ๋ ๊ฒฝ์ฐ ์ค์ํ ๋ฐฐํฌ๋ฅผ ์ํ ํ ์ ์๊ฒ๋ฉ๋๋ค.
ํธ์งํ๋ค:
๊ทธ๋์ ๋ด๊ฐ _may_๋ฅผ ์ฐพ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค : https://docs.microsoft.com/en-us/powershell/wmf/5.0/psget_moduledependency. ์ ์ ์๊ฐ์๋ด์ด ํ
์คํธํ๊ฒ ์ต๋๋ค. ๊ทธ๊ฒ์ด ํจ๊ณผ๊ฐ ์๋ค๋ฉด, ์ด๊ฒ์ด ํต์ฌ ํญ๋ชฉ์ด์ด์ผํ๋์ง ์๋์ง์ ๋ํ ๋ด ์
์ฅ์ ์ฌ๊ณ ํด์ผ ํ ๊ฒ์
๋๋ค. ์ ๋ ์ฌ์ ํ JSON์ด ํต์ฌ ๊ธฐ๋ฅ์ด๋ผ๋ ์ฌ์ค๊ณผ ์กฐํ๋ฅผ ์ด๋ฃจ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๊ณ ์์ง๋ง "๊ฐ์ฅ ๋ฎ์ ๊ณตํต ๋ถ๋ชจ"๋ก ๊ฐ์ฃผ ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@bgshacklett ์ ๋งค์ฐ ์ข์ ์ง์ ์ ๋๋ค.
@ chuanjiao10- ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ง์ ๋ฌธ์ ์์ ๋ฐฉํด๊ฐ๋๋ ๋๊ธ์ ์ค์งํ์ธ์. ์ฌ๋ฐ๋ฅธ ํด๊ฒฐ์ฑ
์ Microsoft.PowerShell.Utility
๋ชจ๋์ ํฌํจ ํ์ง ์๊ณ ์ค์ ๋ก PowerShellGallery์์ ํธ์คํ
๋๋ ๋ณ๋์ ๋ชจ๋๋ก ๋ฐฐ์กํ๋ ๊ฒ์
๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋งํ ๋ XML ๋๋ JSON๊ณผ ๊ฐ์ ์๋ฏธ์ ๋๊น?
ํ์ฌ ์๊ฐํ๊ณ ์๋ ๊ฒ์ YAML์ด PowerShell์ ์ ํ ๊ตฌ์ ์ง์ง ์์์ผํ๋ค๋ ๊ฒ์ ๋๋ค. ๋์ ์ ๋ฒ์ ์ PowerShell์ ์ ํํ์ง ์๊ณ ๋ ์ ๋ฐ์ดํธ ํ ์์๋ ๋ณ๋์ ๋ชจ๋์ด์ด์ผํฉ๋๋ค.
YAML์ด XML๊ณผ ๊ฐ์ PowerShell๋ก ๊ตฌ์ ์ก๋ค๋ฉด ๋ถ๊ฐ๋ฅํฉ๋๋ค ([xml] "b"๋ฅผ ์๊ฐํด๋ณด์ญ์์ค).
JSON ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค๋ฉด YAML๊ณผ ํจ๊ป ์๋ํ๋ cmdlet์ด์์ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ค์ ๋ก PowerShell์ ๊ตฌ์์ง ๊ฒ์ ์๋์ง๋ง YAML ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๊ธฐ ์ํด PowerShell์ ์ ๋ฐ์ดํธํด์ผํ๋ ๋จ์ ์ด ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ด๊ฒ์๋ฐ์ ํธ์งํจ์ "์ฌ๋ฐ๋ฅธ"๊ฒ์ฒ๋ผ ๋๊ปด์ง์ง๋ง ์ค์ ๋ก๋ ์ณ์ ์ผ์ด ์๋๋ผ๊ณ ์ ์ํฉ๋๋ค.
@lzybkr ์ฐ๋ฆฌ๊ฐ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ์ง ์๋ค๊ณ ๋งํ ๊ฒ์ ์๊ณ ์์ง๋ง ์ด๊ฒ์ด ์ฌํ๊ฐ๊ฐ ํ์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ ๊ฐค๋ฌ๋ฆฌ์์ ๋ชจ๋์ _ ๋ํ _ ๋ฐฐ์กํด์ผํ์ง๋ง ํ๋ ์๋๋ฆฌ์ค์ ํค์ด ์ง๊ธ YAML์ ํ์๋กํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
6.0 ์๊ฐ๋๊ฐ ์๋ ์๋ ์์ง๋ง ์ด์ ๋ํด ์ด์ผ๊ธฐํด์ผํฉ๋๋ค.
์ฌ์ฉ ํ์ํ๊ณ IMO๊ฐ ๊ฐ๋ฅํ ๊ณ ํ์ง์ ๋์ฐฉํ๋์ด ์์ ์ ์ํํ๋ ๋ PowerShell์์์ ํ ์์ ๊ณผ PowerShell์ ํ์ ๋์์ผ๋ก์ด ๋๋ผ์ด๋ธ์ ๋ ๋ง์ ์ง์ญ ์ฌํ์ ์์ ๊ฐ์ ์ธ๋ถ ๋ชจ๋์ ๋ฐฐ์กํ๋ ๊ฒ์ ํจ์ฌ ๋ ๋ด๋ณด๊ธฐ์ ๋๋ค.
๋ค์ @ chuanjiao10 ์ด์ ์๋ # 2109์ PowerShell Core์ YAML Cmdlet์ ๋ฃ์ง ์๊ธฐ๋ก ๊ฒฐ์ ๊บผ์ผ ํ๋ฏ๋ก ๊ทธ ๋น์์๋ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฑฐ๋ถ๋์์ต๋๋ค.
...์ ๊ดํด์
๋จ๊ฒฐ์ ํ์ ๋๋ค. ์๋์ฐจ๊ฐ ํ์ํ ๋ฏธ๊ตญ์ธ, ๊ทธ๊ฐ ์๋งํธ์ ๊ฐ์ ๋ฐํด๋ฅผ ์ฌ๊ณ ์๋ง์กด์ ๊ฐ์ ์์ง์ ์ฌ๊ณ ์์ ์ ํฉ์น๋ ๊ฒ์ ๋ณธ ์ ์ด ์์ต๋๊น?
์๋์ฐจ๋ฅผ ์ํํธ์จ์ด์ ๋น๊ตํ๋ ๊ฒ์ ์๋์ฐจ์ ๊ตฌ์ฑ ์์๊ฐ ๋ค์ํ ๊ณต๊ธ ์ ์ฒด์์ ์ ๊ณต ํ ๋ค์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ํ์ผ๋ก ํจํค์ง๋๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ ๋ค์ ์๋ชป๋ ๋น์ ์ ๋๋ค. ์ด๋ ์ปค๋ฎค๋ํฐ์์ ๊ฐ๋ฐ ํ PowerShell ๋ชจ๋๊ณผ ๋ค๋ฅด์ง ์์ต๋๋ค. ์คํฌ๋ฆฝํธ์ ์ฌ์ฉ
์ด ์ ์ ๋ํด
๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ด์ฅ๋์ด ์์ผ๋ฉฐ ์ด๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด convertfrom-json, convertto-json ๋ฑ๋ PowerShellGallery์ ๋ฐฐ์นํด์ผํฉ๋๋ค.
๋๋ # 1979์ ๋ฐ๋ผ ๊ฐ๋ฅํ ํ ๋ง์ ๋ด์ฅ ๋ชจ๋์ ๋ํด ์ด๊ฒ์ ์นํธํ์ผ๋ฉฐ # 5681์์ ๋ ๋ ผ์ํ๊ธฐ ์์ํ PowerShell Core๊ฐ ๊ฐ๋ฅํ ํ ๊ฐ๊ฒฐํ๋ค๋ ๊ฒ์๋ณด๊ณ ์ถ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์
YAML์ ์ฐจ๋ณํ์ง ๋ง๊ณ JSON์ ์นญ์ฐฌํ์ง ๋ง์ญ์์ค.
๋๋ ๋ ๋ค ๊ฒฐํจ์ด ์์ง๋ง ๋ ๋ค ์ฌ์ฉ์ด ์๊ณ PowerShell์์ Json cmdlet์ ์ ๊ณตํ์ง ์๋ ๋ฐ ์ํฅ์ ๋ฏธ์น ์ ์์๋ค๋ฉด ์ฌ๊ธฐ์์ ์ํํ๋ ๊ฒ๊ณผ ๋๊ฐ์ ์์ ์ ์ํํ๊ธฐ ๋๋ฌธ์ Yaml์ ์ฐจ๋ณํ๊ฑฐ๋ Json์ ์์ฒจํ์ง ์์ต๋๋ค.
์ด ํ ๋ก ์ ์ฝ๊ฐ ์ฌ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํนํ ํต์ฌ ์ธ์ด์ ํฌํจ ๋ YAML์ ์ ํธํ๋ ์ฌ๋๋ค์ ํน์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋์ดํ๊ณ PowerShell ๊ฐค๋ฌ๋ฆฌ์ ๋ชจ๋์ด ์ธ๊ธ ๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ถฉ๋ถํ์ง ์์ ์ด์ ๋ฅผ ๋์ด ํ ๊ฒ์ ๋๊น? ์ด ์์ ์์ ์ฐ๋ฆฌ๋ ์๊ตฌ ์ฌํญ ์ค์ฌ์ ํ ๋ก ์ ํ ์ ์์ผ๋ฉฐ ์ ์ฌ์ ์ผ๋ก ๋น๋ฉดํ ๋ฌธ์ ์ ๋ํ ์คํ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ์ฐพ์ ์ ์์ต๋๋ค.
์ ์ ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก๋ ์ด์ ์ฒด์ ์ ์ ํ๋ฆฌ์ผ์ด์
๋ฐฐํฌ ๋ชจ๋์ ๋ฒ ์ด ๋ฉํ ์๋ํ์
๋๋ค. ์ ์ด๋ ํ๋์ ๊ฒฝ์ฐ ๋งค๊ฐ ๋ณ์๋ฅผ ์ดํดํ๊ธฐ ์ํด ์คํฌ๋ฆฝํธ๋ฅผ ํธ์ถ ํ YAML ํ์ผ์ ์ฝ๊ณ ์ถ์ต๋๋ค.
์ข
์ข
์ด๋ฌํ ๊ฒฝ์ฐ์ ์ธ๋ถ์ ๋ํ ์ข
์์ฑ์ด ์๊ณ SLA๊ฐ ์ ์ฉ๋์ง ์์ ์๋น์ค๋ ์ ๋ ์๋ฉ๋๋ค. ํ๋ก๋์
ํ์ฅ ํ๋์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
์ด๊ฒ์ด powershell ์ฝ์ด์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํ ํ๋ฆฐํธ๋ฅผ ๋ฐฐ์กํ๊ธฐ์ํ ์ฌ์ฉ ์ฌ๋ก์ ๋๋ค.
ํ๋ฐํ ํ ๋ก ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์์๋ฅผ ๊ฐ์ถ๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค. :)
@ PowerShell / powershell-committee๋ ์ด์ ์ ์ด๊ฒ์ ๋
ผ์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ YAML์ด ์ค๋๋ ์ผ๋ง๋ ๋๋ฆฌ ํผ์ ธ ์๋์ง๋ฅผ ๊ณ ๋ คํ ๋ YAML์ ์ง์ํ๋ ๊ฒ์ด ์ค์ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๋ํ ํ์ฌ PSCore6์์ ์ ๊ณตํ๋ ๋ ๋ง์ ๋ชจ๋์ด ์ ๊ฑฐ๋์ด PSCore6์ ์ต์ ์ค์น๋ก ์์ํ ๋ค์ ํ์ํ ๊ฒ์ ์ถ๊ฐํ๊ธฐ๋ฅผ ์ํฉ๋๋ค (๋ฉํ ๋ชจ๋์ ์ฌ์ฉํ๋ฉด 10 ๊ฐ ์ด์์ ๋ชจ๋์ ์ถ๊ฐ ํ ํ์๊ฐ ์์ผ๋ฉฐ DevOps
ํ๋๋ง ์ถ๊ฐ ํ ์ ์์). ์๋ฅผ ๋ค์ด
YAML ์ง์์ ํ์ด 6.2 ๋ฆด๋ฆฌ์ค ์ดํ๋ฅผ ์ดํด ๋ณด๊ธธ ๋ฐ๋ผ๋ ๊ฒ์ ๋๋ค.
@ SteveL-MSFT ๋ฌธ์ ๋ฐ https://github.com/dotnet/corefx/issues/34578 ์ ๋ฐ๋ผ ์๊ฒฌ์ ๋ณด๋ด ์ฃผ
in. ๋ด ์๊ฒฌ์ convertfrom-json, convertfrom-jaml์ด ๋์ผํ ์ํ๋ก ์ด๋ํ๊ฑฐ๋ ๋ด์ฅ๋์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
์ ๋ JSON cmdlet์ ํ๋ก์ ํธ ๋ฐ์ผ๋ก ์ฎ๊ฒจ์ผํ๋ค๊ณ ์ฃผ์ฅ ํด ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ์๋นํ ํฐ ๋ณํ๋ฅผ ์ํ์ง๋ง cmdlet์ด PowerShell์ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํ๋ก์ ํธ ์ธ๋ถ๋ก ์ด๋ํ๋ฉด cmdlet ๋ชจ๋์ ์๋ก์ด ์ฃผ ๋ฒ์ ์์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉ ํ ์ ์์ผ๋ฉฐ PowerShell์ ์ด์ ๋ฒ์ ๊ณผ ํจ๊ป ์ ๊ณตํ์ฌ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ๊ณตํ์ง๋ง ์ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ ๋ฐ์ดํธ ํ ์ ์์ต๋๋ค. ์ด์ ๊ฐ์ ์ธ๋ถ ๋ชจ๋ ์ธ IMO๋ฅผ ํฌํจํ๋ ๊ฒ์ ๋งค์ฐ ๋ฒ๊ฑฐ ๋กญ์ต๋๋ค.
YAML์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์์๋ก ์ทจ๊ธํ๋ ๊ฒ๋ณด๋ค JSON๊ณผ Pester์ ์ค์๋ก๋ถํฐ ๋ฐฐ์ฐ๊ณ ์ถ์ต๋๋ค. ํ์คํ PowerShell์ ํต์ฌ ๊ธฐ๋ฅ์ ์ผ๋ถ๊ฐ ์๋์ด์ผํ์ง๋ง ์ปค๋ฎค๋ํฐ์ PS ํ๊ฐ์ ์์ ๊ถ์ ๊ณต์ ํ๋ ๊ณต์์ ์ผ๋ก ์ง์๋๋ ์ผ์ข ์ ๋ชจ๋์ด ์์ด์ผํฉ๋๋ค.
๋๋ ๊ทธ ์๊ฐ์ ์ข์ํ๋ค. JSON Cmdlet์ ์ ๊ฑฐํ๋ฉด ํ์ฌ ์ธ๋ถ ๋ชจ๋์ ๋ํ ์๊ฒฉํ ์ข ์์ฑ์ผ๋ก ์กด์ฌํ๋ ์ํฌ ํ๋ก ๋ฌธ์ ๋ฅผ ํ์ ํ๋ ๋ฐ ๋์์ด๋ฉ๋๋ค.
๊ทธ๋ฌ๋ yaml์ ์์คํ ๊ด๋ฆฌ์, ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์๊ฒ ์ค์ํฉ๋๋ค. ์ด๋ฌํ ์ฌ์ฉ์์๊ฒ๋ yaml ๋ช ๋ น์ด ํ์ํฉ๋๋ค.
๊ทธ๋ค์ ๊ทธ๋ค์ ํ์๋ก ํ ์ ์์ง๋ง ์ธ๋ถ ๋ชจ๋ ์ด์ ํ์ฉ ๋ฐ ํต์ฌ ์ ์ฅ์์ ๋ฒ๋ค๋ก ๋ฌด์๋ณด๋ค ๋ ์ ์ฐํ ์ง์ ๊ธฐ๊ฐ์ ๊ฐ์ง๊ณ ๊ทธ๋ค์ด ์ง์ PowerShell์ ๋ด์ ํฌํจํด์ผํ๋ค๋ ๊ฒ์ ์๋ฏธํ์ง ์์ต๋๋ค.
์ ๋ DevOps
๋ฉํ ๋ชจ๋์ ๋ํ @ SteveL-MSFT ์์ด๋์ด๊ฐ ์ฅ๊ธฐ์ ์ผ๋ก์ด๋ฅผ์ํ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ๋งํด์ผํฉ๋๋ค. ์ด๊ฒ์ ๋ค๋ฅธ ์ฌ์ฉ์ ์ธํธ๊ฐ ํจ์ฌ ๋ ์ฝ๊ฒ ๊ด๋ฆฌ ํ ์์๋ ๋ ๊ฐ๋จํ ํจํค์ง ์ธํธ๋ฅผ ์ป์ ์ ์๋๋กํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ด๋ถ ์์กด์ฑ๋ณด๋ค ์ธ๋ถ ์์กด์ฑ์ผ๋ก, ์์ผ๋ก ๋์๊ฒ ๋ง์ ์๋ฏธ๊ฐ ์์ง๋ง, ๊ธฐ์ ์คํ์ ๊ธฐ๋ฐ์ผ๋กํ๋ ๋ฉํ ๋ชจ๋์ด์ด์ผํฉ๋๋ค. ์๋ํ๋ฉด ์ ๊ฐ Windows์ ์๊ณ anisble์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ์ yaml cmdlet์ด ํ์ํ ๊น์? ์ฐฝ๋ฌธ?
@ chuanjiao10์์ ์ธ๊ธ ํ๋๋ก yml์ ์ฌ์ฉํ๋ Linux ์ธ๊ณ์๋ ๋ง์ ์ฌ์ฉ์๊ฐ ์์ง๋ง Windows ์ธ๊ณ์์๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ ์ฒด PowerShell ์ฌ์ฉ์ ๋ํ ์ดํด๋ก ๋ณผ ๋ ์ฌ์ ํ ๋๋ถ๋ถ์ PowerShell 5.1์ ์์คํ ์ ๋ค์ด ์์ผ๋ฏ๋ก PowerShell 5.1์ ์ฌ์ฉํฉ๋๋ค. , Yaml cmdlet์ ๋ฒ๋ค๋ก ์ ๊ณตํ๋ ๋์ Linux ์ฌ์ฉ์์๊ฒ ๋์์ด ๋ ์ ์์ง๋ง Windows ์ฌ์ฉ์๋ฅผ์ํ ๋ถํ์ํ ์ถ๊ฐ ๋ฒ๋ค ํญ๋ชฉ์ฒ๋ผ ๋๊ปด์ง์ง๋ง ๋ ์ฌ์ฉ์ ์งํฉ์ ๋์ผํ๊ฒ ์ฒ๋ฆฌํ๋ ค๋ฉด ๋ ์ฌ์ฉ์ ์งํฉ์ด ๋ชจ๋ ์ธ๋ถ ๋ชจ๋์ด๋๋ค๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. ํ์์ ๋ฐ๋ผ ํ์ฉํ ์ ์์ต๋๋ค
์์ ์๊ฐ๋์ด ๋ณ๋์ ํ๋ก์ ํธ์์ ์ด๋ฌํ cmdlet์ ํจ๊ป ์ฌ์ฉํ๋ ค๋ ์ฌ๋์ด ์์ต๋๊น?
@iSazonov corefx๋ ํ์ฌ ๋ด์ฅ YAML ์ง์์ ๊ด์ฌ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. YamlDotNet์ ๊ฐ์ฅ ์ธ๊ธฐ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธ ๊ฒ ๊ฐ๊ณ , MIT ๋ผ์ด์ผ์ค๊ฐ ์๊ณ ์ ๊ทน์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌ๋๋ฏ๋ก ๊ฑฐ๊ธฐ์ ์์ํ๊ฒ ์ต๋๋ค. ์ปค๋ฎค๋ํฐ ์ฃผ๋ ํ๋ก์ ํธ๋ ํ๋ฅญ ํ ๊ฒ์ด๋ฉฐ PowerShell ํ์ ๋งก๊ธฐ๋ ๊ฒ๋ณด๋ค ๋ ๋นจ๋ฆฌ ์ผ์ด๋ ๊ฒ์ ๋๋ค.
- @ SteveL - MSFT ์ข์ ์ด์ ์ ๋ํ ์ด์์ ๋ณด์ธ๋ค https://snyk.io/vuln/SNYK-DOTNET-YAMLDOTNET-60255 I๋์ด ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ ๋ขฐ๋ฅผ ๋ฎ์ถ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค.
corefx๋ ํ์ฌ ๋ด์ฅ YAML ์ง์์ ๊ด์ฌ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค.
CoreFX ํ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ์ง๋ฌธํฉ๋๋ค. PowerShell ํ๋ก์ ํธ์์ API๊ฐ ํ์ํ๋ค๊ณ ๋งํ๋ฉด API ์ถ๊ฐ๋ฅผ ๊ณ ๋ คํ ๊ฒ์ ๋๋ค.
์ปค๋ฎค๋ํฐ ์ฃผ๋ ํ๋ก์ ํธ๋ ํ๋ฅญ ํ ๊ฒ์ด๋ฉฐ PowerShell ํ์ ๋งก๊ธฐ๋ ๊ฒ๋ณด๋ค ๋ ๋นจ๋ฆฌ ์ผ์ด๋ ๊ฒ์ ๋๋ค.
์ค, ๊ทธ๋ฐ ํ๋ก์ ํธ๋ ๋จ ํ๋๋ฟ์
๋๋ค-Pester. ๊ทธ๋ฆฌ๊ณ ์ ๋ yaml ์ปค๋ฎค๋ํฐ ์ฃผ๋ ํ๋ก์ ํธ๋ฅผ ๋ฏฟ์ง ์์ต๋๋ค. ์ ์ง๋ ๋ช ๋
๋์ ๋ํ๋์ง ์์์ต๋๊น?
ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ค๊ณ ํ์ง๋ง MSFT๊ฐ ์๊ตฌํ๋ ์ฝ๋์ ํ์ง, ๊ท์ ์ค์ ๋ฐ ๋ณด์ ์์ค์ ๋๋ฌ ํ ์ ์๋ค๋ ์ฌ์ค์ด ์ ๋ฅผ ๋ง์์ต๋๋ค.
๋ณด์ ๊ฐ์ฌ ์์ด๋ MSFT๊ฐ ํ๋ก์ ํธ๋ฅผ ์ ๋ขฐํ๊ณ ์ฌ์ฉํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ ์๋์ํฌ ์์ด๋์ด๊ฐ ํ๋๋ฟ์
๋๋ค. CoreFX ๋ฐ PowerShell๊ณผ ๊ฐ์ MSFT GitHub ํ๋ก์ ํธ๋ "MSFT๊ฐ ์์ "ํ๊ณ "MSFT๊ฐ ์ฃผ๋"ํฉ๋๋ค. ์ ํ๋ก์ ํธ ์ ํ์ "MSFT ์์ ", "์ปค๋ฎค๋ํฐ ์ฃผ๋"๋ฐ "MSFT๊ฐ ๋ฉํ ๋ง"ํ ์ ์์ต๋๋ค. '๋ฉํ ๋ง'์ด๋ ํ๋ก์ ํธ๊ฐ ์ ๋ขฐํ ์ ์๊ณ ํ์ง์ด ๋์ ํ๊ฒฝ์ ๊ตฌํ์ ์๋ฏธํฉ๋๋ค.
Microsoft๋ PowerShell Core์ ๋ํ YAML ์ง์ ๊ธฐ๋ณธ ์ ๊ณต์ ๋ฒ๋ค๋ก ์ ๊ณตํด์ผํฉ๋๋ค. ๋จ์ํ๊ณ ๋จ์ํฉ๋๋ค.
@brettjacobson ์, ๋จ์ํ๊ณ ๋จ์ํ๋ฉฐ ๊ณ ํ์ง์ด์ง๋ง MSFT ํ์๋ ๋ฆฌ์์ค๊ฐ ๋ง์ง ์์ต๋๋ค. ๊ธฐ์ฌํ ์ค๋น๊ฐ ๋์ จ์ต๋๊น? :-)
@brettjacobson -Microsoft๋ YAML ์ง์์ ๋ฒ๋ค๋ก ์ ๊ณต ํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ ๊ฒํ๋ค๋ฉด ์ ์ฉ ํ ์ ์์ง๋ง ๊ทธ๋ ๊ฒ ํ ํ์๊ฐ์๊ณ ๊ทธ๋ ๊ฒ ํ ํ์๋ ์ ํ ์์ต๋๋ค.
์ด๊ฒ์ ๋ง์ want
๋ํ ๊ธฐ๋ฅ ์์ฒญ์ด๋ฉฐ ๊ถ๊ทน์ ์ผ๋ก use
๋์ง๋ง ์ค์ํ need
๋ ์๋๋ฏ๋ก @ SteveL-MSFT์ ์ ํํ ์ผ์นํ๋ ์ฐ์ ์์๋ฅผ ์ป์ ๊ฐ๋ฅ์ฑ์ด _ ๋ถ๊ฐ๋ฅํฉ๋๋ค _ ๊ทธ๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋งํ์ ๋
YAML ์ง์์ ํ์ด 6.2 ๋ฆด๋ฆฌ์ค ์ดํ๋ฅผ ์ดํด ๋ณด๊ธธ ๋ฐ๋ผ๋ ๊ฒ์ ๋๋ค.
์ปค๋ฎค๋ํฐ ์ฃผ๋ ํ๋ก์ ํธ๋ ํ๋ฅญ ํ ๊ฒ์ด๋ฉฐ PowerShell ํ์ ๋งก๊ธฐ๋ ๊ฒ๋ณด๋ค ๋ ๋นจ๋ฆฌ ์ผ์ด๋ ๊ฒ์ ๋๋ค.
PowerShell ํ์ ๊ท๋ชจ๊ฐ ํฌ์ง ์์ผ๋ฏ๋ก YAML์ ๋ํ ์ง์์๋ฐ์ ์์๋ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ์ ํ ์์ฒด์ ์ ์ฉ๋๋ ๊ฒ์ด ์๋๋ผ PowerShell์ ํต์ฌ ๊ธฐ๋ฅ ์งํฉ ์ธ๋ถ์์์ ๊ฒ์ ๋๋ค.
CoreFX ํ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ์ง๋ฌธํฉ๋๋ค. PowerShell ํ๋ก์ ํธ์์ API๊ฐ ํ์ํ๋ค๊ณ ๋งํ๋ฉด API ์ถ๊ฐ๋ฅผ ๊ณ ๋ คํ ๊ฒ์ ๋๋ค.
@iSazonov IMHO๋ ์์ง ์์ ํ JSON ์ง์์ด ์๊ธฐ ๋๋ฌธ์ CoreFX์ ๋ด์ฅ ๋ YAML ์ง์์ด ์์ ๊ฒ์ ๋๋ค.
"ํ๋ฅญํ"ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ James Newton-King์๊ฒ Newtonsoft.Yaml
ํ์๊ฒ ์ต๋๊น? :-)
@NextTurn .Net Core 3.0์์ ์๋ก์ด Json (๋งค์ฐ ๋น ๋ฅด๋ฉฐ (Newton.Json๋ณด๋ค ๋น ๋ฅด๋ฉฐ) ๋งค์ฐ ์ ์ฐํจ) ๊ตฌํ์ ์ป์ ๊ฒ์
๋๋ค.
CoreFX ํ์ ์ปค๋ฎค๋ํฐ์ ํฐ ์์ฒญ์ด ์์ผ๋ฉด ํญ์ ์๋ก์ด API๋ฅผ ์ถ๊ฐํฉ๋๋ค. YAML์ ํํ์๋ฐ์ ์์๋ ํ๋ก์ ํธ๊ฐ ๋ง์ผ๋ฉด ์ถ๊ฐ ํ ๊ฒ์
๋๋ค. ํ์ฌ ๊ทธ๋ฌํ ์์ฒญ์ ์์ต๋๋ค.
์๋ก์ด pwsh
์์คํ
๋ง๋ค ๋ฌด์์ํ์ง ์์ต๋๊น? ๋๋ Install-Module -Name powershell-yaml
ํฉ๋๋ค.
Mongo, Kubernetes, Istio, Ansible, ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด YAML์ด๋ฉฐ YAML ํ
ํ๋ฆฟ๊ณผ ๋ณํ์ด ์์ต๋๋ค. pwsh
์ DevOps์ ์ ํฉํ๋ฉฐ YAML์ ์ฌ์ฉํฉ๋๋ค.
@ dzmitry-lahoda Issue # 5681์ Pester
๋ฑ๊ณผ ๊ฐ์ ๊ณตํต ๋ชจ๋ ์ธํธ์ ํจ๊ป ์ ๊ณต๋๋ 'ํ๋ถํ'๋ฒ์ ์ PowerShell์ ์ ์ํฉ๋๋ค.์ด ๋ฌธ์ ์ ๊ฒ์ ํด์ฃผ์ธ์. ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ 2 ๊ฐ์ yaml ๋ชจ๋ ์ฌ์ด์์ ๋ถ๋ช
ํ ์น์์ด๋ฉฐ ์๋ก๋ฅผ ๋ฐฉํดํ๊ณ ์์ต๋๋ค. ์ข์ํ๋ ๊ฒ์ ์ ํํ๋ ๊ฒ์ ์ด๋ ค์ด ๊ฒฐ์ ์ผ ์ ์์ต๋๋ค.
YAML์ด ํ๋๋ง ํ์๋ฉ๋๋ค.
Pester
, ์. pwsh ์ปจํ
์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ฉ YAML ๋ฆฌ๋์ ๋ฌ๋ฆฌ BDD ํ๋ ์ ์ํฌ๋ฅผ ๋ฉ์ธ ๋ผ์ธ์ผ๋ก ์ ๊ณตํ๊ธฐ์๋ ๋๋ฌด ๋ฌด๊ฒ์ต๋๋ค.
์ด ์ค๋ ๋๊ฐ ๋๋ฌ์ต๋๊น? Microsoft์์ ์ฌ์ฉํ ๊ถ์ฅ (๋๋ ์ ์) ๋ชจ๋์ ๋ฌด์์
๋๊น?
DevOps ํ์ดํ ๋ผ์ธ์ yaml์ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ ๋ฐฐํฌ ์๋ํ๋ powershell๋ก ๋น๋๋ฉ๋๋ค. yaml๊ณผ powershell์ด โโ์ ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. Powershell์ Azure DevOps ์๋ํ์ ์ ํฉํ์ง ์๋์?
๋ด ๋ฏธ๋์ ์ฌ์ฉ / ํ์ ์ ๋ํด ์ ์คํ๊ฒ ์๊ฐํ ํ์๊ฐ ์์ผ๋ฉฐ ์ด๋ค ๋ฐฉํฅ์ ๊ณ ๋ง๊ฒ ์๊ฐํฉ๋๋ค.
๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@dirkslab https://github.com/cloudbase/powershell-yaml์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
GitHubYAML ํ์ ์กฐ์์์ํ PowerShell CmdLets. GitHub์์ ๊ณ์ ์ ๋ง๋ค์ด cloudbase / powershell-yaml ๊ฐ๋ฐ์ ๊ธฐ์ฌํ์ธ์.
๊ฐ์ฌํฉ๋๋ค @iSazonov , ๊ทธ๊ฒ์ด ์ ๊ฐ ํ์ฌ ํ ์คํธํ๊ณ ์๋ ์๋ฃจ์ ์ ๋๋ค. ์ง๊ธ๊น์ง์ ํด๊ฒฐ์ฑ ์ ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ๋ฐ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ ๋๋ค.
powershell-yaml์ ์ฌ์ฉํ๋ฉด ์ ๋ขฐํ ์์๋ ๋ชจ๋์ ํ์ธํด์ผํฉ๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ดํดํ๊ธฐ ์ํด ์ธ์ฐ๊ณ ์๋ ๋ถ๋ถ์
๋๋ค. Microsoft๋ yaml ํ์ดํ ๋ผ์ธ ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค. Microsoft (๋๋ ์ ์ด๋์ด ์ค๋ ๋)๋ yaml ๊ตฌ์ฑ์ powershell๊ณผ ํตํฉ ํ ์ ์๋๋ก ํ์ฌ ๋ชจ๋์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ง๋ง ๋ณด์ฆํ๊ฑฐ๋ ๊ถ์ฅํ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ๊ธฐ์
์ ๋
ผ๋ฆฌ์ ์ผ๋ก ์ด๋ป๊ฒ ์ค๋ช
ํฉ๋๊น?
์ง๊ธ๊น์ง ๋ด ๊ฒฝํ์ ํญ์ Microsoft๊ฐ ๋ณด์ฆํ๋ ์๋ฃจ์
์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์๋ฃจ์
๋ฌธ์ ์ ๋ํ Microsoft์ ์ง์์ด๋ ์ดํด๊ฐ ์์๊ฑฐ๋๋ค๋ ๊ฒ์
๋๋ค (์ง์๋์ง ์๋ ๋ถํ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๋ชจ๋ ๋ถ๋ถ์ ๋ฟ๋๋ผ๋ ๋ฌธ์ ๊ฐ๋์ง ์์). ์ง์๋์ง ์๋ ๋ถํ์ด ์๋ค๋ ๋จ์ํ ์ฌ์ค๋ง์ผ๋ก๋ ์ผ๋ฐ์ ์ผ๋ก ์ง์ / ์ฑ
์์ด ์์ต๋๋ค.
์ด ์คํ ์์ค ์๋์ ์ํฉ์ด ๋ฐ๋์์ ์๋ ์์ต๋๋ค. Microsoft์ ๊ฐ๋จํ ๊ณต์ ์๋ต๊ณผ ์๋ด๋ ๋๋ฅผ ํธ์ํ๊ฒํ๊ณ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์
๋๋ค.
๊ทํ์ ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ฌธ์ ์ธ์ฌ.
@dirkslab ๊ทํ์ MSFT ๊ณ์ ๊ด๋ฆฌ์๊ฐ ์ง์ ์ ์ฑ ์ ๋ํด ๋ฌผ์ด๋ณผ ์์๋
CoreFX ํ์ด ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ๋ฌป์ต๋๋ค.
Yaml์ด ์ค๋๋ CI / CD ๋ฐ ๊ตฌ์ฑ ์์คํ
์์์ ์ฐ๋ฆฌ ์ฃผ๋ณ์ ์๋ค๋ ๋ช
๋ฐฑํ ์ด์ ์ ํ์ฉํ์ฌ ConvertTo-Yaml์ ์ถ๊ฐ ์ด์ ์ ์ง๊ธ ์ฌ์ฉํด์ผํ๋ ConvertTo-Json
์ ๋ฌ๋ฆฌ ์ฌ๋์ด ์ฝ์ ์์๋ ํ์์ผ๋ก nasted HashTable์ ๋ํ๋
๋๋ค. ์ถ๋ ฅ์ ์ฝ์ ์ ์๊ฒ ๋ง๋ญ๋๋ค.
๊ทธ๋์ Write-HashTable ์ ์ฌ์ฉํ์ง๋ง OTB๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
๋๋ yaml์ ์ซ์ดํ๋ค. ๋๋ ๊ทธ๊ฒ์ ์ ๋ง๋ก ์ซ์ดํ๋ค. ๊ทธ๋ฌ๋ MS ํ์ด ๊ณ ๋ คํ ๊ฐ์น๊ฐ์๋ ๋ช ๊ฐ์ง ์ธก๋ฉด์ด ์์ต๋๋ค.
$config = Invoke-WebRequest https://$ciserver/api/projects/$project/config.yaml | ConvertFrom-Yaml
$config['started'] = Get-Date
$config['options'] = $options
Invoke-WebRequest -Method Post https://$ciserver/api/projects/$project/build -Body ($config | ConvertTo-Yaml)
์ด ๋ฐฐ๋ฅผ powershell๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉด CI ๊ทธ๋ฃน์ ์ ํํ๋ ๋ฐ ๋ณํ๊ฐ์์ ๊ฒ์
๋๋ค.
"MS powershell๋ก ์ ํํ๋ฉด ์๋์ผ๋ก ์ํ ํ ์ ์์ต๋๋ค."-> "์ถ๊ฐ ์ ๋ณด?"
vs
"ms powershell๋ก ์ ํํ๊ณ ๊ฐค๋ฌ๋ฆฌ์์ ์ผ๋ถ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ก๋ํ๋ฉด"-> "์๋์"
7.1์ ๋ํด ์ฌ๊ณ ํ ์ ์์ต๋๊น? ๋ํ ์ ๋ขฐํ ์์๋ ๋ชจ๋์ ์ฌ์ฉํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ผ๋ฏ๋ก DevsOpsy๊ฐ ์ค์ ๋ก PowerShell์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋์ด์ผํฉ๋๋ค.
IMHO, YAML์ JSON ๋ฐ CSV๋งํผ ์ธ๊ธฐ๊ฐ ์์ผ๋ฉฐ PowerShell์ YAML ์ฉ๋ฐ์ ํธ์งํจ ๋ณํ๊ธฐ๊ฐ์๋ ๊ฒ์ ๋ค์ ์ฌํ ์ผ์ ๋๋ค. ๋ฐ์ ํธ์งํจ YAML ๋ณํ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ปค๋ฎค๋ํฐ ๋ชจ๋์ ๊ฒฝ์ฐ๊ฐ ์๋ JSON ๋ณํ๊ธฐ์ ๋์ผํ ๋์์ ์ํ ํ ์ ์์ต๋๋ค.
์คํดํ์ง ๋ง์ญ์์ค. ์ฌ๋๋ค์ด ์ปค๋ฎค๋ํฐ๋ฅผ์ํ ๋ชจ๋์ ์์ฑํ๋ค๋ ์ ์ ๊ฐ์ฌํ์ง๋ง, ํ์ฌ ์ธ์์์ YAML ๋ณํ์ ํ ์ด๋ธ ์คํ ์ดํฌ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๋๋ค์ด JSON ๋ณํ์ ์ํด ํ์ฌ ๋ชจ๋์ ๋ค์ด๋ก๋ ํ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@lzybkr ์ฐ๋ฆฌ๊ฐ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ์ง ์๋ค๊ณ ๋งํ ๊ฒ์ ์๊ณ ์์ง๋ง ์ด๊ฒ์ด ์ฌํ๊ฐ๊ฐ ํ์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ ๊ฐค๋ฌ๋ฆฌ ์๋ ๋ชจ๋์ ์ ๊ณตํด์ผํ์ง๋ง ํ๋ ์๋๋ฆฌ์ค์ ํค์๋ YAML์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
6.0 ์๊ฐ๋๊ฐ ์๋ ์๋ ์์ง๋ง ์ด์ ๋ํด ์ด์ผ๊ธฐํด์ผํฉ๋๋ค.