Public Go Contracts 54 KO - teamswyg/laya-tools GitHub Wiki
PDCA54: ๊ณต๊ฐ Go ํ๋ณด 2๊ฐ์ ์๋ฝ ๊ณ์ฝ ์ค๋น
English ยท ๊ธฐ๊ณ ํ๋ ๊ธฐ๋ก
๊ณต๊ฐ Go ์์ฒ ํ๋ณด 120๊ฐ ์ค ๋ ์์ฒญ์ ๋ํด ๋ก์ปฌ์์ ๊ฒ์ฆํ ์๋ฝ๊ธฐ๋ฅผ ์ค๋นํ์ต๋๋ค. ๋ชจ๋ธ์ด ์์ ์ ์ํํ ๊ฒฐ๊ณผ๋ ๋์ด๋ ์ ๋ต์ ์ป์ ๊ฒ์ ์๋๋๋ค. ์๋ฝ๊ธฐ๋ ์๋ณธ์ ๊ฑฐ์ ํ๊ณ , ์ง์ ์์ฑํ ์ฌ๋ฐ๋ฅธ ์์ ์ ํต๊ณผ์ํค๋ฉฐ, ์๋ ค์ง ์๋ชป๋ ์์ ์ ๊ฑฐ์ ํ๋ ๊ฒ์ฌ์ ๋๋ค.
์ด ๋ฌธ์๋ ์์ฑ ์์ ์ ๊ฐ๋ฐ ๊ธฐ๋ก์ ๋๋ค. CI๋ฅผ ํต๊ณผํ ๊ณต๊ฐ ์คํ ์ง์๊ณผ ๋ฐฐํฌ ์ฆ๊ฑฐ๋ ๋ณ๋๋ก ํ์ธํด์ผ ํฉ๋๋ค. ๋ก์ปฌ registry์ ์คํ๋ผ์ธ ๊ฒ์ฆ ์ฐ๊ฒฐ์ ๊ตฌํ๋์ง๋ง, ์ด ๊ธฐ๋ก์๋ ์์ง ํด๋น ๊ณต๊ฐ CIยท๋ณํฉ ์ฆ๊ฑฐ๊ฐ ์์ต๋๋ค.
| ๊ตฌ๋ถ | ์ด ๊ธฐ๋ก์ ์ |
|---|---|
| ์์ฒ ์กฐ์ฌ์ ๊ธฐ๋ก๋ ํ๋ณด | 120 |
| ๊ทธ์ค ๋ก์ปฌ์์ ๊ฒ์ฆํ ์๋ฝ ๊ณ์ฝ | 2 |
| ์ด ๋ ์์ฒญ์ ์ค์ ๋ชจ๋ธ ์คํ | 0 |
| ์ด ๋ ์์ฒญ์ ํ์ต ์คํยทํ์ต ๋ผ๋ฒจ | 0 |
| ๋ณดํธ๋ ์ต์ข ํ๊ฐ์ ์ ๊ฒฉ์ธ ์์ฒญ | 0 |
๋ ๊ณ์ฝ์ 120๊ฐ์ ํฌํจ๋ ์์ฒญ์ ๊ตฌ์ฒดํํ ๊ฒ์
๋๋ค. ํ๋ณด๊ฐ 122๊ฐ๋ก ๋์ด๋ ๊ฒ์ด ์๋๋๋ค. ์๋ณธ PDCA53 ์กฐ์ฌ์ 120๊ฐ inventory๋ ์์ ํ์ง ์์์ต๋๋ค. ๊ทธ ํ์ผ์ SHA256์ e79cf90505fff4c636de99f322ab82001afd22516216cebcd8249b9b3d61cf67์
๋๋ค. ๋ณ๋ laya-tools ๊ณผ์ ยท๋ชจ๋ธ ํ์ผ๋ฟ ๊ฒฐ๊ณผ๋ ์ด ๋ ์์ฒญ์ ์คํ ์์ ํฉ์น์ง ์์ต๋๋ค.
1. ๋ถํธ๋ฅผ ์ ์งํ๋ ์ ์ฒด int64 ์์
go53-humanize-ordinal64๋ dustin/go-humanize์ ๊ณ ์ ์๋ณธ์ Ordinal64๋ฅผ ์ถ๊ฐํ๋ ์์ฒญ์
๋๋ค. ์๋ฅผ ๋ค์ด -21์ -21st, -11์ -11th๋ก ํ์ํฉ๋๋ค. ์ต์๊ฐ -9223372036854775808๋ ์ซ์๋ฅผ ์์ง ์์์ผ ํฉ๋๋ค.
์๋ณธ์๋ Ordinal(int)๋ง ์์ต๋๋ค. ๊ธฐ์กด ํจ์๋ ์์์ th๋ฅผ ๋ถ์ด๋ฏ๋ก Ordinal(-21)์ -21th ๋์์ ์ ์งํ๊ณ , ์ ํจ์๋ง ์ ๋๊ฐ ๊ธฐ์ค ์ ๋ฏธ์ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํธ์ถ ๊ฐ๋ฅํ ํ์
func(int64) string์ ํ์ธํ๋ฉฐ, ์ ์ธ๋ ํจ์์ ํจ์ ๊ฐ ๋ณ์์ ์ฐจ์ด๋ฅผ ๋ณด์ฅํ๋ ๊ณ์ฝ์ ์๋๋๋ค.
๋ณต์ฌํ ์๋ณธ์ go.mod, ordinals.go, ordinals_test.go, ํ
์คํธ ๋์ฐ๋ฏธ common_test.go, LICENSE์ 5๊ฐ ํ์ผ์
๋๋ค. ์ ์ฒด upstream ํจํค์ง๋ฅผ ๋ณต์ฌํ ๊ฒ์ด ์๋๋ผ, ์์กด์ฑ์ด ๋ซํ ์์ ๋ถ๋ถ์
๋๋ค. ์์ ๊ฐ๋ฅํ ํ์ผ์ ordinals.go ํ๋์
๋๋ค.
์๋ฌธ MIT ๋ผ์ด์ ์ค๋ฅผ ๊ทธ๋๋ก ๋ณด์กดํฉ๋๋ค. ๋ณ๋ WTFPL ์์ ์ด ์๋ number.go๋ ๋ณต์ฌํ๊ฑฐ๋ ๋น๋ํ์ง ์์ต๋๋ค. ์ค์ ์๋ณธ์ NOTICE๋ ์์ผ๋ฉฐ ๋ง๋ค์ง ์์์ต๋๋ค. ์ด ์ ์ฅ์์ Apache-2.0 ํ์๋ก upstream MIT๋ฅผ ๋์ฒดํ์ง ์์ต๋๋ค.
๊ฒ์ฌ ๊ธฐ์ค์ ์์ ์ ๋ฐ๋ math/big ์ฐ์ ๊ณผ ๋ช
์์ ์ธ 100๊ฐ ๋๋จธ์ง๋ณ ์ ๋ฏธ์ฌ ํ์
๋๋ค. ์ฌ๋ฐ๋ฅธ ๋์กฐ ๊ตฌํ์ ๋ฌธ์์ด ๋์๋ฆฌ๋ก ์ฒ๋ฆฌํ๋ฏ๋ก ๊ฒ์ฌ ๊ตฌํ์ ๊ทธ๋๋ก ๋ณต์ ํ์ง ์์ต๋๋ค. ์ยท์์, 11ยท12ยท13 ์์ธ, ๋ชจ๋ ์ ๋ฏธ์ฌ ๋๋จธ์ง, int64 ์ ๋, 32๋นํธยท์ค์ ์ ๋ฐ๋ ๊ฒฝ๊ณ์ ๊ณ ์ ๋ ๋์ ์
๋ ฅ์ ๊ฒ์ฌํฉ๋๋ค.
์ค์ ์คํ๋ผ์ธ ๊ฒ์ฆ์์ ์๋ณธ์ ๊ฑฐ์ ๋๊ณ , ๋์กฐ ๊ตฌํ์ ์๋ณธ ํ ์คํธ์ ๋ ๋ฆฝ ํ ์คํธ๋ฅผ ํฉ์น ํ์ terminal pass 6๊ฐ๋ฅผ ๊ธฐ๋กํ์ต๋๋ค. ์๋ชป๋ ํ๋ณด 13๊ฐ๋ ๊ฑฐ์ ๋์ต๋๋ค. ์ด 13๊ฐ์๋ ์ API๊ฐ ์๋ ์ฃผ์ ์์ ๊ณผ ์๋ชป๋ ํ์ ์ ์ปดํ์ผ ์คํจ๋ ํฌํจ๋๋ฏ๋ก ์ ๋ถ๋ฅผ ํ๋ ์ค๋ฅ ๊ฒ์ถ๋ก ์ธ์ง ์์ต๋๋ค. ๋ ๋ฆฝ ๊ฒํ ์๋ ๋ณ๋์ ์์ ํ unsigned ์ฐ์ ๊ตฌํ์ ํต๊ณผ์ํค๊ณ , ํฐ ์์ teen ์ ๋ฏธ์ฌ์ ์ต์๊ฐ ์ ๋ฏธ์ฌ๋ฅผ ์๋ชป ์ฒ๋ฆฌํ ๋ ํ๋ณด๋ฅผ ๊ฑฐ์ ํ์ต๋๋ค. ํ๋ณด๊ฐ ์์ฑํ ๊ณ ์ฅ ๋ ํ ์คํธ๋ ์๋ฝ ๊ทผ๊ฑฐ๋ก ์ฌ์ฉ๋์ง ์์์ต๋๋ค.
2. ์๊ฒฉํ ์๋ฌธ์ UUID ํ ์คํธ ํ์
go53-uuid-canonical-parse๋ google/uuid์ ๊ณ ์ ์๋ณธ์ ParseCanonical์ ์ถ๊ฐํ๋ ์์ฒญ์
๋๋ค. ์ ํํ 36๋ฐ์ดํธ์ ์๋ฌธ์ ASCII hex์ ์ ํด์ง ๋ค ํ์ดํ๋ง ํ์ฉํฉ๋๋ค. ์๋ชป๋ ์
๋ ฅ์ ์ค๋ฅ์ ๋ชจ๋ 0์ธ UUID๋ฅผ ๋ฐํํด์ผ ํ๋ฉฐ, ์ ์์ ์ธ ์๋ถ๋ถ์ ํด์ํ ๋ค ์คํจํด๋ ๋ถ๋ถ ๊ฐ์ ๋จ๊ธฐ๋ฉด ์ ๋ฉ๋๋ค. 0ยท์ต๋ UUID์ ๋ชจ๋ version/variant ๋นํธ ํจํด์ ํ์ฉํฉ๋๋ค.
๊ธฐ์กด Parse์ ParseBytes์ ๋๋ฌธ์ยทURNยท32์๋ฆฌ raw hexยท๋ํผ ํ์ฉ๊ณผ ์ค๋ฅ ์ข
๋ฅ๋ ์ ์งํฉ๋๋ค. ์์ฒ ์กฐ์ฌ์ ์๋ ์งง์ ์์ฒญ์ ๊ทธ๋๋ก ๋ฎ์ด์ฐ์ง ์๊ณ , ์ด ๊ฐ๋ฐ ๊ณ์ฝ์์ ํธํ์ฑ๊ณผ ์ง์ ๊ฐ๋ฅํ ๊ตฌํ ๋ฒ์๋ฅผ ๋ณ๋ prompt๋ก ๋ช
์ํ์ต๋๋ค.
์๋ณธ Go ํ์ผ 23๊ฐ์ go.mod์ BSD-3-Clause LICENSE๋ฅผ ๋ํ 25๊ฐ ํ์ผ์ ๊ณ ์ ํ์ต๋๋ค. ์๋ณธ Google ํ์๋ฅผ ์ ์งํ๋ฉฐ ์ค์ NOTICE๋ ์์ต๋๋ค. ์์ค ์ฌ๋ฐฐํฌ์๋ ์ ์๊ถยท์กฐ๊ฑดยท๋ฉด์ฑ
์กฐํญ์ ์ ์งํ๊ณ , ๋ฐ์ด๋๋ฆฌ ์ฌ๋ฐฐํฌ์๋ ๋ผ์ด์ ์ค๊ฐ ์๊ตฌํ๋ ํ์๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ํ์ผยท์์กด์ฑยท๋ฏธ๋ ๋ชจ๋ธ ๋ฐฐํฌ์ ๋ํ ํฌ๊ด์ ํ๊ฐ๋ ์ฃผ์ฅํ์ง ์์ต๋๋ค.
์ด ์๋ฝ๊ธฐ๋ ์๋ณธ uuid.go์ ์ ํํ 10,254๋ฐ์ดํธ prefix ๋๋ ๊ณ ์ ํ Go1.27.1 formatter ๊ฒฐ๊ณผ์ธ 10,251๋ฐ์ดํธ prefix ๋ค์ ํจ์ ํ๋๋ง ์ถ๊ฐํ๋ ๋ฒ์๋ฅผ ์ง์ํฉ๋๋ค. ์ ๊ทํ๋ ํ์ธ๋ formatter ๊ณต๋ฐฑ ์ฐจ์ด๋ง ํ์ฉํฉ๋๋ค. ์ง์ญ ๊ฐ, ๋ฃจํ, ๊ณ ์ ์๋ณธ์ ์์ Parseยทxtob์ ์ ์ ํ ์์ ํ์ค ํธ์ถ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ์ญ ์ฐ๊ธฐ, ์ง์ ๋์ ์ฝ๊ธฐ, ํจ์ ๋ณ์นญ ํธ์ถ, ํฌ์ธํฐยท์ ์ญ ๋ฐฐ์ด ๋ณ์นญ, ์ถ๊ฐ ๋์ฐ๋ฏธ, ํจ์ ๋ฆฌํฐ๋ด, ๋์์ฑ, importยทinitยทdirectiveยท์ ์๊ถ ๋ณ๊ฒฝ ๋ฑ์ ์ง์ ๋ฐ์
๋๋ค. ๋ด๋ถ ์ง์ญ ์ ์ธ๊ณผ ์ค์ ์ ์ญ ์ฐ๊ธฐ๋ฅผ ์ด๋ฆ๋ง์ผ๋ก ํผ๋ํ์ง ์๋๋ก ์ ์ธ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ถํฉ๋๋ค.
์ง์ ๋ฐ์ ์ฝ๋๋ ์ฌ๋ฐ๋ฅด๊ฒ ๋์ํด๋ verifier_unknown์
๋๋ค. ๋ชจ๋ธ ์คํจ๋ ๋ฎ์ ๋ฅ๋ ฅ์ ๋ผ๋ฒจ๋ก ๋ฐ๊พธ๋ฉด ์ ๋ฉ๋๋ค. ์ผ๋ฐ Go ํ๋ก๊ทธ๋จ ์ ์ฒด์ ํจ๊ณผ๋ฅผ ์ฆ๋ช
ํ๋ ์๋ฝ๊ธฐ๋ ์๋๋๋ค.
์๋ณธ ํ ์คํธ๋ ํ์ฌ ํธ์คํธ์์ terminal pass 212๊ฐ๋ฅผ ๊ธฐ๋กํ์ต๋๋ค. ์ API๊ฐ ์๋ ์๋ณธ์ ๋ ๋ฆฝ ๊ณ์ฝ์ ์คํจํ๊ณ , ๋์กฐ ๊ตฌํ์ ์๋ณธ 212๊ฐ์ ๋ ๋ฆฝ 6๊ฐ๋ฅผ ํฉ์ณ 218๊ฐ๋ฅผ ํต๊ณผํ์ต๋๋ค. ์ง์ ๋ฒ์ ์์ ์๋ชป๋ ํ๋ณด 14๊ฐ๋ ๊ฐ๊ฐ ๋ ๋ฆฝ ํ ์คํธ 6๊ฐ๋ฅผ ์ค์ ์ข ๋ฃํ ๋ค ํ๋ ์ค๋ฅ๋ก ๊ฑฐ์ ๋์ต๋๋ค. ์ง์ ๋ฐ์ ํ๋ณด 21๊ฐ๋ ๋ณ๋ shape ๊ฒ์ฌ๋ก ๊ตฌ๋ถํ์ต๋๋ค.
๋
๋ฆฝ CLI ๊ฒํ ์์๋ ๋ณ๋์ hex.DecodeString ๋์กฐ ๊ตฌํ์ด 218๊ฐ๋ฅผ ํต๊ณผํ๊ณ , ๋๋ฌธ์๋ฅผ ํ์ฉํ ํ๋ณด๋ ๊ฑฐ์ ๋์ต๋๋ค. ์ง์ ๋์ ์ฝ๊ธฐยท์จ๊ธด ์ ์ญ ํ ์ฐ๊ธฐยทGoogle ํ์ ์ญ์ ๋ ์คํ ์ ์ unknown์ผ๋ก ์ฒ๋ฆฌ๋์ต๋๋ค. ๊ณ ์ ๋ฒกํฐ, 36์์นร256๋ฐ์ดํธ ๊ฒ์ฌ, ๋ฐ๋ณตยท๋์ ํธ์ถ, ๋์ reader ๋ฐ ํ ์ํ ๊ฒ์ฌ๋ ํ ์์ฒญ์ ๊ฒ์ฌ ์
๋ ฅ์
๋๋ค. 9,216๊ฐ ๊ฒ์ฌ๋ 218๊ฐ terminal pass๋ฅผ ๋ณ๋ ๊ณผ์ ์๋ก ์ธ์ง ์์ต๋๋ค. reader ๊ณ์ธก๋ง์ผ๋ก ๋ชจ๋ entropy ๊ฒฝ๋ก์ ๋ถ์ฌ๋ฅผ ์ฃผ์ฅํ์ง ์์ผ๋ฉฐ, ์ง์ ํธ์ถ์ ์ ํ๋ ์์ค gate์์๋ ์ฐจ๋จํฉ๋๋ค.
๋ ์์ธํ UUID ๊ธฐ๋ก์ ๋ณ๋ ์์ฒยท๊ณ์ฝ ๋ฌธ์์ ์์ต๋๋ค.
ํ์ธ ๋ฐฉ๋ฒ๊ณผ ๊ณ ์ ํด์
๊ฐ๋ฐ checkout์์ ์คํ ํ์ผ์ ํ ๋ฒ ๋ง๋ค๊ณ , ๋ชจ๋ธ์ ์คํํ์ง ์๊ณ spec๋ง ์ฝ์ ์ ์์ต๋๋ค.
mkdir -p .cache/bin
go build -trimpath -o .cache/bin/riido-taskverify ./cmd/riido-taskverify
.cache/bin/riido-taskverify --task go53-humanize-ordinal64 --spec
.cache/bin/riido-taskverify --task go53-uuid-canonical-parse --spec
ํ๋ณด๋ฅผ ๊ฒ์ฌํ ๋๋ ๊ณ ์ ๊ณต๊ฐ ์๋ณธ๊ณผ ๊ทธ ๋ณต์ฌ๋ณธ์ ์ง์ ํฉ๋๋ค. ๊ถํ๊ณผ ์ค์ ๋์์ด ํ์ธ๋ Go1.27.1 ์ค์น๊ฐ ํ์ํฉ๋๋ค. ์ด ๊ธฐ๋ก์ ์คํ ํธ์คํธ๋ macOS arm64์ด๋ฉฐ ๋ชจ๋ ํ๋ซํผ์ ์ํํ ๊ฒ์ ์๋๋๋ค.
.cache/bin/riido-taskverify --task TASK --base-dir PUBLIC_PINNED_BASE --candidate-dir PUBLIC_CANDIDATE_COPY --go-root TRUSTED_GO_1_27_1
์ ์คํ ํ์ผ์ ์ข ๋ฃ ์ฝ๋ 0์ accepted, 1์ rejected, 2๋ ์๋ชป๋ ์ ๋ ฅ, 3์ ๊ฒ์ฆ ๋ถ๊ฐ์ ๋๋ค. ์๋ณธ module ํ์ผ์ ๊ทธ๋๋ก ๊ณ ์ ํ๊ณ , ์์ compiler module๋ง ์๋ module ์ด๋ฆ๊ณผ Go1.27.1๋ก ๊ตฌ์ฑํฉ๋๋ค. ์ธ๋ถ ์์กด์ฑ์ ๊ฐ์ ธ์ค์ง ์๊ณ , ์ธ์ฆ ์ ๋ณดยท์ฌ์ฉ์ ํยท๋คํธ์ํฌ๋ฅผ ์์ํ์ง ์์ต๋๋ค. ํ ์คํธ ์๊ฐ์ ๋ชจ๋ธ ์๋๋ ๋น์ฉ ์ธก์ ์น๊ฐ ์๋๋๋ค.
| ๊ณ ์ ํญ๋ชฉ | Humanize | UUID |
|---|---|---|
| Spec SHA256 | 5c6fd6058a48bd0e6441a68c351e7b1ed491aec20baff78c6942e377ae79f5d5 |
c8e3a2edcc2024ce68ba7ea7b5fed00554b2e1c36a12174f942f32b5a5a5eec3 |
| Definition SHA256 | 99a7c0723e3c9f40a069003ccf3f9c2e290c3cbe8e67be3a4ced02d4a31a29b8 |
9413ed54a10ee9a1576f71a68cf664134570cf84e735f8daeb88c66c1f4ad7c8 |
| Contract SHA256 | 3b1351162b746fa61f7837af2923644eb2f4df100de643114c9d9f0eb064fd06 |
259f3fcd56ac9bf0d4d307cc1b8ed77968b6b3bf21327160e09efd440f71ffd5 |
| Prompt SHA256 | 107ae4d6da023114cc615ebdef6709053be8471bb0ee37f9763af73f279a94a9 |
5c6456db8da12a5e9510cf9f39a448298df4dd73bead5706a41288f567f30cb2 |
์๋ณธ ํ์ผ๋ณ SHA256ยทGit blob๊ณผ ๊ตฌํ ํ์ผ ์ฐธ์กฐ๋ ๋ณ๋ JSON ๊ธฐ๋ก์ ์์ต๋๋ค. ๊ณ์ฝ ๊ฒ์ฌ๋ ์ ํํ ๊ฐ๋ฐ ์ฆ๊ฑฐ์ด๋ฉฐ, ์ ์ฒด int64ยท๋ชจ๋ ํ๋ก๊ทธ๋จยท๋ชจ๋ ํ๊ฒฝ์ ์ ํ ์ฆ๋ช ์ ์๋๋๋ค. ๋ ๋ณต์ฌ ๋ฒ์์ ๋ผ์ด์ ์ค ๊ฒํ ๋ฅผ ๋ชจ๋ธ ํ์ตยท๊ฐ์ค์นยท๋ฐ์ดํฐ์ ๋ฐฐํฌ์ ์ ๊ฒฉ์ฑ์ผ๋ก ํ๋ํ์ง ์์ต๋๋ค.
2,400๊ฐ ๋ชฉํ๊น์ง ๋จ์ ์ผ
๋ชฉํ๋ ๋๋ฉ์ธ๋ง๋ค ์ต์ 2,400๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ณดํธ๋ ์ต์ข ์์ฒญ์ ๋๋ค. ํ์ฌ 120๊ฐ ์์ฒ ํ๋ณด์ ๋ ๊ฐ๋ฐ ๊ณ์ฝ์ ์ ๋ต ์งํฉ์ด๋ ๋ฌ์ฑ ์๊ฐ ์๋๋๋ค. ์ด๋ฏธ ๊ฐ๋ฐ ์ค ์ฝ์ ์ด ์๋ฃ๋ ๋ณดํธ๋ ์ต์ข ํ๊ฐ์์ ์ ์ธํฉ๋๋ค.
๋จผ์ CI ๊ณต๊ฐ ์ฆ๊ฑฐ์ ์ ๋ชจ๋ธ ์คํ ๊ณํ์ ๊ณ ์ ํ ๋ค, ์ค์ ๋ชจ๋ธ์ ์ ์ฒด ์์ฒญ ์ํยท๋ ๋ฆฝ ์๋ฃ ๊ฒ์ฌยท์ฌ์ฉ๋๊ณผ ์คํจ ์ํ๋ฅผ ๊ธฐ๋กํด์ผ ๋ฅ๋ ฅ ๋ผ๋ฒจ์ ๊ฒํ ํ ์ ์์ต๋๋ค. ๋น์ฉ์ด๋ ์ต์ ๋ผ์ฐํ ๋ชจ๋ธ์ ์์ง ์ ์ ์์ต๋๋ค. repositoryยท๋ณต์ฌ ์์ ยท๊ณต์ ์ฝ๋ยท๋ถ๋ชจ/์์/ํ์ ์์ฒญ์ ์ฐ๊ฒฐ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ๊ณ , ํ๋ จยท์ ํยท๋ณด์ ยท์ต์ข ์๋ฃ๋ฅผ ๋ณ๋๋ก ํ๋ณดํด์ผ ํฉ๋๋ค. ๋ฒ์ญ, ๋ฐ๋ณต ์คํ, ์ ๋ฏธ์ฌยท๋ฐ์ดํธ ๊ฒ์ฌ ์ ๋ ฅ์ ์๋ ์์ฒญ ๊ทธ๋ฃน์ ์ ์งํฉ๋๋ค.
๋ชจ๋ธ ์ํฅยทํํฅ ๋ผ์ฐํ , ์ ์ฅ์ ์ ํ, ์์ ๋ถํ , ์์ ๋น๊ฒฐ์ ์ ํํธ๋ ๊ฐ๊ฐ ๋ณ๋ ์์ฒญ๊ณผ ๊ธฐ์ค์ด ํ์ํฉ๋๋ค. ์ด ๋ Go ์ฝ๋ ์์ ์ ์๋ฝ๊ธฐ๋ฅผ ๊ทธ ๋๋ฉ์ธ๋ค์ ํ์ต ๋ผ๋ฒจ๋ก ๋์ ์ฐ์ง ์์ต๋๋ค.