Input Only Composition - kimjooyoon/meta-ontology-go GitHub Wiki
์ ๋ ฅ๋ถํฐ ์คํํ๊ณ ๊ธฐ๋๊ฐ์ ๋์ค์ ํ์ธํ๊ธฐ
Gooo ํ๋ก๊ทธ๋จ๊ณผ ์ ๋ ฅ์ด ์์ผ๋ฉด ๋จผ์ ์ค์ ๊ฐ์ ๋ณผ ์ ์์ต๋๋ค. ์ ์ฅํ ํ๋ก๊ทธ๋จ์ ๋์ค์ ๊ธฐ๋๊ฐ์ ๋ฃ์ผ๋ฉด ๊ฐ์ ์์ฑ๋ฌผ์ ๋ค์ ๊ฒ์ฌํฉ๋๋ค. ์๋ฆฌ ์ค๊ฐ์ ๋ง์ ๋ณด๊ณ , ๋ง์ง๋ง์ ์ ํด ๋ ๊ธฐ์ค๊ณผ ๋น๊ตํ๋ ์์์ ๊ฐ๊น์ต๋๋ค.
์ด๋ฒ์๋ ๋ด๋ถ์ ์๋ ์
๋ ฅ ์ ์ฉ ์คํ์ body-compose --inputs ๋ช
๋ น์ผ๋ก ์ฐ๊ฒฐํ์ต๋๋ค.
์์ ์คํ์ ์์ํ ๋ ํธ์ถ ์ ๋ต ํ์ผ์ ๋จผ์ ๋ง๋๋ ๋จ๊ณ๋ฅผ ์ค์
๋๋ค.
PR1426์ ์๋ณธ ์ ์ฒด CI
37934706536์ ํ์ ์ฌ์ฏ ๊ฒ์ฌ์ v5 ์ฆ๊ฑฐ๋ฅผ ํต๊ณผํด dev
485ef8ed572882206d79680aa5ab87744e52738a์ ๋ณํฉํ์ต๋๋ค. ๊ฐ์ ์์ค๋ก ์ค์นํ
๊ฐ๋ฐํ์์๋ ์๋ ํ๋ฆ์ ํ์ธํ์ต๋๋ค.
CIยท๋ณํฉยท์ค์น ๊ด์ธก.
์คํํด ๋ณด๊ธฐ
ํ์ฌ ๊ณต๊ฐ 0.6.23์
gooo๋ก ์คํํฉ๋๋ค. ์์ ๊ฐ๋ฐ ๊ด์ธก์ ์๋ ๋ฆฌ๋น์ ์ผ๋ก ๋ณด๊ดํฉ๋๋ค.
gooo body-compose --source examples/scalar-identity/source.gooo.fixture \
--entry Describe --inputs examples/composition-inputs/record.json \
--model examples/scalar-identity/model/model.json --out out/observed-record
์
๋ ฅ ๋ ๊ฐ์ ์ค์ ๊ฒฐ๊ณผ๊ฐ runtime.json์ ๋จ์ต๋๋ค. ์ซ์ 9007199254740993,
ํ๊ธ, ๋น ๋ฌธ์์ด, false, 0์ ๊ทธ๋๋ก ์ ๋ฌํฉ๋๋ค. ๋ชจ๋ธ์ ์๋ตํ๋ฉด ์์ค์ ๊ณ ์ ์์๋ก
์กฐ๋ฆฝํฉ๋๋ค. ์์ค ์์ ์กฐ๋ฆฝ์ฉ ์ฌ๋ก๋ ๊ณ์ ํ์ธํฉ๋๋ค.
gooo body-compose --source out/observed-record/original.gooo \
--cases examples/scalar-identity/cases.json \
--composition out/observed-record/composition.json
์ ๋ชจ๋ธ ํธ์ถ ์์ด ์ ์ฅํ ํ๋ก๊ทธ๋จ์ ๊ธฐ์กด ๋ค ํธ์ถ ์ฌ๋ก๋ก ๊ฒ์ฌํฉ๋๋ค.
์
๋ ฅ๋ง ๋ฐ๊ฟ ๊ด์ธกํ๋ ค๋ฉด --cases ๋์ --inputs๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ฒฐ๊ณผ ์ฝ๊ธฐ
| ๊ด์ธก | ํด์ |
|---|---|
| ์ ๋ ฅ ์ ์ฉ ์คํ 0/0 | ๊ธฐ๋๊ฐ์ ์ ๊ณตํ ์๊ฐ 0๊ฐ, ์ ํ๋ ๋ฏธ์ธก์ |
| UNKNOWN / NO_RUNTIME_EXPECTATIONS | ์ค์ ๊ฐ์ ์ป์๊ณ , ํธ์ถ ์ ๋ต์ ์์ง ๊ฒ์ฌํ์ง ์์ |
| ์์ค ์กฐ๋ฆฝ ์ฌ๋ก 4/4, ํ๋ 12/12 | ์์ค์ ์ ์ธํ ๋ค ์กฐ๋ฆฝ ์ฌ๋ก์ ๊ฒฐ๊ณผ |
| ๋์ค์ ์ ๊ณตํ ํธ์ถ ์ฌ๋ก 4/4 | ๊ฐ์ ์์ฑ๋ฌผ์ด ๊ธฐ์กด ๋ค ํธ์ถ ๊ธฐ๋๊ฐ๊ณผ ์ผ์น |
| ์ต์ด ๋ชจ๋ธ ํธ์ถ 1ํ, ์ฌ์ ์ ํธ์ถ 0ํ | ๋ชจ๋ธ ์ฌ์ฉ ๋น์ ๊ธฐ๋ก๊ณผ ํ์ฌ ์คํ์ ๊ตฌ๋ถ |
์ด ๊ด์ธก์ ๋์์ ๊ฐ์ ์์ ํ๋ก๊ทธ๋จ์ ๋๋ค. ๋ชจ๋ธ ํ์ต ๋ ธ์ถ์ ๋ณ๋๋ก ์๋ ค์ ธ ์์ง ์์ผ๋ฉฐ, ์๋ก ๋ค๋ฅธ ๋ถ๋ชจ๋ฅผ ํ๋์ ์ ํ๋๋ก ํฉ์น์ง ์์ต๋๋ค.
ํ๋ ์ฐ๊ฒฐ๊ณผ ๋ฐ๋ณต
joins.json ์์ ๋ ๋
๋ฆฝ ์
๋ ฅ, ํฉ๋ฅ, ๋ถ๊ธฐ, ์ผ๋ถ๋ง ์ฐ๊ฒฐํ ์ฌ๋ฌ ์
๋ ฅ์ ์คํํฉ๋๋ค.
ํ๋์ ์ฐ๊ฒฐํ ์์ฐ์์ ์ค์ ๊ฐ์ ๋ฐ์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์ฐ๊ฒฐ๋ ํฌํธ์ ๊ฐ์ ๋์
์ง์ ํ๋ฉด ํ์
๊ฒ์ฌ ๋จ๊ณ์์ ๊ฑฐ์ ํฉ๋๋ค. --repeat 2์ ๋ ๋ฒ์งธ ์คํ์ ๊ฐ์
์คํ ํ์ผ์ ์ฌ์ฉํฉ๋๋ค. nested helper์ ์ ์ฑ
์ด์ด๊ฐ๊ธฐ์๋ ์
๋ ฅ ์ ์ฉ ๊ด์ธก์ ์ธ ์
์์ต๋๋ค. ํธ์ถ ์ ๋ต์ด ์์ด๋ ์์ค์ ์ ํ ์กฐ๊ฑด๊ณผ ํ๋ณด ์์๋ ์ ์งํฉ๋๋ค.
inputs.json์๋ ์๋ณธ ๋ฌธ์๋ฅผ ๊ทธ๋๋ก ๋ณด๊ดํ๋ฉฐ, input_schema๋ ์คํ ๋ชจ๋๋ฅผ
ํ์ํฉ๋๋ค. --inputs, --cases, --case-series ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
ํ์ฌ ์์
์ฅ์ assemble ๋ช
๋ น์ --cases๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฌ๋ฌ ์กฐ๋ฆฝ ๋ณธ๋ฌธ๊ณผ ์ถ๊ฐ ๋ฃจํธ ์
๋ ฅ์
์์
์ฅ ๋ฐ๋ก ๋ฃจํ๋ก ์ฎ๊ธฐ๋ ์ฐ๊ฒฐ์ ๋ค์ ๋ฒ์์
๋๋ค.
์ ๋ ฅ ํค๋ ์ฐ๊ฒฐ์ ๋จผ์ ํ์ธํ๋ ค๋ฉด body-plan์ ์ฌ์ฉํฉ๋๋ค. native ์์ฑ๊ณผ ๊ฐ์ ๊ตฌ์กฐ ๊ณํ์์ ํธ์งํ ์ ๋ ฅ ์์๊น์ง ๋ง๋ค ์ ์์ต๋๋ค.
์ฐธ๊ณ ํ ์ฌ์ฉ ์๋ฆฌ
Matt Pocock์ ์์ ๋๊ตฌ ๊ตฌ์ฑ, Michael Lynch์ ๊ฐ๋ฐ ๊ธ์ฐ๊ธฐ, Carson Gross์ ์์ฑ ์ฝ๋ ์ดํด์ ๋ณต์ก๋ ๊ด๋ฆฌ๋ฅผ ์ฝ์์ต๋๋ค. ์คํ ๊ฐ๋ฅํ ๋ช ๋ น์ผ๋ก ์์ํ๊ณ , ์๋ ์๋์ ์ค์ ๊ฐ์ ํ๋ฆ์ ํจ๊ป ์ฝ๋ ๋ถ๋ถ์ Gooo์ ์ ์ฉํ์ต๋๋ค. ์กฐ์ฌ์ผ๊ณผ ์๋ฌธ ์์ฑ์ผ์ ๋ณ๋ ์ฐ๊ตฌ ๊ธฐ๋ก์ ๋จ๊น๋๋ค.