์ ์: Go ๋๊ตฌ ์ฒด์ธ์ ํจํค์ง ๋ฒ์ ์ง์ ์ถ๊ฐ
Go ๊ฐ๋ฐ์์ ๋๊ตฌ์ ์์
์ดํ์ ๋ฒ์ ์ ์ถ๊ฐํ๋ ๊ฒ์ ์ด๋ฏธ ์ค๋์ ์ผ์
๋๋ค.
์ฐ๊ฒฐ๋ ์ ์ ์ ๊ทธ๋ ๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค. ๋์์ ๋ํ ๋
ผ์๋ ํนํ ๊ทผ๊ฑฐ ์น์
์ ์ฐธ์กฐํ์ญ์์ค.
์ด GitHub ๋ฌธ์ ๋ ์ ์์ ๋ด์ฉ์ ๋ํ ํ ๋ก ์ ์ํ ๊ฒ์ ๋๋ค.
๋ค๋ฅธ ์ฐธ์กฐ:
go get golang.org/x/vgo
, ํ๋กํ ํ์
๊ตฌํ์ด ๋ฌธ์ ์๊ฒฌ์ ์๋ ํ ๋ก ์ด๋ ๋ค๋ฅธ ํ ๋ก ์์ ๊ฐ์ฅ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋๋ค. ํ ๋ก ์ ๋ค๋ฅธ ์ง๋ฌธ์ ๋ค์ ๋ฌธ์ ์๊ฒฌ์ ์์ต๋๋ค.
๊ฑฐ์ 2๋ ์ ์ด ์ ์์ผ๋ก ์ด์ด์ง ์ฌ์ ์ด ์์๋ ๋ ์ฐ๋ฆฌ ๋ชจ๋๋ Ruby์ Bundler์ Rust์ Cargo๊ฐ ์์ํ ํจํค์ง ๋ฒ์ ๊ด๋ฆฌ ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ฅด๋ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์์ต๋๋ค. ํ๊ทธ๊ฐ ์ง์ ๋ ์๋ฏธ ์ฒด๊ณ ๋ฒ์ , ์์ผ๋ก ํธ์งํ ์ข ์์ฑ ์ ์ฝ ํ์ผ ๋งค๋ํ์คํธ๋ผ๊ณ ํ๋ ๋ณ๋์ ๊ธฐ๊ณ ์์ฑ ์ ์ด ์ข ์์ฑ ์ค๋ช (์ ๊ธ ํ์ผ), ๋งค๋ํ์คํธ๋ฅผ ์ถฉ์กฑํ๋ ์ ๊ธ ํ์ผ์ ๊ณ์ฐํ๊ธฐ ์ํ ๋ฒ์ ์๋ฒ, ๋ฒ์ ๊ด๋ฆฌ ๋จ์๋ก์์ ๋ฆฌํฌ์งํ ๋ฆฌ. Dep์ ์ด ๋๋ต์ ์ธ ๊ณํ์ ๊ฑฐ์ ์ ํํ๊ฒ ๋ฐ๋ฅด๊ณ ์๋ go ๋ช ๋ น ํตํฉ์ ์ํ ๋ชจ๋ธ ์ญํ ์ ํ๋๋ก ์๋๋์์ต๋๋ค. ๊ทธ๋ฌ๋ Bundler/Cargo/Dep ์ ๊ทผ ๋ฐฉ์์ ์ธ๋ถ ์ฌํญ๊ณผ ํนํ go ๋ช ๋ น์ ๋ด์ฅ๋ Go์ ๋ํ ์๋ฏธ๋ฅผ ๋ ๋ง์ด ์ดํดํ ์๋ก Go ํ์ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ์ด๋ฌํ ์ธ๋ถ ์ฌํญ์ ๋ํด ๋ ๋ง์ด ๋ ผ์ํ ์๋ก ๋ช ๊ฐ์ง ์ธ๋ถ ์ฌํญ์ ๋ฐ๋์ ์ ์ ๋ ์ ํฉํด ๋ณด์์ต๋๋ค. ์ ์์ ๊ฐ๋ฐ์๊ฐ ์ดํดํ๊ณ ์ฌ์ฉํ๊ธฐ ๋ ์ฌ์ด ์์คํ ์ ์ ๊ณตํ๊ธฐ ์ํด ์ด๋ฌํ ์ธ๋ถ ์ฌํญ์ ์กฐ์ ํฉ๋๋ค. ๋ณ๊ฒฝํ๋ ค๋ ํน์ ์ธ๋ถ์ ๋ณด์ ๋ํ ์์ธํ ๋ด์ฉ๊ณผ ์ ์์ ๋ฐํํ๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ์์ ๊ทผ๊ฑฐ ์น์ ์ ์ฐธ์กฐํ์ธ์.
์์คํ ์ ๋๋จธ์ง ๋ถ๋ถ์ ๊ทน์ ์ผ๋ก ๋จ์ํํ๋ ๊ฐ์ ธ์ค๊ธฐ ํธํ์ฑ ๊ท์น ์ ๋ฐ๋ฅด๊ธฐ ์ํด. ๋ํ ๊ฐ์ ธ์ค๊ธฐ ํธํ์ฑ ๊ท์น์ ๋ํ ๋๊ธฐ์ ์ ๋น์ฑ์ ๋ํด ์์ธํ ์ค๋ช ํ๋ ์ ์์ ๋ฐํํ๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ์ ์ฐธ์กฐํ์ญ์์ค.
v1์ ๋ ๊ฐ์ง ์ด์ ๋ก ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์์ ์๋ต๋ฉ๋๋ค. ์ฒซ์งธ, ๋ง์ ๊ฐ๋ฐ์๊ฐ v1์ ๋๋ฌํ๋ฉด ์ ๋ ๋ณ๊ฒฝํ์ง ์๋ ํจํค์ง๋ฅผ ๋ง๋ค ๊ฒ์ ๋๋ค. ์ด๋ ์ฐ๋ฆฌ๊ฐ ์ฒ์๋ถํฐ ๊ถ์ฅํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ v2๋ฅผ ๋ฆด๋ฆฌ์คํ ์์ฌ๊ฐ ์์ ๋ ๋ช ์์ ์ธ v1์ ๊ฐ๋๋ก ๊ฐ์๋ฐ์์ผ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. v1์ ๊ทธ๋ฅ ๋ ธ์ด์ฆ๊ฐ ๋ฉ๋๋ค. ํด๋น ๊ฐ๋ฐ์๊ฐ ๊ฒฐ๊ตญ v2๋ฅผ ๋ง๋ค๋ฉด ๊ธฐ๋ณธ v1๊ณผ ๊ตฌ๋ณํ๊ธฐ ์ํด ์ถ๊ฐ ์ ๋ฐ๋๊ฐ ์์๋ฉ๋๋ค. v1์ ๋ชจ๋ ๊ณณ์ ๋ฐฐ์นํ๊ธฐ ์ํ ๊ฐ์์ ์์ ์ฑ์ ๋ํ ์ข์ ์ฃผ์ฅ์ด ์์ผ๋ฉฐ, ์ฐ๋ฆฌ๊ฐ ์์คํ ์ ์ฒ์๋ถํฐ ์ค๊ณํ๋ ๊ฒฝ์ฐ์๋ ๊ทธ๊ฒ์ด ๊ฑฐ์ ๊ฒฐ์ ์ ์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ์กด ์ฝ๋์ ๋ฌด๊ฒ๋ v1์ ์๋ตํ๋ ๋ฐ ์ ๋ฆฌํ๊ฒ ๊ท ํ์ ์ ์งํฉ๋๋ค.
v0์ semver ์ ๋ฐ๋ฅด๋ฉด ํด๋น ๋ฒ์ ์ ๋ํ ํธํ์ฑ ๋ณด์ฅ์ด ์ ํ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์์ ์๋ต๋ฉ๋๋ค. ๋ช ์์ v0 ์์๋ฅผ ์๊ตฌํ๋ ๊ฒ์ ํธํ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ๊ฑฐ์ ๋์์ด ๋์ง ์์ต๋๋ค. ์์ ํ ์ ํํ๋ ค๋ฉด v0.1.2๋ผ๊ณ ๋งํด์ผ ํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํ ๋๋ง๋ค ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ๊ทธ๊ฑด ๊ณผํ ๊ฒ ๊ฐ์ต๋๋ค. ๋์ ๊ฐ๋ฐ์๊ฐ ์์กดํ๋ ๋ชจ๋ ๋ชฉ๋ก์ ๋ณด๊ณ ์ฐพ์ v0.xy ๋ฒ์ ์ ๋ํด ์ ์ ํ๊ฒ ์ฃผ์ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์์ v0๊ณผ v1์ ๊ตฌ๋ณํ์ง ์๋ ํจ๊ณผ๊ฐ ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก v0์ v1์ผ๋ก ์ด์ด์ง๋ ์ผ๋ จ์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด๋ฏ๋ก v1์ v0๊ณผ ๊ตฌ๋ณํ ํ์๊ฐ ์๋ ๊ฒ์ด ์๋๋ผ ํด๋น ์ค๋จ ์ํ์ค์ ๋ง์ง๋ง ๋จ๊ณ๋ก ์ทจ๊ธํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค. . @Merovius ๊ฐ ๋งํ๋ฏ์ด (https://github.com/golang/go/issues/24301#issuecomment-376213693):
v0.x๋ฅผ ์ฌ์ฉํ๋ฉด v0.(x+1)์ด ๊ฐ์ ๋ก ์ฝ๋๋ฅผ ์์ ํ ์ ์์์ ์ธ์ ํ๊ฒ ๋ฉ๋๋ค. v0.(x+1)์ ๋์ v1.0์ด๋ผ๊ณ ํ๋ฉด ์ ๋ฌธ์ ๊ฐ ๋๋์?
๋ง์ง๋ง์ผ๋ก, ์ฃผ ๋ฒ์ v0 ๋ฐ v1์ ์๋ตํ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด ์๋ ํ์ ์ฌํญ์ด๋ฏ๋ก ๊ฐ ํจํค์ง์ ๋ํ ๋จ์ผ ์ ๊ท ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๊ฐ ์์ต๋๋ค.
์ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค. vgo ๋ชจ๋ ํฌ์คํธ๋ ๋ถํํ๋ "์ฃผ์ ๋ถ๊ธฐ" ์ ์ฅ์ ๋ ์ด์์์ ๋ํ ๋ ผ์์์ ๊ทธ๋ฐ ์ธ์์ ์ค๋๋ค. ๊ทธ๋ฌ๋ vgo๋ ๋ถ๊ธฐ์ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ํ๊ทธ๋ง ์กฐํํ๊ณ ํ๊ทธ๊ฐ ๊ฐ๋ฆฌํค๋ ํน์ ์ปค๋ฐ์ ํ์ธํฉ๋๋ค. ๋ง์คํฐ์์ v1์ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ v1์ด ์์ ํ ์๋ฃ๋์๋ค๊ณ ๊ฒฐ์ ํ๊ณ ๋ง์คํฐ์์ v2 ์ปค๋ฐ์ ์์ํ๋ ค๋ ๊ฒฝ์ฐ ๊ด์ฐฎ์ต๋๋ค. v2.xy ํ๊ทธ๋ก ๋ง์คํฐ์ ํ๊ทธ ์ง์ ์ ์์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ถ ์ฌ์ฉ์๋ v1์ ๊ณ์ ์ฌ์ฉํ ๊ฒ์ด๋ฉฐ ๋๋๋ก ์ฌ์ํ v1 ๋ฒ๊ทธ ์์ ์ ๋ฐํํ ์ ์์ต๋๋ค. ์ ์ด๋ v2์ฉ ๋ง์คํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ๋ ์์ ์์ ํด๋น ์์ ์ ๋ํ ์ v1 ๋ถ๊ธฐ๋ฅผ ๋ถ๊ธฐํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ผ๋ฐ์ ์ธ ๋๋ ค์์ด์ง๋ง ๋ฐ๋์ ์ผ์ด ๋ฐ์ํ๋ฉด ์ ๋ง ์๊ฐํฉ๋๋ค. https://research.swtch.com/vgo-mvs ์ "์ ๊ทธ๋ ์ด๋ ์๋" ์น์ ์ธ์ฉ:
์ต์ ๋ฒ์ ์ ํ์ด ๊ฐ ์ข ์์ฑ์ ์ต์ ํ์ฉ ๋ฒ์ ์ ์ฌ์ฉํ๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ด๊ฒ์ด ๋งค์ฐ ์ค๋๋ ํจํค์ง ๋ณต์ฌ๋ณธ์ ์ฌ์ฉํ๊ฒ ๋์ด ๋ถํ์ํ ๋ฒ๊ทธ๋ ๋ณด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค๊ณ ์๊ฐํ๊ธฐ ์ฝ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก๋ ๋ฐ๋๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ์ฉ๋๋ ์ต์ ๋ฒ์ ์ ๋ชจ๋ ์ ์ฝ ์กฐ๊ฑด์ ์ต๋๊ฐ์ด๋ฏ๋ก ๋น๋์ ๋ชจ๋ ๋ชจ๋์์ ์ฌ์ฉํ ์ ์๋ ์ ์ด ์๋จ ์ค ํ๋๋ ์ ๋ฒ์ ์ ๊ฐ์ ๋ก ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ์ฉ๋๋ ๊ฒ๋ณด๋ค ์ข ์์ฑ์ด ์์ต๋๋ค. ์ต์ํ์ ๋ฒ์ ์ ํ์ ํ๋ ์ฌ์ฉ์๋ Cargo์ ๊ฐ์ ๋ณด๋ค ๊ณต๊ฒฉ์ ์ธ ์์คํ ์ ์ฌ์ฉํ๋ ์น๊ตฌ๋งํผ ์ต์ ์ํ์ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ๋ฌ๋ถ์ด gopkg.in/yaml.v2์ ๊ฐ์ ๋งค์ฐ ์ผ๋ฐ์ ์ธ ๋ชจ๋์ ์์กดํ๋ ์์์ ๋ค๋ฅธ ๋ชจ๋์ ์์กดํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ํ๋ก๊ทธ๋จ์ ๋น๋๋ ๋ชจ๋์์ ์์ฒญํ ๊ฒ๊ณผ ์์์ ์ข ์์ฑ ์ค์์ ์ต์ YAML ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ๋จ ํ๋์ ์ฑ์คํ ์ข ์์ฑ๋ง์ผ๋ก๋ ๋น๋๊ฐ ๋ค๋ฅธ ๋ง์ ์ข ์์ฑ์ ์ ๋ฐ์ดํธํ๋๋ก ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์์ ์ธ๊ธํ Kubernetes Go ํด๋ผ์ด์ธํธ ๋ฌธ์ ์ ๋ฐ๋์ ๋๋ค.
์ด์จ๋ ์ต์ ๋ฒ์ ์ ํ์ ๋ฐ๋ ๋ฌธ์ ๋ฅผ ๊ฒช์ ๊ฒ์ ๋๋ค. ์ด "์ต์๊ฐ์ ์ต๋๊ฐ" ๋๋ต์ ์ข ์์ฑ์ ๋๋ฌด ๋นจ๋ฆฌ ์์ผ๋ก ๊ฐ์ ํ๋ ๋์นซ ์ญํ ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก๋ ์ข ์์ฑ์ด ์ ์ ํ ์๋๋ก ์์ผ๋ก ๋์๊ฐ ๊ฒ์ด๋ฉฐ ๊ฒฐ๊ตญ Cargo ๋ฐ ์น๊ตฌ๋ค๋ณด๋ค ๋๋ฆด ๊ฒ์ ๋๋ค.
"์ฌ๋ฐ๋ฅธ ์๋งํผ ๋๋ฆฌ๊ฒ"๋ผ๋ ๋ง์ ์ ๊ทธ๋ ์ด๋๊ฐ ์์ฒญํ์ ๋๋ง ๋ฐ์ํ๊ณ ์์ฒญํ์ง ์์์ ๋๋ ๋ฐ์ํ์ง ์๋ ์ฃผ์ ์์ฑ์ ์ธ๊ธํ ๊ฒ์ ๋๋ค. ์ด๋ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋ ๊ฒ์ผ๋ก ์์ํ๊ณ ํ ์คํธ, ๋๋ฒ๊ทธ ๋ฑ์ ํ ์ค๋น๊ฐ ๋์์ ๋๋ง(์ ์ฌ์ ์ผ๋ก ์๊ธฐ์น ๋ชปํ ๋ฐฉ์์ผ๋ก) ๋ณ๊ฒฝ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
@Merovius์ ์๋ต https://github.com/golang/go/issues/24301#issuecomment -375992900๋ ์ฐธ์กฐํ์ธ์.
์ฒดํฌ์์ํ๊ณ ์์ ํ๊ณ ์์ ํ๋ ์ฝ๋๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์ผ ์์คํ ์ ์ด๋ ๊ณณ์๋ ์ ์ฅํ ์ ์์ต๋๋ค.
Vgo๋ ๋ค์ด๋ก๋ํ ์์ค ์ฝ๋๋ฅผ ๋ณด๊ดํ๊ณ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ค์นํ๊ธฐ ์ํด ์ฝ๊ฐ์ ๊ณต๊ฐ์ด ํ์ํ๋ฉฐ, ์ด๋ฅผ ์ํด Go 1.9์์ ๊ธฐ๋ณธ์ ์ผ๋ก $HOME/go๋ก ์ค์ ๋๋ $GOPATH๋ฅผ ๊ณ์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ๊ฐ๋ฐ์๋ ์ด๋ฌํ ํ์ผ์ด ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ์ ์๊ธฐ๋ฅผ ์ํ์ง ์๋ ํ $GOPATH๋ฅผ ์ค์ ํ ํ์๊ฐ ์์ต๋๋ค. ๋ฐ์ด๋๋ฆฌ ์ค์น ์์น๋ง ๋ณ๊ฒฝํ๋ ค๋ฉด $GOBIN์ ์ค์ ํ ์ ์์ต๋๋ค(ํญ์ ๊ทธ๋ ๋ฏ์ด).
// import
๋๊ธ์ ์ ๋์
ํฉ๋๊น?ํ์ง ์์๋ค. ๊ทธ๊ฒ์ ๊ธฐ์กด์ ๊ด์ต ์ด์์ต๋๋ค. ๋๋ฌ๋ณด๊ธฐ์์ ํด๋น ์์ ์ ์์ ์ go.mod
๊ฐ ์๋ ๊ฒฝ์ฐ ๊ฐ์ ธ์ค๊ธฐ ์ฃผ์์์ ์ฌ๋ฐ๋ฅธ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ์ถ๋ก ํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ๊ฒ์
๋๋ค. ๋ชจ๋ ํ๋ก์ ํธ go.mod
ํ์ผ์ ์ฌ์ฉํ๋ฉด ๊ฐ์ ธ์ค๊ธฐ ์ฃผ์์ด ์์ ํ ์ค๋ณต๋๊ณ ์๋ง๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ ๊ฒ์
๋๋ค.
์ด ๋ฌธ์ ์๊ฒฌ์๋ ์๋์ ํ ๋ก ๋ด์ฉ์ด ์์ฝ๋์ด ์์ต๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -374739116 @ChrisHines ์์ฑ.]
์๋ต https://github.com/golang/go/issues/24301#issuecomment -377529520 @rsc. ์๋ ์ ์์ ํธํ์ฑ์ด ์ค์ํ ๋ ํ์ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ๋ ์์ฑ์๊ฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฒ๋ฆฌํ๋ค๊ณ ๊ฐ์ ํ์ง๋ง ๋ฌผ๋ก ๋๊ธฐ๊ฐ ์๋ชป๋์์ต๋๋ค. ํธํ์ฑ์ ์๊ฐ ์ด๋์ ๊ฑฐ์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ์ฌ์ฉ์์๊ฒ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ฒ์ ์๋ ๋์์ด ๋์ง ์์ต๋๋ค. ๋งํฌ๋ ์ฃผ์(ํ์ฌ #25069)์ ๋ชจ๋ ์ธ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ๋น๋ํ ์ ์๋๋ก ์ด์ "๊ตฌ์ถ"์ ๋ํ ์ต์ํ์ ๋ณ๊ฒฝ์ ์ ์ํฉ๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -374791885 @jimmyfrasche ์์ฑ.]
์๋ต https://github.com/golang/go/issues/24301#issuecomment -377527249 by @rsc. ์์ ํ ๋ค๋ฅธ ๋ชจ๋ ๊ฐ์ ์ฑ๊ธํค ๋ฑ๋ก ์ถฉ๋(์: ๋์ผํ ๊ฒฝ๋ก์ http.Handle)์ ์ ์์ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ๋จ์ผ ๋ชจ๋์ ์๋ก ๋ค๋ฅธ ์ฃผ์ ๋ฒ์ ๊ฐ์ ์ถฉ๋์ ๊ฒฝ์ฐ ์์ฑ์๋ ์ผ๋ฐ์ ์ผ๋ก v1์ v2๋ก ํธ์ถํ์ฌ ์กฐ์ ๋ ๊ฒ์ผ๋ก ์์ํ๋ ์๋ก ๋ค๋ฅธ ์ฃผ์ ๋ฒ์ ์ ์์ฑํ ๋ค์ ์๊ตฌ ์ฌํญ ์ฃผ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ v2๊ฐ ๊ทธ๋ ์ง ์์ ์ด์ v1๊ณผ ํจ๊ป ์ฌ์ฉ๋์ง ์๋๋ก ํ ์ ์์ต๋๋ค. ์กฐ์ ์ ๋ํด ์์ง ๋ชปํฉ๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -375106068 by @leonklingele.]
์๋ต https://github.com/golang/go/issues/24301#issuecomment -377417565 @rsc. ๊ฐ๋จํ ๋งํด go get์ ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ค์น ์์น๋ก $GOPATH/bin์ ์ฌ์ฉํฉ๋๋ค. $GOPATH๋ ์ด์ $HOME/go๋ก ๊ธฐ๋ณธ ์ค์ ๋๋ฏ๋ก ๋ช ๋ น์ $HOME/go/bin์ผ๋ก ๋๋๊ณ $GOBIN์ ์ด๋ฅผ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -374818326 @justinian ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -374831822 @jayschwa ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -375437150 @mrkanister ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376093912 @mrkanister ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376135447 @kaikuehne ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376141888 @kaikuehne ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376213693 @Merovius ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376247926 @kaikuehne ์์ฑ.]
์์ FAQ์ ์ถ๊ฐ๋์์ต๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -374839409 @nightlyone ์์ฑ.]
์ํ๊ณ๋ ๊ตฌ์ฒด์ ์ธ ๊ตํ ํ์์ ์ ์ํจ์ผ๋ก์จ ์ด์ต์ ์ป์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ํ๋ก์ ๋ฐ ๊ธฐํ ๋๊ตฌ๊ฐ ํ์ฑํ๋ฉ๋๋ค. ๋์์ ์ฐ๋ฆฌ๋ ๋ฒ์ ์ ์ด์ ์ง์ ์ ์ธ ์ฌ์ฉ์ ํฌ๊ธฐํ๊ณ ์์ต๋๋ค( ์ด ๊ฒ์๋ฌผ ์๋จ์ ๊ทผ๊ฑฐ ์ฐธ์กฐ). ์ด ๋ ๊ฐ์ง ๋ชจ๋ ํน์ ํ์์ ์ค๋ช ํ๋ ๋ฐ ๋๊ธฐ๋ฅผ ๋ถ์ฌํฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๋ zip ํ์ผ์ ๋ํด ์ ํ ์๊ฐํ ํ์๊ฐ ์์ต๋๋ค. godoc.org์ ๊ฐ์ ๊ฒ์ ๊ตฌ์ถํ์ง ์๋ ํ ๊ฐ๋ฐ์๋ ๋ด๋ถ๋ฅผ ๋ณผ ํ์๊ฐ ์์ต๋๋ค.
zip ๋ tar์ ๋ํ #24057๋ ์ฐธ์กฐํ์ญ์์ค.
[ https://github.com/golang/go/issues/24301#issuecomment -374831822 @jayschwa ์์ฑ.]
์๋์, ๊ฐ์ ธ์ค๊ธฐ์ ์๋ฏธ๋ go.mod ํ์ผ์ ์ฐธ์กฐํ์ง ์๊ณ ๋ ์ดํดํ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. go.mod ํ์ผ์ ์ธ๋ถ ์ฌํญ๋ง ์ง์ ํ๊ณ ์์ต๋๋ค. ๋ธ๋ก ์ธ์ฉ์์ ์์ ํ๋ ์ ์์์ ์๋ฏธ๋ก ์ ๊ฐ์ ธ์ค๊ธฐ ๋ฒ์ ์น์ ์ ํ๋ฐ๋ถ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ํ ๋๋ฌด ๋ง์ด ๋ง๋ฆฌ๋ฉด ๊นจ์ง๊ธฐ ์ฌ์ด ์์คํ ์ด ๋ฉ๋๋ค. ์ค๋ณต์ฑ์ ์ข์ ๊ฒ์ผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ "DRY ์๋ฐ"(์ฆ, ์ ํ๋ ๋ฐ๋ณต)์ด ํญ์ ๋์ ๊ฒ์ ์๋๋๋ค. ์๋ฅผ ๋ค์ด ์ฐ๋ฆฌ๋ ๋๋ ํ ๋ฆฌ์ ๋ชจ๋ .go ํ์ผ์ ํจํค์ง ์ ์ ๋ฃ์ต๋๋ค. ๋จ ํ๋๊ฐ ์๋๋ผ. ์ด๋ ์ด๊ธฐ์ ์ ์งํ ์ค์๋ฅผ ํฌ์ฐฉํ๊ณ ๋์ค์ ์ธ๋ถ ํ ์คํธ ํจํค์ง(ํจํค์ง x ๋ ํจํค์ง x_test)๋ฅผ ๊ตฌ๋ณํ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ๋์์ต๋๋ค. ๊ท ํ์ ๋ง์ถฐ์ผ ํฉ๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -374882685 by @tpng.]
UTC. ๋ํ ์์ฌ ๋ฒ์ ์ ์ง์ ์ ๋ ฅํ ํ์๊ฐ ์์ต๋๋ค. git ์ปค๋ฐ ํด์(๋๋ ํด์ ์ ๋์ฌ)๋ฅผ ์ ๋ ฅํ๋ฉด vgo๊ฐ ์ ์ ํ ์์ฌ ๋ฒ์ ์ ๊ณ์ฐํ๊ณ ๋์ฒดํฉ๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -374907338 @AlexRouSg.]
[ https://github.com/golang/go/issues/24301#issuecomment -376606788 @stevvooe ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -377186949 by @nim-nim.]
Non-Go ๊ฐ๋ฐ์ ๊ณ์ํด์ go
๋ช
๋ น์ ๋ชฉํ๊ฐ ์๋๋ฏ๋ก C ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ ๋ฑ์ ์ง์ํ์ง ์์ผ๋ฉฐ ํ๋กํ ์ฝ ๋ฒํผ์ ๋ํ ๋ช
์์ ์ธ ์ง์๋ ์์ ๊ฒ์
๋๋ค.
๊ทธ๋ ๊ธด ํ์ง๋ง Go์์ ํ๋กํ ์ฝ ๋ฒํผ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋๋ฌด ์ด๋ ต๋ค๋ ์ ์ ํ์คํ ์ดํดํ๊ณ ์์ผ๋ฉฐ ๋ณ๋๋ก ํด๊ฒฐ๋์์ผ๋ฉด ํฉ๋๋ค.
๋ณด๋ค ์ผ๋ฐ์ ์ผ๋ก ์์ฑ๋ ์ฝ๋์ ๊ฒฝ์ฐ ์ค์ ์ธ์ด ๊ฐ ๋น๋ ์์คํ ์ด ๋ต์ ๋๋ค. ํนํ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ๋ฐ๋ฅธ ์์ฑ๊ธฐ๋ฅผ ์ค์นํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์์ฑ์๊ฐ ์์ฑ๊ธฐ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -375090551 @TocarIP ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -375985244 @nim-nim.]
[ https://github.com/golang/go/issues/24301#issuecomment -375992900 @Merovius ์์ฑ]
FAQ์ ์ถ๊ฐ๋์์ต๋๋ค.
### ๋ง์คํฐ๋ฅผ ์ฌ์ฉํ์ฌ v1์ ๊ฐ๋ฐํ ๋ค์ v2๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ์ฌ์ฌ์ฉํ ์ ์์ต๋๊น?
[ https://github.com/golang/go/issues/24301#issuecomment -375248753 @mrkanister ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -375989173 @aarondl.]
์. FAQ์ ์ถ๊ฐ๋์์ต๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -375415904 @flibustenet ์์ฑ.]
https://github.com/golang/go/issues/24301#issuecomment -377413777 @rsc์ ์๋ต์ ๋๋ค. ๊ฐ๋จํ ๋งํด์ ๋ชฉํ๋ Go 1.11์์ "๊ธฐ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ"๋ฅผ ์์ํ๋ ๊ฒ์ ๋๋ค. ์์ ์ ๋๊ฒฐ ํ์๋ ๋ช ์ฃผ ๋์ ๊ณ์๋ ์ ์์ง๋ง ๊ทธ ์ด์์ ์๋๋๋ค. ์ ์์ด ์๋ฝ๋จ์ผ๋ก ํ์๋๊ณ cmd/go์ ๊ฐ๋ฐ ์ฌ๋ณธ์ด ์ ๋ฐ์ดํธ๋ ๋๊น์ง ์ฐพ์ ์ ์๋ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ go.mod๋ฅผ ์ถ๊ฐํ๋ PR์ ๋ณด๋ด์ง ๋ง์ญ์์ค.
[ https://github.com/golang/go/issues/24301#issuecomment -376236546 by @buro9.]
https://github.com/golang/go/issues/24301#issuecomment -377415652 @rsc์ ์๋ต์ ๋๋ค. ์์ปจ๋, Go 1 ํธํ์ฑ ์ง์นจ ์ ๋ณด์์์ ์ด์ ๋ก ์ฃผ์ ๋ฒ์ ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ณ๊ฒฝ ์ฌํญ์ ๊นจ๋ ๊ฒ์ ํ์ฉํ์ง๋ง ๊ธฐ์กด ์ฝ๋๊ฐ ๊ฐ๋ฅํ ํ ๋ง์ด ์๋ํ๋๋ก ์ ์งํ๋ ๋ฐฉ์์ผ๋ก ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ํญ์ ๊ฐ์ฅ ์ข์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ธฐ๋ฅ์ ์ ๊ฑฐํ์ง ๋ง์ญ์์ค. ๋์ , ๋ถ์ ์ ํ๊ฒ ํธ์ถ๋ ๊ฒฝ์ฐ์๋ง ํจ์๋ฅผ ํจ๋ ๋๋ log.Fatal๋ก ๋ง๋ญ๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -376266648 @jimmyfrasche ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376270750 @AlexRouSg.]
์. ๊ฐ ๋ฒ์ ํ๊ทธ๋ฅผ ์ ์ฒด ์ ์ฅ์์ ํ๋์ ํ์ ํธ๋ฆฌ์๋ง ํด๋นํ๋ ๊ฒ์ผ๋ก ์ทจ๊ธํ๊ณ ๊ฐ ๊ฒฐ์ ์ ๋ํด ๋ค๋ฅธ ํ๊ทธ(๋ฐ๋ผ์ ๋ค๋ฅธ ์ปค๋ฐ)๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -376640804 @pbx0.]
[ https://github.com/golang/go/issues/24301#issuecomment -376645212 @powerman ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376650153 by @pbx0.]
[ https://github.com/golang/go/issues/24301#issuecomment -376660236 @powerman ์์ฑ.]
@powerman ์ด ์ธ๊ธํ๋ฏ์ด, ์ฐ๋ฆฌ๋ ๋ถ๋ช ํ API ์ผ๊ด์ฑ ๊ฒ์ฌ๊ธฐ๋ฅผ ์ ๊ณตํ์ฌ ํ๋ก์ ํธ๊ฐ ๋ถ๋ช ํ ๊นจ๋ ๋ณ๊ฒฝ์ ๋ฆด๋ฆฌ์คํ๋ ค๊ณ ํ ๋ ์ต์ํ ํ๋ก์ ํธ์ ์๋ฆด ์ ์์ด์ผ ํฉ๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -376640804 @pbx0.]
๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๊ฒฐ๊ณผ ๋ฐ์ด๋๋ฆฌ์ goversion -m ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋น๋ํ์ง ์๊ณ ๋์ผํ ๊ฒ์ ํ์ํ๋ go ์ต์ ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -376925845 @joeshaw ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376936614 @kardianos ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376947621 @Merovius ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376979054 @joeshaw ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376988873 @jamiethermo ์์ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -377134575 @Merovius ์์ฑ]
์๋ต: [ https://github.com/golang/go/issues/24301#issuecomment -377411175 by @rsc.] ํ๋ก์์ ๊ณต๊ธ์ ์ฒด๊ฐ ๋ชจ๋ ์ง์๋ฉ๋๋ค. ํ๋ก์๋ ์ํฐํ๋ผ์ด์ฆ์ ๋งค์ฐ ์ค์ํ๊ณ ๋ฒค๋๋ ์คํ ์์ค์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ ์ ๋ขฐํ ์ ์๋ ๋ฏธ๋ฌ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ๊ธฐ๋ฅผ ์ํ์ง๋ง vgo๊ฐ go๊ฐ ๋ ํ์๋ง ๊ฐ๋ฅํฉ๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -377601170 @stevvooe ์์ฑ.]
์๋ต [ https://github.com/golang/go/issues/24301#issuecomment -377602765 by @rsc]์์ ์ ๋ฌธ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์์ฒญํ์ง๋ง ํด๋น ๋ฌธ์ ๋ ์ ์ถ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
vgo-v1-lock
ํ๊ทธ๋ฅผ ์ถ๊ฐํ๋ผ๋ ์ ์์
๋๋ค.[ https://github.com/golang/go/issues/24301#issuecomment -377662150 by @kybin.]
์ฒ์์๋ ๋งค๋ ฅ์ ์ผ๋ก ๋ณด์ด์ง๋ง ์๋ง๋ ๋งก์ ๊ฐ์น๊ฐ ์๋ ํน์ํ ๊ฒฝ์ฐ๋ก ์ด์ด์ง๋๋ค. https://github.com/golang/go/issues/24301#issuecomment -384344659์ ์ ์ฒด ์๋ต.
[ https://github.com/golang/go/issues/24301#issuecomment -378255833 @chirino ์์ฑ.]
์๋ต [ https://github.com/golang/go/issues/24301#issuecomment -378261916 by @kardianos.] ๋ฐ๊พธ๊ธฐ ์ง์๋ฌธ์ ์ฌ์ฉํฉ๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -379020339 @jimmyfrasche ์์ฑ.]
์๋ต [ https://github.com/golang/go/issues/24301#issuecomment -379307176 @rsc.]
์ด๊ฒ์ vgo ์ ์์ด ์ง์ ํด๊ฒฐํ๋ ค๊ณ ์๋ํ์ง ์๋ ์ค์ ๊ธฐ์กด ๋ฌธ์ ์ด์ง๋ง ๋ถ๋ช
ํ ์ฐ๋ฆฌ๋ ๊ฒฐ๊ตญ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ์ฝ๋๊ฐ ์ฌ๋ผ์ง๋ ๊ฒ์ ๋ํ ๋ต์ ์บ์ฑ ํ๋ก์(๋ฏธ๋ฌ)์ ํจ๊ป ์ด๋ฅผ ์ ๋ขฐํ ์ด์ ๊ฐ ์๋ ๊ฒ์
๋๋ค. ๊ทธ๊ฒ์ด ๋ฏธ๋์ ์ผ์ด๋ค. (๋๋ ์ํ๋ ๊ฒฝ์ฐ ์ต์์ ํ๋ก์ ํธ์์ ๊ณต๊ธ์
์ฒด๋ฅผ ์ฌ์ฉํ์ญ์์ค.) ์ฝ๋ ์ด๋์ ๋ํ ๋๋ต์ ์ ํ ๋ณ์นญ์ด ์ ํ ๋ฆฌ๋๋ ์
์ธ ๊ฒ์ฒ๋ผ ๋ชจ๋ ๋๋ ํจํค์ง ๋ฆฌ๋๋ ์
์ ๋ช
์์ ๊ฐ๋
์ ์ถ๊ฐํ๋ ๊ฒ์
๋๋ค. ๊ทธ๊ฒ์ ๋ฏธ๋์ ์ผ์ด๊ธฐ๋ ํ๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -383168012 by @korya.]
์ง์ ์์ ์ก์ธ์ค๊ฐ ๊ณํ์ ๋ค์ ์ถ๊ฐ๋์์ต๋๋ค. #24915๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
[ https://github.com/golang/go/issues/24301#issuecomment -382793364 @sdwarwick ์์ฑ.]
๋ฐ์ด๋๋ฆฌ ์ ์ฉ ํจํค์ง๋ GOPATH/pkg์ ๋์ญ ์ธ ์ค์น์ ๊ฐ์ ์ ํ๋ ์ํฉ์์๋ง ์ง์๋์์ต๋๋ค. Go get์ ๋ฐ์ด๋๋ฆฌ ์ ์ฉ ํจํค์ง ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ์ค์น๋ฅผ ์ง์ํ ์ ์ด ์์ผ๋ฉฐ ์์ผ๋ก๋ ๊ณ์ ์ง์ํ์ง ์์ ๊ฒ์ ๋๋ค. ๋ฐ์ด๋๋ฆฌ ์ ์ฉ ํจํค์ง๋ ํ๋์ ํน์ ์ปดํ์ผ๋ฌ์ ํ๋์ ํน์ ์ข ์์ฑ ๋ณต์ฌ๋ณธ์์๋ง ์๋ํ๋ฏ๋ก ์ง์๋ ์ ์๋ ์ ๋๊ฐ ์ฌ๊ฐํ๊ฒ ์ ํ๋ฉ๋๋ค. ์ ๋ต์ ๊ฑฐ์ ํญ์ ์์ค ์ฝ๋๋ฅผ ๋์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
[ https://github.com/golang/go/issues/24301#issuecomment -382791513 @sdwarwick ์์ฑ.]
#24119 ์ ๋๋ค. ์ฒ์์๋ ์ข์ ์๊ฐ์ฒ๋ผ ๋ณด์์ง๋ง ์ ์คํ๊ฒ ๊ณ ๋ คํ ํ์๋ ์๋์์ต๋๋ค.
.
.
https://golang.org/cl/101678 ์์ ์ด ๋ฌธ์ ๋ฅผ ์ธ๊ธ ๋ณ๊ฒฝ: design: add 24301-versioned-go
์ด ์ ์์ ์ธ์์ ์ด๊ณ ๋๋ ๊ทธ๊ฒ์ ๊ดํ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฅ ๋ง์์ ๋ญ๋๋ค. ๊ทธ๋ฌ๋ ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์ ๋ค์๊ณผ ๊ฐ์ ์ฐ๋ ค ์ฌํญ์ ์ฌ๋ ธ์ง๋ง ์๋ต์ ๋ฐ์ง ๋ชปํ์ต๋๋ค. ๊ทธ๋์ ๋๋ vgo์ ๋ํ Gophers slack ์ฑ๋์์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ ๊ธฐํ ์ด ๋ฌธ์ ๋ฅผ ๋ณด์์ง๋ง ๊ฑฐ๊ธฐ์์๋ ๋ง์กฑ์ค๋ฌ์ด ๋ต๋ณ์ ๋ณด์ง ๋ชปํ์ต๋๋ค.
๋ณด๋ธ ์ฌ๋: https://groups.google.com/d/msg/golang-dev/Plc42fslQEk/rlfeNlazAgAJ
vgo ์ด์ ์ธ๊ณ์ vgo ์ธ๊ณ ์ฌ์ด์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ๋๋น ์ง๋ ๊ฒ์ด ๊ฐ์ฅ ๊ฑฑ์ ์ ๋๋ค. ์ํํ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์์ผ๋ฉด Go ์ปค๋ฎค๋ํฐ์ ํฐ ๊ณ ํต์ ์ค ์ํ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ถ๋ช ํ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ ์ฒด ์ปค๋ฎค๋ํฐ์์ ์์์ ์ผ ์ ์์ง๋ง ์ง๊ธ๊น์ง vgo์ ๋ํด ์์ฑํ ๋ชจ๋ ๋ด์ฉ์ ์ดํดํ๋ค๋ฉด ๊ธฐ์กด์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํจํค์ง๋ฅผ pre-vgo ๋๊ตฌ์ post ๋ชจ๋์์ ์ฌ์ฉํ ์ ์๋ ์ํฉ์ด ์์ ์ ์์ต๋๋ค. -vgo ๋๊ตฌ.
ํนํ, ์ฃผ์ ๋ฒ์ >= 2๋ก ํ๊ทธ๊ฐ ์ง์ ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์ด๋ฏธ ์๋ ๊ธฐ์กด ํจํค์ง๋ go.mod ํ์ผ์ด ์๊ณ /vN ์ฆ๊ฐ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ธ์ฌ ๋๊น์ง vgo์์ ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ฅ์์ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋๋ฉด vgo ์ด์ ํจํค์ง ์ฌ์ฉ์ด ์ค๋จ๋ฉ๋๋ค.
์ด๊ฒ์ ๋ค์ด์๋ชฌ๋ ์ค๊ฐ์ ์๋ ๋ ํ์ ํจํค์ง๊ฐ ๊ณตํต v2+ ํจํค์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๋ค๋ฅธ ์ข ๋ฅ์ ๋ค์ด์๋ชฌ๋ ๊ฐ์ ธ์ค๊ธฐ ๋ฌธ์ ๋ฅผ ์์ฑํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. vgo๋ฅผ ์ฌ์ฉํ๋ pre-vgo ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๋ค์ด์๋ชฌ๋ ๋งจ ์์ ์๋ ํจํค์ง๊ฐ ๋น๋ํ ์ ์๋ ์ํ๊ฐ ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ์ ํจํค์ง๊ฐ vgo ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์์์ ์ผ๋ก ์ฑํํด์ผ ํ๋์ง ๊ฑฑ์ ๋ฉ๋๋ค.
์ด ์๋๋ฆฌ์ค์์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๋ฅผ ์ค๋ช ํ๋ ๊ฒ์ ์์ง ๋ณธ ์ ์ด ์์ต๋๋ค.
์ ์์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ช ์๋์ด ์์ต๋๋ค.
๋ชจ๋ ์ธ์ ๋น๋๋ v0 ๋๋ v1 ์๋งจํฑ ๋ฒ์ ์ผ๋ก ํ๊ทธ๊ฐ ์ง์ ๋ ๋น๋ชจ๋ ์ธ์ ํจํค์ง(go.mod ํ์ผ์ด ์๋ ํธ๋ฆฌ ์ธ๋ถ์ ์๋ ํจํค์ง)๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๋ํ v0.0.0-yyyymmddhhmmss-commit ํ์์ "์์ฌ ๋ฒ์ "์ ์ฌ์ฉํ์ฌ ํน์ ์ปค๋ฐ์ ์ฐธ์กฐํ ์๋ ์์ต๋๋ค. ์์ฌ ๋ฒ์ ํ์์ ์ฌ์ฉํ๋ฉด ํ๊ทธ๊ฐ ์ง์ ๋์ง ์์ ์ปค๋ฐ๊ณผ v2 ์ด์์์ ์๋ฏธ ์ฒด๊ณ ๋ฒ์ ์ผ๋ก ํ๊ทธ๊ฐ ์ง์ ๋์ง๋ง ์๋ฏธ ์ฒด๊ณ ๊ฐ์ ธ์ค๊ธฐ ๋ฒ์ ๊ด๋ฆฌ ๊ท์น์ ๋ฐ๋ฅด์ง ์๋ ์ปค๋ฐ์ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋น ๋ชจ๋ ์ธ์ ํจํค์ง๊ฐ ์ ์ด ์ข ์์ฑ >= v2๊ฐ ์๋ ๋ชจ๋ ์ธ์ ํจํค์ง๋ฅผ ๊ฐ์ ธ์ฌ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด๋ ์์ง ํด๊ฒฐ๋์ง ์์ ๋ฐฉ์์ผ๋ก ์ํ๊ณ ๋ถ์ด์ ์ผ์ผํค๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ํจํค์ง๊ฐ >= v2์ธ ๋ชจ๋ ์ธ์ ์ข ์์ฑ์ด ์์ผ๋ฉด ๋ชจ๋ ์ข ์ ํญ๋ชฉ๋ vgo๋ฅผ ์ฑํํ์ฌ ๋น๋ ์๋์ ์ ์งํ๋๋ก ๊ฐ์ ํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ ์ ์ด ์ข ์์ฑ ์ด๋๊ฐ์ v2๊ฐ ์์ต๋๋ค.
์ ๋ฐ์ดํธ: https://github.com/golang/go/issues/24454 ๋ ์ฐธ์กฐํ์ธ์.
Go ํ๋ก์ ํธ๋ ํ๋ก์ ํธ ์์๋ถํฐ ์ด ๊ท์น์ ๊ถ์ฅํ์ง๋ง ์ด ์ ์์ ๋ ๋ง์ ๊ฒ์ ์ ๊ณตํฉ๋๋ค. ํจํค์ง ์ฌ์ฉ์์ ์ํ ์ ๊ทธ๋ ์ด๋๋ ํจํค์ง ์์ฑ์๊ฐ ๊ฐ์ ธ์ค๊ธฐ ํธํ์ฑ ๊ท์น์ ๋ฐ๋ฅด๋ ๋ฒ์์์๋ง ์ฑ๊ณตํ๊ฑฐ๋ ์คํจํฉ๋๋ค.
์ด๊ฒ์ด ๋ฌด์์ ์๋ฏธํ๊ณ ํ์ฌ ์ํฉ์์ ์ด๋ป๊ฒ ๋ณํํ๋์ง ๋์๊ฒ๋ ๋ถ๋ถ๋ช ํฉ๋๋ค. ์ด๊ฒ์ ํ์ฌ ์ํฉ๋ ์ค๋ช ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๊ท์น์ ์ด๊ธฐ๋ฉด ์ ๊ทธ๋ ์ด๋์ go-get์ด ์คํจํฉ๋๋ค. AIUI๋ ์ค์ ๋ก ๋ณ๊ฒฝ๋๋ ์ฌํญ์ด ์์ผ๋ฉฐ ์ ์ด๋ "๋ ๋ง์ ์น์"์ ๋ํ ์ธ๊ธ์ ์ ๊ฑฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฌผ๋ก ์ด ๋จ๋ฝ์ด ํ์์ ์ฒ๋ฒ/๋ฐฉ์งํ๊ธฐ ์ํ ์ถ๊ฐ ๋ฉ์ปค๋์ฆ์ด ์์์ ์๋ฏธํ์ง ์๋ ํ?
์ด๋ ๋์ผํ ํจํค์ง์ ์ฌ๋ฌ ์ฃผ์ ๋ฒ์ ์ด ๊ฒฐ๊ตญ ์ด๋ฅผ ์ํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๊ธฐํ ์ค์ ๋ค๋ฅธ ํจํค์ง์ ์์ ์ ๋ฑ๋กํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ผ์ด๋ฒ ๋ฐ ์ด๋ฏธ์ง ํ์๊ณผ ๊ฐ์ ๊ฒ๋ค์๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๊ทธ๊ฒ์ด ์ด๋ค ์ํฅ์ ๋ฏธ์น ์ง๋ ๋์๊ฒ ๋ถ๋ช ํ์ง ์์ต๋๋ค.
์ฃผ ๋ฒ์ ์ด v0 ๋๋ v1์ด๋ฉด ๋ฒ์ ๋ฒํธ ์์๋ฅผ ์๋ตํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
์ ์ด๋ฐ๊ฑฐ์ผ? ๋งํฌ๋ ๊ฒ์๋ฌผ์์๋ ์ด๊ฒ์ด ๊ฐ๋ฐ์๊ฐ ํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋ง๋ค ๋ ๋์ฒด ๊ฒฝ๋ก๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ํํ๋ ์์
์ด๋ผ๋ ๊ทผ๊ฑฐ๋ง ๋ณผ ์ ์์ต๋๋ค. . ์๋ก์ด ๋ฐฉ์์ผ๋ก ์ ํํ๋ ๊ฒฝ์ฐ ์๋ก์ด vgo ์ง์ ํจํค์ง์ v0
๋๋ v1
๊ฐ ํฌํจ๋๋๋ก ํ์ฉํ๊ณ ๊ถ์ฅ(๋๋ ์๋ฌดํ)ํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ๋ฒ์ ์ด ์๋ ๊ฒฝ๋ก๋ ํผ๋์ ๊ธฐํ์ผ ๋ฟ์
๋๋ค. (vgo ์คํ์ผ ํจํค์ง์ธ๊ฐ์? ๋ชจ๋ ๊ฒฝ๊ณ๋ ์ด๋์ธ๊ฐ์? ๋ฑ)
๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์์ ์ข์ํ์ง๋ง ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์ ์ฃผ์ ๋ฒ์ ์ ์๊ตฌํ๋ ๊ฒ์ ๋งค๋ฌ๋ ธ์ต๋๋ค.
go.mod
์์ ์ฃผ ๋ฒ์ ์ ์ด๋ฏธ ์ ์ ์๋ ๊ฒฝ์ฐ DRY ์์น์ ์๋ฐํฉ๋๋ค. ๋ ์ฌ์ด์ ๋ถ์ผ์น๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง ์ดํดํ๋ ๊ฒ๋ ์ง๊ดํ๊ธฐ ์ด๋ ต์ต๋๋ค.v0
๋ฐ v1
๊ฐ ๋ถ์ฌํ๋๋ก ํ์ฉํ๋ ๋ถ๊ท์น์ฑ๋ ์ง๊ด์ ์ด์ง ์์ต๋๋ค.moauth
์์ ์ ๊ฐ์ ์๋๋ฆฌ์ค๋ ์คํ ๊ฐ๋ฅํด์ผ ํ์ง๋ง ๋ ์ผ๋ฐ์ ์ธ ์๋๋ฆฌ์ค๋ฅผ ์ํด ๋จ์ํ๊ฒ ์ ์งํ๋ ๋น์ฉ์ ๋ค์ด์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฐ์ : ์ธ์์ ์ธ ์ํ!
๋์๊ฒ ์์ ํ ๋ถ๋ถ๋ช ํ๊ณ ์ฝ๊ฐ ๋ ์ง์ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ์ ์์ zip ํ์ผ์ด ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ ์ด์์, ์ ์ฝ ์กฐ๊ฑด ๋ฐ ์ฌ๋ฌ ์ฌ์ฉ ์ฌ๋ก(์: ์์ฑ ์๊ธฐ ๋ฐ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ, ์ง์์ด ํ์ํ ๋๊ตฌ, ๋ฆฐํฐ์ ๊ฐ์ ๋๊ตฌ์ ์ํธ ์์ฉํ๋ ๋ฐฉ๋ฒ)๋ ์ ์์์ ๋ค๋ฃจ์ง ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ถ๋ช ํฉ๋๋ค.
๋ฐ๋ผ์ ์ด ์ ์์ ๋ฒ์ ๋ด์์ ์ ํ ๋ ผ์ํ์ง ์์ผ๋ ค๋ ๊ฒฝ์ฐ ๋์ค์ ์์ง ์์ฑ๋์ง ์์ ์ ์์ ์ฌ๊ธฐ์์ ์ฐธ์กฐํ๊ณ zip์ด๋ผ๋ ๋จ์ด๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ์ ์ ํ ์คํธ์์ ์ ์ฒด ๋ถ๋ถ์ ์ ๊ฑฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋์ค์ ์ด์ ๋ํด ๋ ผ์ํ๋ฉด ๋ค๋ฅธ ์ฒญ์ค์ด ์ฌ๊ธฐ์ ๋ ์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
์์ฌ ๋ฒ์ (v0.0.0-yyyymmddhhmmss-commit)์ ํ์์คํฌํ์ ์ด๋ค ์๊ฐ๋๊ฐ ์ฌ์ฉ๋ฉ๋๊น?
ํธ์งํ๋ค:
https://research.swtch.com/vgo-module์ ๋ช
์๋ ๋๋ก UTC์
๋๋ค.
@rsc C ์ข ์์ฑ์ ๋ค๋ฃฐ ์์ ์ ๋๊น?
์ต์ ๋ฒ์ ์ ํ์ด ํต์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ ํ๋ฅผ ๋งค์ฐ ๋๋ฆฌ๊ฒ ๋ง๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ๋ก์ ํธ A, B ๋ฐ C์์ ์ฌ์ฉํ๋ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Foo๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋๊ตฐ๊ฐ API๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ Foo ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค. ํ์ฌ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๋ ๊ฒ์ ์ตํธ์์ ํ๋ก์ธ์ค์ ๋๋ค. ํ๋ก์ ํธ A๊ฐ Foo๋ฅผ ์ ๊ณตํ์ง๋ง B์ C๊ฐ ์ ๊ณตํ์ง ์์ ๊ฒฝ์ฐ ์์ฑ์๋ A์ ๋ํ ๋ฒค๋ ์ข ์์ฑ์ ๋ํ ์ ๋ฐ์ดํธ์ ํจ๊ป pr์ ๋ณด๋ด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ํฉ. ์ด๋ ๋ณด์ ์ ๋ฐ์ดํธ์ ๊ฒฝ์ฐ ๋์ฑ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค. ์ผ๋ถ ๋ฒ๋ ค์ง/์์/๋ณ๋ก ํ๋์ ์ด์ง ์์ ํ๋ก์ ํธ(๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋)๊ฐ x/crypto์ ๊ฐ์ ์ด์ ๋ฒ์ ์ ๋ํ ์ง์ ์ ์ธ ์ข ์์ฑ์ ์ ์ธํ๋ฉด ํด๋น ํ๋ก์ ํธ์ ๋ชจ๋ ์ฌ์ฉ์๋ ํ๋ก์ ํธ๊ฐ ์ ๋ฐ์ดํธ๋ ๋๊น์ง ์ ์ฌ์ ์ผ๋ก ์์ํ x/crypto์ ๊ฒฐํจ์ ์ทจ์ฝํฉ๋๋ค. ํ์ฌ ์ด๋ฌํ ํ๋ก์ ํธ์ ์ฌ์ฉ์๋ ์ต์ ๊ณ ์ ๋ฒ์ ์ ๋ฐ๊ฒ ๋๋ฏ๋ก ๋ณด์ ์ํฉ์ด ์ ํ๋ฉ๋๋ค. IIRC๋ ๋ฉ์ผ ๋ชฉ๋ก ํ ๋ก ์์ ์ด๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์ ์์ด ์์์ง๋ง, ๋ด๊ฐ ๋งํ ์ ์๋ ํ ์ด ์ ์์๋ ์ธ๊ธ๋์ง ์์์ต๋๋ค.
IIRC ๋ฉ์ผ ๋ชฉ๋ก ํ ๋ก ์์ [๋ณด์ ํจ์น ๋ฐ๊ธฐ]๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์ ์์ด ์์์ง๋ง ๋ด๊ฐ ๋งํ ์ ์๋ ํ ์ด ์ ์์๋ ์ธ๊ธ๋์ง ์์์ต๋๋ค.
go get -p
์ ๋ํ ์ธ๊ธ์ ์ฐธ์กฐํ์ญ์์ค.
go get -p์ ๋ํ ์ธ๊ธ์ ์ฐธ์กฐํ์ญ์์ค.
๋๋ ๊ทธ๊ฒ์ ๋ณด์์ง๋ง ์ด๊ฒ์ ์ฌ์ ํ โโ์ตํธ์ธ ๋ฉ์ปค๋์ฆ์
๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ชจ๋ ์ด์ ๋ฆด๋ฆฌ์ค๋ฅผ ์์ ํ์ง ์์ ๊ฒ์ผ๋ก ํ์ํ์ฌ ์ฌ์ฉ์๊ฐ go get -p๋ฅผ ์คํํ๊ฑฐ๋ ์์ ํ์ง ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ช
์์ ์ผ๋ก ์ตํธ์ธํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ณ ์์์ต๋๋ค.
์ค๋๋ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ go get
์ ๋ํ ์ง์์ด ๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ณ ๊ฒฐ๊ตญ ์ ๊ฑฐ๋ ๊ฒฝ์ฐ Go ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ค์นํ๋ ๊ถ์ฅ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น? ํ๋ก์ ํธ๋ฅผ ๋จผ์ $#$ git clone
$#$ ํ๊ณ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ค์นํ๋ ค๋ฉด ์๋ go install
๊ฐ ํ์ํฉ๋๊น?
$GOPATH
๊ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ ์ด๋ฌํ ๋ฐ์ด๋๋ฆฌ๋ ์ด๋์ ์ค์น๋ฉ๋๊น?
@leonklingele : ๋ด ์ดํด์ ๋ฐ๋ฅด๋ฉด go get
๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
์๋ ๋ฐ ํฌ๋ช
ํ ๋ฒ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ผ๋ก ํฅ์๋ฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ํ๊ทธ๊ฐ ์ง์ ๋์ง ์์ ํ๋ก์ ํธ์ ์ข
์๋ ๊ฒฝ์ฐ ๋ง์คํฐ๋ฅผ ๊ฐ์ ธ์ ์ด ์ ํํ ๋ฒ์ ์์ "๊ณต๊ธ์
์ฒด"๋ก ๋ง๋ญ๋๋ค.
๋ค์ ๋งํ์ง๋ง, vgo์ ๋ํ ์ฝ๊ฐ์ ์ฝ๊ธฐ์์ ๋ด ์์ ์ ์ดํด. ์์ง ์์ ํ ์ดํดํ๋ ๋จ๊ณ์
๋๋ค.
์ด๊ฒ์ด ์ ์์์ ๋ค์ ๋ฌธ์ฅ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ์ผ๋ฐ์ ์ผ๋ก Git ์ ์ฅ์ ์์ ์ ํ๋ฆ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น ์ง ๊ถ๊ธํฉ๋๋ค.
์ฃผ ๋ฒ์ ์ด v0 ๋๋ v1์ด๋ฉด ๋ฒ์ ๋ฒํธ ์์๋ฅผ ์๋ตํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
ํ์ฌ๋ก์๋ ๋ง์คํฐ์์ ์์
ํ๊ณ (์ ์๊ฒ๋ ์ฌ๊ธฐ์๋ ๋จ๊ธฐ ๊ธฐ๋ฅ ๋ถ๊ธฐ๊ฐ ํฌํจ๋จ) ๋๋๋ก ์ ๋ฒ์ ์ผ๋ก ์ปค๋ฐ์ ํ๊ทธ๋ฅผ ์ง์ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์
๋๋ค. ์ด์ master
๋ฐ v2
๋ถ๊ธฐ๊ฐ ์์ผ๋ฏ๋ก ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ v2๋ฅผ ๋ฆด๋ฆฌ์คํ์๋ง์ ์ด ์ํฌํ๋ก๊ฐ Go ๋ชจ๋๊ณผ ๋ ํผ๋์ค๋ฌ์์ง๋ ๊ฒ ๊ฐ์ต๋๋ค. master
๋ ํ์ฌ ๋ถ๊ธฐ์ด๊ณ v2
๋ ์ ์ง ๊ด๋ฆฌ ๋ถ๊ธฐ๊ฐ ๋ ๊ฒ์ผ๋ก ์์ํ์ง๋ง ์ ํํ ๊ทธ ๋ฐ๋์
๋๋ค.
๊ธฐ๋ณธ ๋ธ๋์น๊ฐ master
์์ v2
๋ก ๋ณ๊ฒฝ๋ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ์ด๊ฒ์ ์ฌ์ ํ โโ์๋ก์ด ์ฃผ์ ๋ฒ์ ์ ๋ฆด๋ฆฌ์คํ ๋๋ง๋ค ์
๋ฐ์ดํธํด์ผ ํ๋ ์์
์ ๋จ๊ฒจ๋ก๋๋ค. ๊ฐ์ธ์ ์ผ๋ก master
๋ฐ v1
๋ถ๊ธฐ๊ฐ ์์ผ๋ฉด ์ข๊ฒ ์ง๋ง ์ด๊ฒ์ด ์ ์์์ ์ ํํ ๋ง๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์๋ก์ด ์ฃผ์ ๋ฆด๋ฆฌ์ค๋ก ์ธํด ๊ณ ๊ฐ ์ดํ์ด ๋ฐ์ํฉ๋๋ค. ์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ง๋ค ๋๋ง๋ค Git ๋ฆฌํฌ์งํ ๋ฆฌ(๊ธฐ๋ณธ ๋ถ๊ธฐ)์์ ํ๋์ ์ค์ ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์๊ฐ ์ ๋ฒ์ ์ผ๋ก ์ ํํ๋ ๊ฒ๊ณผ ๋น๊ตํ๋ฉด ๋งค์ฐ ์ ์ ๋น์ฉ์ ๋๋ค.
์ด ์ ์์ ์ธก๋ฉด์ด ์ฌ๋ฐ๋ฅธ ์ธ์ผํฐ๋ธ๋ฅผ ์ค์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ ์์ฑ์๊ฐ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ์ ์ํํ์ฌ ์ ์ฒด ์ํ๊ณ ๋ณ๋์ ์ค์ด๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ๋๋ก ๊ถ์ฅํฉ๋๋ค.
์ด์ ๋ง์คํฐ์ v2 ๋ธ๋์น๊ฐ ์์ต๋๋ค.
๋์ ๋ง์คํฐ์ v2/
ํ์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
@mrkanister
๋๋ ๋ง์คํฐ์ v1 ๋ธ๋์น๋ฅผ ๊ฐ๊ณ ์ถ์ง๋ง ์ด๊ฒ์ด ์ ์์์ ์ ํํ ์ผ๋ง๋ ๋ง๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
https://research.swtch.com/vgo-module ์ ๋ํ ๋ด ์ดํด์ ๋ฐ๋ฅด๋ฉด vgo๋ ๋ฒ์ ์ ์๋ณํ๊ธฐ ์ํด ๋ถ๊ธฐ๊ฐ ์๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ํ๊ทธ๊ฐ ์ฌ๋ฐ๋ฅธ ๋ถ๊ธฐ๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์ปค๋ฐํ๋ ํ ๋ง์คํฐ์์ ๊ฐ๋ฐ์ ์ ์งํ๊ณ v1์์ ๋ถ๊ธฐํ ์ ์์ต๋๋ค.
์๋ก์ด ์ฃผ์ ๋ฆด๋ฆฌ์ค๋ก ์ธํด ๊ณ ๊ฐ ์ดํ์ด ๋ฐ์ํฉ๋๋ค. ์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ง๋ค ๋๋ง๋ค Git ๋ฆฌํฌ์งํ ๋ฆฌ(๊ธฐ๋ณธ ๋ถ๊ธฐ)์์ ํ๋์ ์ค์ ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์๊ฐ ์ ๋ฒ์ ์ผ๋ก ์ ํํ๋ ๊ฒ๊ณผ ๋น๊ตํ๋ฉด ๋งค์ฐ ์ ์ ๋น์ฉ์ ๋๋ค.
์ด๊ฒ์ ๋ด๊ฐ ๊ณผ๊ฑฐ์ ๋ฐ๋์ ์ด์ฌํ ๋ฌผ์ด๋ฏ์๋ค๊ณ ์๊ฐํ๋ ๋ฌธ์ ์ ์ฌ๊ณ ๋ฐฉ์์ด๋ค. ํ ํ๋ก์ ํธ์ ํ ์ฌ๋์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ๋ถ๊ธฐ๋ฅผ ์ ํํ๋ ๊ฒ์ ํ์ฌ ๊ฐ๋จํฉ๋๋ค. ๊ทธ๋ ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ํฌํ๋ก ๊ท์น์ ์ด๊ธ๋๋ค๋ ๊ฒ์ ์ฌ๋๋ค์ด ํนํ ์ฌ๋ฌ ์ธ์ด๋ก ์์ ํ ๋ ์์ด๋ฒ๋ฆฐ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋์ด ์ด๋ณด์๊ฐ ๋ฐฐ์์ผ ํ ์์ ํ ๋ค๋ฅธ ์ผ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ ํ๋์ ๊ธฐ๋ฐํ ์๊ฐ ๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋จธ ์ํฌํ๋ก ๊ท์น์ ์ด๊ธ๋๋ ๊ฒ์ _์ ํ ์๋_ ์์ ๋น์ฉ์ ๋๋ค.
์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋จธ ์ํฌํ๋ก ๊ท์น์ ์ด๊ธ๋๋ ๊ฒ์ ๊ฒฐ์ฝ ์ฌ์ํ ๋น์ฉ์ด ์๋๋๋ค.
๊ธฐ์กด์ ๋ฐฉ์์ ๋ฐ๋ฅด์ง ์๋ ๊ฒ์ด ๋๋๋ก ํ์ ์ ํ์ ์กฐ๊ฑด์ ๋๋ค.
์ ์์์ ์ผ๋ถ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด ํ์ ๋๋ ํ ๋ฆฌ๋ ์ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค. go.module์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ๋ฐ๋ฅธ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ก ์ ๋ฐ์ดํธํ๊ธฐ๋ง ํ๋ฉด ์ ์ฌ์ ์ผ๋ก ๋ง์คํฐ ๋ถ๊ธฐ๋ง ๊ฐ์ง ์ ์๊ณ ๋ฆฌํฌ์งํ ๋ฆฌ์ 0.0, 1.0, 2.0 ๋ฑ์ผ๋ก ํ๊ทธ ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
@mrkanister ์ ์๊ฐ์๋ dev์ ๊ฒฝ์ฐ ๋ง์คํฐ(๋๋ ๋ชจ๋ dev ๋ถ๊ธฐ)๋ฅผ ๋ณต์ ํ๊ณ "replace" ์ง์๋ฌธ(vgo-tour ์ฐธ์กฐ)์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฆฌํต๋๋ค. (๋น์ ์ด ์๋ฏธํ๋ ๋ฐ๋ฅผ ์ดํดํ๋ค๋ฉด ํ์คํ์ง ์์ต๋๋ค).
@rsc ๋ก๋๋งต๊ณผ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ํด์ผ ํ ์ผ์ ๋ํด ์ข ๋ ์ ํํ ์๋ ค์ฃผ์
จ์ผ๋ฉด ํฉ๋๋ค.
Go ์ ์ฑ
์ ๋ฐ๋ฅด๊ณ 3๊ฐ์(์ง๊ธ 2)์ vgo ๊ธฐ๋ฅ์ ์ค์งํฉ๋๊น?
์ด์ ๋ชจ๋ libs ๊ด๋ฆฌ์์๊ฒ go.mod ํ์ผ์ ์ถ๊ฐํ๋๋ก ์์ฒญํ๋ ์๋ก์์ ์งํ๋ด์ ๋ฐ๋ผ๊ฐ์ผ ํฉ๋๊น, ์๋๋ฉด ์ ์์ด ๊ณต์์ ์ผ๋ก ์๋ฝ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๊น(์ด๋ฆ๊ณผ ๊ตฌ๋ฌธ์ด ๋ณ๊ฒฝ๋์ง ์๋๋ก)?
@flibustenet ๋๊ตฌ๋ 1.0 ์ ์ฑ ์ ์ ์ฉ์ ๋ฐ์ง ์์ผ๋ฏ๋ก ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
https://golang.org/doc/go1compat
๋ง์ง๋ง์ผ๋ก Go ๋๊ตฌ ์ฒด์ธ(์ปดํ์ผ๋ฌ, ๋ง์ปค, ๋น๋ ๋๊ตฌ ๋ฑ)์ ํ์ฌ ๊ฐ๋ฐ ์ค์ด๋ฉฐ ๋์์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์ด๋ ์๋ฅผ ๋ค์ด ๋๊ตฌ์ ์์น์ ์์ฑ์ ์์กดํ๋ ์คํฌ๋ฆฝํธ๊ฐ ํฌ์ธํธ ๋ฆด๋ฆฌ์ค์ ์ํด ์์๋ ์ ์์์ ์๋ฏธํฉ๋๋ค.
๋ํ ์ ์์์
์ ์ ์น์ธ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์๋ ์ ํ์ ๊ธฐ๋ฅ์ผ๋ก Go 1.11์ ๋ชจ๋ ์ง์์ ๋ฆด๋ฆฌ์คํ ๊ณํ์ ๋๋ค. Go 1.11 ๋ฆด๋ฆฌ์ค๋ ์ฌ์ฉ์์๊ฒ "์ค์ " ๋ชจ๋์ ์ฌ์ฉํ๊ณ ์ค์ํ ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ธ๋ถ ์ฌํญ์ด ๋ณ๊ฒฝ๋ ์ ์์ง๋ง ํฅํ ๋ฆด๋ฆฌ์ค์์๋ Go 1.11 ํธํ ์์ค ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Go 1.12๋ ํ์ผ ๊ตฌ๋ฌธ์ด๋ ํ์ผ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์๋ Go 1.11 go.mod ํ์ผ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํดํฉ๋๋ค. ์ดํ ๋ฆด๋ฆฌ์ค(์: Go 1.12)์์๋ ๋ชจ๋ ์ง์์ด ์๋ฃ๋์์์ ์ ์ธํฉ๋๋ค. ์ดํ ๋ฆด๋ฆฌ์ค(์: Go 1.13)์์๋ ๋ชจ๋์ด ์๋ go get์ ๋ํ ์ง์์ ์ข ๋ฃํฉ๋๋ค. GOPATH์์์ ์์ ์ง์์ ๋ฌด๊ธฐํ ๊ณ์๋ฉ๋๋ค.
ํผ๋๋ฐฑ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@AlexRouSg
https://research.swtch.com/vgo-module ์ ๋ํ ๋ด ์ดํด์ ๋ฐ๋ฅด๋ฉด vgo๋ ๋ฒ์ ์ ์๋ณํ๊ธฐ ์ํด ๋ถ๊ธฐ๊ฐ ์๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ํ๊ทธ๊ฐ ์ฌ๋ฐ๋ฅธ ๋ถ๊ธฐ๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์ปค๋ฐํ๋ ํ ๋ง์คํฐ์์ ๊ฐ๋ฐ์ ์ ์งํ๊ณ v1์์ ๋ถ๊ธฐํ ์ ์์ต๋๋ค.
๋น์ ์ด ๋ง์ต๋๋ค. ์ด๊ฒ์ ์ด์ ๊ณผ ๊ฐ์ด ๊ณ์ ์๋ํ ๊ฒ์ ๋๋ค.
๊ทธ๊ฑธ ์ ์ธํ๊ณ ๋ด๊ฐ (๊ทธ๋ฆฌ๊ณ ๋ถ๋ช
ํ ๋ค๋ฅธ ์ฌ๋๋ค) ์ดํดํ์ง ๋ชปํ๋ ๊ฒ์ v1
ํจํค์ง๊ฐ ์กด์ฌํ์ง ์๋๋ก ํ๋ ์ด์ ์
๋๋ค. ๊ฐ์ ธ์ค๊ธฐ๊ฐ ๋๋ ๋ /v1
๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์๋ํ๊ณ ๊ฐ์ ธ์ค๋ ํจํค์ง์ go.mod
์๋ ์ถ๊ฐํ์ง๋ง vgo
๋ v1
๋ผ๋ ํด๋๋ฅผ ์ฐพ์ต๋๋ค. ๋์
@mrkanister
๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์ v1 ๋๋ v0์ ํ์ฉํ์ง ์๋ ์ฃผ๋ ์ด์ ๋ ํจํค์ง์ ํธํ๋๋ ๊ฐ ๋ฒ์ ์ ๋ํด ํ๋์ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ง ์๋๋ก ํ๊ธฐ ์ํ ๊ฒ์
๋๋ค.
/v1 ๋์ ์ผ๋ฐ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ์ด ์ฌ์์ง๋ฏ๋ก ๋์ /v1์ ์ถ๊ฐํ๊ธฐ ์ํด ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์
๋ฐ์ดํธํ ํ์๊ฐ ์์ต๋๋ค.
์๋ ,
์ ์์์ ๋ง์ ์์ ์ ํ์ํ ๋งํ ๊ฒ ์ด์์ด๋ฉฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ฑ์ฅํ ๋๊ท๋ชจ Go ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ธธ๋ค์ด๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ด์ง๋ง "์ต์ ๋ฒ์ ์ฌ์ฉ" ๊ท์น์ ๋งค์ฐ ํด๋กญ์ต๋๋ค.
์ธ๊ฐ์ ๊ด์ฑ๊ณผ ์ธ์ฐ๋ ๊ฒ์ ํ๋ค๊ณ ๊ณ ํต์ค๋ฌ์ด ์ผ์ด๋ฉฐ, ์ฆ๊ฒ๊ธฐ ๋๋ฌธ์ด ์๋๋ผ ๋ฐ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ธ์ฐ๋ ๊ฒ์ ๋๋ค. ๋ฌธ์ ๋ฅผ ํผํ๊ณ ์ธ๊ฐ์ด ๋ ๋ฏธ๋ฃจ๋๋ก ๋ถ์ถ๊ธฐ๋ ์ ์พํ ๋๊ตฌ๋ฅผ ๋ง๋๋ ๊ฒ์ ์ ํ ๋์์ด ๋์ง ์์ผ๋ฉฐ ํ๋ก์ ํธ ์นจ์ ๊ณผ ๊ธฐ์ ์ ๋ถ์ฑ ์ถ์ ์ ๊ฐ์ํํ ๋ฟ์ ๋๋ค. github์๋ ์ด๋ฏธ ์์ญ ๊ฐ์ Go ํ๋ก์ ํธ๊ฐ ์์ผ๋ฉฐ, ๋๋ถ๋ถ์ ์ฝ์ด๋ณด๊ธฐ๋ ์ ์๊ฐ ์ค์ํ ์์ ์ ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์๊ฒ ์ ๊ทธ๋ ์ด๋๋ฅผ ๊ตฌ๊ฑธํ๋ ๋ฐ ์ ๋ ํ์ผ๋ฉฐ ๊ฐ์ฅ ์ค๋๋ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํ๋ฉด ๋ฌธ์ ๊ฐ ์ผ๋ฐํ๋ ๊ฒ์ ๋๋ค.
์ข์ ๊ท์น์ "๋ชจ๋ ์ค๊ฐ ์ปค๋ฐ์ด ์๋๋ผ ์ฃผ์ ๋ฆด๋ฆฌ์ค์ ์ผ์นํ๋ ์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉ"ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์์ผ๋ก์ ํํ๊ณผ ์์ ์ด ๋ ๊ฒ์ ๋๋ค. ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฐ์ฅ ์ ์๊ณ ์ฌ์ฉ์๋ฅผ ์ ์ฝ๋ ์ํ๋ก ์ ํํ ๋๋ฅผ ํ๋ช ํ๊ฒ ๊ฒฐ์ ํ ์ ์๋ ์๋ ํ๋ก์ ํธ๋ฅผ ๋ช ๋ น์ ๋ฃ์ต๋๋ค.
๋ต์ด ์๋ ์ง๋ฌธ์ด ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์์ ๋ณต์ฌ๋์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๊ฐ ์๋ก ๋ค๋ฅธ ์ฃผ์ ๋ฒ์ ์ด ์๋ก ๋ค๋ฅธ ๋ถ๊ธฐ์ ์๋ ์ผ๋ฐ์ ์ธ "์ฃผ์ ๋ถ๊ธฐ" ๊ท์น์ ๋ฐ๋ฅด๋ ๊ฒ์ ์ ํธํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ v2 ๋ถ๊ธฐ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์๋ ๋ค์๊ณผ ๊ฐ์ด v2๋ฅผ ๋ํ๋ด๋ go.mod๊ฐ ์์ต๋๋ค.
vgo์์ ์ง์ํ๋ ํ์ ๋๋ ํ ๋ฆฌ์ ์ด ์ฃผ์ ๋ถ๊ธฐ ๊ท์น์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด ์ผํ์ ์ธ ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด Go ๋๋ ๋ค๋ฅธ ์ธ์ด์์ ์ด ๊ท์น์ ๋ฐ๋ฅด๋ ์ ์ฅ์๋ ์์ต๋๋ค(์์ฆ ์๋์ ์ผ๋ก ์ฌ์ฉ๋์ง ์๋ gopkg.in์ ์ํด ๊ฐ์ ๋ ์ ์ฅ์ ์ธ์๋ ์ค์ ๋ก ๋จ์ผ ์ ์ฅ์๋ฅผ ์๊ฐํ ์ ์์ต๋๋ค). ๋ง์คํฐ ๋ธ๋์น๋ ์ต์ ๋ฒ์ ์ด๋ฉฐ ๊ธฐ๋ก์ v2.3.4 ํ๊ทธ๊ฐ ์์ต๋๋ค. ํ๊ทธ๋ ๋ชจ๋ ๊ฒ์ ๊ตฌ๋ถํ๊ธฐ ์ํด ์กด์ฌํฉ๋๋ค(๋จ์ํ ๋ถ ๋ฒ์ ์ด ์๋). ์ด์ ๋ฒ์ ์ ํจ์นํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ง์ง๋ง v1 ํ๊ทธ์์ ๋ถ๊ธฐ๊ฐ ์ผ์์ ์ผ๋ก ์์ฑ๋๊ณ ์ปค๋ฐ์ด ํธ์๋๊ณ ์ ํ๊ทธ๊ฐ ํธ์๋๊ณ ๋ถ๊ธฐ๊ฐ ์์ฝ์ ์ผ๋ก ์ญ์ ๋ฉ๋๋ค. ๋ฒ์ ์ ๋ํ ๋ถ๊ธฐ๊ฐ ์์ผ๋ฉฐ ํ์ฌ ๋ง์คํฐ/๊ฐ๋ฐ/๊ธฐ๋ฅ ๋ถ๊ธฐ + ๋ฒ์ ํ๊ทธ์ผ ๋ฟ์ ๋๋ค. ๋๋ Git์์ "๋ชจ๋ ๊ฒ์ด ref"๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๋ค๋ฅธ VCS์ ๊ฒฝ์ฐ ๊ตฌ๋ณ์ด ๋ชจํธํ์ง ์์ ์ ์์ต๋๋ค.
์ฆ, ์์์ ์ค๋ช ํ ์ํฌํ๋ก๋ฅผ vgo(v2.0.0, v2.0.1์ด๋ผ๋ ํ๊ทธ๋ง ์๊ณ ๋ถ๊ธฐ๋ ์์)๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธํ์ผ๋ฉฐ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋์ ์ ์ง๋ฌธ์ ์ด๊ฒ์ด ์ง๊ธ ์๋ํ์ง๋ง ์๋ํ ๊ฒ์ ๋๊น? ๋ธ๋ก๊ทธ์ ๋ค๋ฅธ ๋ ์ํฌํ๋ก๋งํผ ์์ธํ ์ค๋ช ๋์ด ์์ง ์์ ๊ฒ ๊ฐ๊ณ v2/v3... ๋ถ๊ธฐ ์์ด ์์ ํ๋ ๊ฒ์ด ์์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ ์ฌ๋ผ์ง๊ฒ ๋ ์ฐ๋ฐ์ ์ธ ๊ธฐ๋ฅ์ด ์๋์ ํ์ธํ๊ณ ์ถ์ต๋๋ค. ๋๊ตฌ์๊ฒ๋(ํนํ Go ์ปค๋ฎค๋ํฐ ์ธ๋ถ์์) ๋๊ท๋ชจ๋ก ์ฑํ๋ ํฌ์คํธ์ ์ํฌํ๋ก๋ฅผ ์ค๋ช ํ์ต๋๋ค.
๋ฌผ๋ก ๋ด ์ฃผ์ฅ์ ์ ํธ๋์ ์ผํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฏ๋ก ํ์ํ ๊ฒฝ์ฐ ๋ชจ๋ ์ธ์ด์์ ์ด๋ฅผ ์ฆ๋ช ํ๊ธฐ ์ํด ์ผ๋ถ ๋ค์ ์คํฌ๋ฉ์ ํ ์ํฅ์ด ์์ต๋๋ค. ์ง๊ธ๊น์ง ์ ์ ๊ฒ์๋ฌผ์ด ์ ๋ง ๋ง์์ ๋ค์๊ณ ์ผ๋ฐ์ ์ผ๋ก ๋ณ๊ฒฝ ์ฌํญ์ ๋์ํ๊ณ ๊ณ์ํด์ vgo๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉฐ ํ๋ ์ดํ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๋ ธ๋ ฅ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋๊ตฐ๊ฐ MVS์ ๋ํด ์ ์๋ ๋์ ๋ชจ๋ธ์ด ์ ๊ทธ๋ ์ด๋ ์ผ์ด๋์ค๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ช ํํ ํ ์ ์์ต๋๊น? ๋์๊ฒ ๋ช ํํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋์ฒด(๋๋ฆฌ ์ฌ์ฉ๋๋) ๋ชจ๋ธ์ ๋ํ ๋์ ์ดํด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ด๊ฐ ์ดํดํ๋ ์ ์๋ MVS ๋ชจ๋ธ์
go.mod
๋ฅผ ์๋ ์์ฑํ์ฌ ์ ์ด ์ข
์์ฑ์ ํ์ฌ ์ต์ ๋ฒ์ ์ ์ ํํฉ๋๋ค.go.mod
์ปค๋ฐ๋๊ณ ๋น๋ ๋ฐ ์ค์น ์ ๋ฒ์ ์ ๋ํ ํํ๊ฐ์ ์ป๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. MVS๋ ์ฌํ ๊ฐ๋ฅํ ๋น๋๋ฅผ ๋ณด์ฅํฉ๋๋ค.vgo get -u
๋ฅผ ์คํํ์ฌ ์ต์ ๋ฒ์ ์ ์ ์ด ์ข
์์ฑ์ ๊ฐ์ ธ์ go.mod
๋ฅผ ์ ํํ์ผ๋ก ๋ฎ์ด์๋๋ค. ๊ทธ๋ฌ๋ฉด ์ ์ถ๋ฉ๋๋ค.๋ญ๊ฐ ๊ฐ๊ณผํด์ผ ํ ๊ฒ ๊ฐ๊ณ ๋๊ตฐ๊ฐ ์ง์ ํด ์ฃผ๋ฉด ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฌํ ์ดํด๋ ์ ํํ ๋ฒ์ ๊ณผ ์ค์ ๋น๋์์ ์ฌ์ฉ๋๋ ๋ฒ์ ์ ์ง์ ํ๋ ์ ๊ธ ํ์ผ๋ก ์ธํด ์ผ๋ฐ์ ์ผ๋ก ๋ฒ์ ๋ณด๋ฅ๋ฅผ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ MVS๊ฐ ์ ๊ทธ๋ ์ด๋ ์ผ์ด๋์ค๋ฅผ ๋์ด๋ ๋ฐ ๋ ์ข์ต๋๋ค .
๋ถ๋ช ํ ๋๋ โโ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ต๋๋ค. (์ฝ 5m์์ ์ด๋ฆฌ ์์์ด ๋๊ปด์ง ๊ฒ์ ๋๋ค), ๊ทธ๊ฒ์ ๋ฌด์์ ๋๊น?
@tpng
/v1 ๋์ ์ผ๋ฐ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ์ด ์ฌ์์ง๋ฏ๋ก ๋์ /v1์ ์ถ๊ฐํ๊ธฐ ์ํด ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์ ๋ฐ์ดํธํ ํ์๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ ์ค์ ๋ก ํ์ํ์ง ์์์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
์ฌ์ฉ์๋ ํ์ฌ v1.0.0
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ข
์์ฑ ๊ด๋ฆฌ์์ ์
์คํธ๋ฆผ ์ ์ฅ์์ ํ๊ทธ์ ์ํด ๊ณ ์ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด์ ์
์คํธ๋ฆผ์ go.mod
๋ฅผ ๋ง๋ค๊ณ /v1
๋ชจ๋๋ ํธ์ถํ๊ธฐ๋ก ๊ฒฐ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ ์ปค๋ฐ๊ณผ ์ ํ๊ทธ๊ฐ ์์ฑ๋ฉ๋๋ค(์: v1.0.1
). vgo
๋ ์์ฒด์ ์ผ๋ก ์ข
์์ฑ์ ์
๋ฐ์ดํธํ๋ ค๊ณ ์๋ํ์ง ์์ผ๋ฏ๋ก ์ฌ์ฉ์๋ฅผ ์ํด ์๋ฌด ๊ฒ๋ ์์์ํค์ง ์์์ผ ํ์ง๋ง ์ฌ์ฉ์๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ์ฌ ์์์ ์ผ๋ก ์
๋ฐ์ดํธ ํ ์ ์์ต๋๋ค (pr vgo
๊ฐ ์ด๋ฅผ ์ํํ ์ ์์). ๊ทธ๋ฅผ ์ํด).
๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์ v1 ๋๋ v0์ ํ์ฉํ์ง ์๋ ์ฃผ๋ ์ด์ ๋ ํจํค์ง์ ํธํ๋๋ ๊ฐ ๋ฒ์ ์ ๋ํด ํ๋์ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ง ์๋๋ก ํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
์, ๋์๊ด์ ์๋ก์ด ์ฌ์ฉ์๋ฅผ ํผ๋ํ์ง ์๋๋ก ๊ทธ ์ ์ ์ฐธ์ผ๋ก ์ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ฃผ ๋ฒ์ ์ด v0 ๋๋ v1์ด๋ฉด ๋ฒ์ ๋ฒํธ ์์๋ฅผ ์๋ตํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
๋๊ตฐ๊ฐ ์ด๊ฒ์ ์ด์ ๋ฅผ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์๋ก์ v1์ ์ฌ์ฉํ๊ณ ์ถ์ง ์์ ๋ ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ(์๋ก์ด ์ฃผ์ ๋ฒ์ )์ ์์ ํ ๋ฌธ์ ๊ฐ ๋๋ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋์ ๋์๊ธฐ ๋๋ฌธ์ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
๋ถ์์ ํ๊ฑฐ๋ ์๋ฃ๋์ง ์์ ํจํค์ง๋ฅผ ๋ํ๋ด๋ ๋ฒ์ 1 ์ด์ ๋ฒ์ ๋ง ์๋ตํ๊ณ ์ถ์ต๋๋ค. ๋ฒ์ 1๋ถํฐ๋ ์์ ์ ์ผ๋ก ์ถ์๋๋ค๋ ์ฌ์ค์ ์์งํ ์ ์์์ผ๋ฉด ํ๋ ๋ฐ๋์ ๋๋ค. ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์์ v1์ ์๋ตํ๋ ๊ฒ์ ํผ๋์ค๋ฝ์ต๋๋ค. ๊ณ์ ๋ณ๊ฒฝ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ์ ํ๋์ง ์๋๋ฉด ์์ ์ ์ธ ๋ฒ์ ์ ์ถ์ ํ๋์ง ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๊ฒ์ v1์ด ๋ฒ์ 0.x์ ํด๋น ๋ฒ์ ์ ๋ช ํํ๊ฒ ๊ตฌ๋ณํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฒซ ๋ฒ์งธ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ์ ํํ ์ง์ ํ๋ ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ์๋ ์ ์๋ํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
@kaikuehne
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์๋ก์ v1์ ์ฌ์ฉํ๊ณ ์ถ์ง ์์ ๋ ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ(์๋ก์ด ์ฃผ์ ๋ฒ์ )์ ์์ ํ ๋ฌธ์ ๊ฐ ๋๋ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋์ ๋์๊ธฐ ๋๋ฌธ์ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
๋ด๊ฐ ์ดํดํ๋ ํ vgo
๋ ํจ์น ๋ฒ์ ์ด ์๋๋ผ๋ ์์ฒด์ ์ผ๋ก ์ข
์์ฑ์ ์
๋ฐ์ดํธํ์ง ์์ผ๋ฉฐ ๋์ ์ด๋ฅผ ์์์ ์ธ ๊ฒฐ์ ์ผ๋ก ๋จ๊ฒจ๋์ญ์์ค. ๋ฐ๋ผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ v0.4.5(ํ๊ทธ๊ฐ ์์)์ ์์กดํ๋ ๊ฒฝ์ฐ ์ด๋ก ์ ์ผ๋ก ์์ํ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. go.mod
ํ์ผ์ ๋ฒ์ ์ ์๋์ผ๋ก ๊ณ ์ ํ ์๋ ์์ต๋๋ค.
๋ด๊ฐ ์ฌ์ฉํ๋ ๋ค๋ฅธ ์ข ์์ฑ์ด ๋์ผํ ํจํค์ง์ ์์กดํ์ง๋ง ๋ฒ์ v1์ ์์กดํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ๋ ํจํค์ง ๋ชจ๋ ๋์ผํ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ธ์ต๋๋ค. ๋์ผํ ๋ฐ์ด๋๋ฆฌ๋ก ์ปดํ์ผํ ๋ ์ถฉ๋์ด ๋ฐ์ํ์ง ์์ต๋๊น?
v1์ด ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์ ์ผ๋ถ์ด๊ธฐ๋ ํ๋๋ก ์๊ตฌํ๋ ๊ฒฝ์ฐ ๋ ๋ค ์๋ก ๋ค๋ฅธ ํจํค์ง๋ก ์ทจ๊ธ๋ฉ๋๋ค.
@kaikuehne ๊ทธ๋ฌ๋ฉด ์๋ํ๋ ์ต์ ๊ณตํต ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค. (๋ด ์ดํด๋ก)
@kaikuehne ๋๋ ๋น์ ์ ์ถ๋ก ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ๋น์ ์ v0์ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก ์๋ง๋ ๋น์ ์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ ๋๋ค. ์ด๋ฏธ ์์ ์ฑ์ด ๋ณด์ฅ๋์ง ์๋ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์๋๋ฐ v1์ด ์ค๋จ๋๋ฉด ์ ๋ฌธ์ ๊ฐ ๋ ๊น์? ๋ํ v0.1->v1.0์์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ด๋ํ๋ ๋์ ์ ์คํธ๋ฆผ์์ v0.2์ ์ค๋จ์ ์ถ๊ฐ ํ ๋ค์ (๋น์ค๋จ) v1.0์ ๋ฆด๋ฆฌ์คํฉ๋๋ค. ์ด๋ ์๋งจํฑ ๋ฒ์ ์ ๋ํ ๊ธฐ๋์น ๋ด์์ ์ ๋ง๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ ํํ ๋์ผํ ์์ ์๊ณ ๋ฅผ ๋ค์ผ ๊ฒ์ ๋๋ค(์ฌ์ฉ๋ ํจํค์ง ๊ด๋ฆฌ์์ ๊ด๊ณ์์ด). ์ฆ, "์์ฑ์๊ฐ ๊ฐ์๊ธฐ API ์ค๋จ์ ์ค๋จํจ"์ด 1.0 ์ด์ ๋ฆด๋ฆฌ์ค์ ์ฌ์ฉ์ผ๋ก ์ธํด ๋ฐ์ํ์ง ์์ ๋ฌธ์ ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ ๋ง ์ดํดํ์ง ๋ชปํฉ๋๋ค.
๋ค์ ๋งํด์: v0.x๋ฅผ ์ฌ์ฉํ๋ฉด v0.(x+1)์ด ๊ฐ์ ๋ก ์ฝ๋๋ฅผ ์์ ํ ์ ์๋ค๋ ์ฌ์ค์ ๋ฐ์๋ค์ด๊ฒ ๋ฉ๋๋ค. v0.(x+1)์ ๋์ v1.0์ด๋ผ๊ณ ํ๋ฉด ์ ๋ฌธ์ ๊ฐ ๋๋์?
ํ ๋ก ํฌ์ธํธ 4: ๊ฐ์ ธ์ค๊ธฐ ํธํ์ฑ ๊ท์น์ ๋ช ์์ ์ผ๋ก ์ฑํํ๊ณ "์ ํจํค์ง๋ ์ด์ ํจํค์ง์ ํ์ ํธํ๋์ด์ผ ํจ"...
์ ๊ฒฝ์ฐ์๋ https://github.com/microcosm-cc/bluemonday ๋ณด์ ํจํค์ง๊ฐ ์๊ณ ์ต๊ทผ(์๋ ๋ง) public func๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชฉ์ ์ ์ ํฉํ์ง ์๋ค๋ ๊ฒ์ ์๊ฒ ๋ ์๋๋ฆฌ์ค๊ฐ ์์์ต๋๋ค. ๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ ์ ๊ฑฐํ๋ค.
์ด ์ ์์ ๋ฐ๋ผ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ฉด ๋ฒ์ ์ด ์ถฉ๋ํ๊ณ ์์ ํ์ง ์์/์์ ํ์ง ์์ ์ฝ๋๋ ์ ๋ ์ ๊ฑฐ๋์ง ์์ต๋๋ค.
์ด๋ฅผ ํผํ๊ธฐ ์ํด ์์ ํ ๊ธฐ์กด ์ฝ๋๊ฐ ์์ ํ์ง ์์ ๋์ ์ ์ฌ์ฉํ์ง ์๊ณ ํธํ์ฑ์ ์ ์งํ๊ธฐ ์ํด ์ ๊ฑฐํ๋ ค๋ func ๋ด์์ log.Fatal()์ ๋์ ํ ๊ฒ์ ๋๋ค.
์ด๋ค ์ค ์ด๋ ๊ฒ๋ ์ด์์ ์ด์ง ์๋ค๋ ์ ์ ๊ฐ์ํ ๋... ๊ณต๊ฐ ๊ธฐ๋ฅ์ด ๊ฐ๋ ฅํ๊ฒ ์ฌ์ฉ ์ค์ง๋์ด์ผ ํ๋ ๋ณด์ ์์ ์ฌํญ์ด ์ฒ๋ฆฌ๋ ๊ฒ์ผ๋ก ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? (๋ฐํ์ log.Fatal()๋ก ๊ฐ๋ฐ์๋ฅผ ๋๋ผ๊ฒ ํ์ง ์๋๋ค๋ฉด?)
์ด์ ๋ํ ์ปค๋ฐ์ ๋ณด๊ณ ์ถ์ ๋ถ๋ค์ ์ํด: https://github.com/microcosm-cc/bluemonday/commit/a5d7ef6b249a7c01e66856b585a359970f03502c
@Merovius ๋ฒ์ 0.x๋ฅผ ์ฌ์ฉํ ๋ ์ค๋ช ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋น์ ์ด ๋งํ๋ฏ์ด, 1.0 ์ด์ ๋ฒ์ ์ ์ฌ์ฉํ ๋ ์์กดํ ๋ณด์ฅ์ด ์์ผ๋ฉฐ ๋ฒ์ 0.x๋ semver์์ ํน๋ณํ ๊ฒฝ์ฐ์ ๋๋ค. ๋ด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด, ์์ฝ๋ ๊ท์น์ ์ค์ ๋ก ๋ฒ์ 0.x์ ์ ํ ์ ์ฉ๋์ง ์์ต๋๋ค. ๋ด ์ง๋ฌธ์ ํนํ ํจํค์ง ์ด๋ฆ์ ์ง์ ํ ๋ ์ฝ๋์์๋ ์ด๋ฌํ ๊ตฌ๋ถ์ ๋ฐ์ํ๋ ๊ฒ์ด ํ๋นํ์ง ์ฌ๋ถ์ ๋๋ค. ์๋ฅผ ๋ค์ด ํจํค์ง๊ฐ ๋ฒ์ ์์ด ํจํค์ง๋ง ๊ฐ์ ธ์จ ๊ฒฝ์ฐ ๋ถ์์ ํ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์์ ํ๋์ ์ ์ ์์ต๋๋ค. ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ์ ๋ฒ์ v1์ด ํฌํจ๋์ด ์์ผ๋ฉด ์์ ์ ์ธ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
@buro9 ์ ์์ ๋ณด์ ๊ด๋ จ API ํ์์ ๋ํ ๋ฉด์ ๋ฅผ ํฌํจํ๋ go1 ํธํ์ฑ ๋ณด์ฅ์ ๋๋ต ๋ฐ๋ฅผ ๊ฒ์ ์ ์ํฉ๋๋ค.
@kaikuehne ๊ฐ์ฌํฉ๋๋ค. ๊ฑฑ์ ์ด ๋ช ํํด์ก์ต๋๋ค.
๋ด๊ฐ ๊ฑฑ์ ํ๋ ๊ธฐ๋ฅ์ ์ํธ ์์ฉ์ด ์์ต๋๋ค(์ ํํ๊ฒ ์ดํดํ๋ค๊ณ ๊ฐ์ ).
๊ตฌ์ฒดํ๋ ๋ฒ์ (ํ๊ทธ์์ ํ์๋ ํฉ์ฑ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก ์์๊ฐ ์๋ ์์ค์ ๋ฆฌํฐ๋ด vN ๋๋ ํ ๋ฆฌ)์ ์ฌ์ฉํ๋ ๋ชจ๋ M์ด ์๊ณ M์ ์ฌ๋ฌ ์ฃผ์ ๋ฒ์ ์ ์ ์ด์ ์ผ๋ก ์์กดํ๋ ํ๋ก๊ทธ๋จ P๋ฅผ ๋น๋ํ๋ ๊ฒฝ์ฐ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ผ๋ถ ์๋๋ฆฌ์ค์์ ์ต์ ๋ฒ์ ์ ํ์ ์๋ฐํด์ผ ํฉ๋๊น?
์ฆ, P๊ฐ M์ ์ฃผ์ ๋ฒ์ 2, 3 ๋ฐ 4์ ์์กดํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. M์ ๊ฐ ์ฃผ์ ๋ฒ์ ์ ๋ํด ์ง์ ๋ ์ต์ ์ ์ฒด ๋ฒ์ ์ด ์์ต๋๋ค. M ๋ฒ์ ์ ์ ํ ๋ณ์นญ์ด ์๋ ๋์ผํ ์ ํ ์ ์๋ฅผ ํฌ๋ช ํ๊ฒ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ ์์ ์ ์ํํ ์ ์๋ค๋ ๋ช ์์ ๋ชฉ์ ์ ์ํด ์์ค๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ M์ ํ๋์ ์ฌ๋ณธ๋ง ์ฃผ ๋ฒ์ ๋น ํ๋์ ์ฌ๋ณธ ๋์ ์ธ ๊ฐ์ง ์ฃผ ๋ฒ์ ๋ชจ๋์ ํฌํจ๋ ์ ์์ต๋๋ค. ํ๋์ ์ฃผ ๋ฒ์ ์ ๋ํ ์ ์ฒด ๋ฒ์ ์ ์ ํํ๋ฉด ๋ค๋ฅธ ๋ ์ฃผ ๋ฒ์ ์ ์ ์ฒด ๋ฒ์ ์ ๋ํ ์ ํ์ด ์์ ๋๊ณ ๋ค๋ฅธ ์ฃผ ๋ฒ์ ์ค ํ๋ ๋๋ ๋ ๋ชจ๋์ ๋ํด ์ต์๊ฐ ์๋ ๋ฒ์ ์ ์ ํํ ์ ์์ต๋๋ค.
vgo๋ ์ด๊ฒ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํฉ๋๊น? ์ด๊ฒ์ด ๋๋๋ก ์ต์ํ์ ๊ฒ๋ณด๋ค ์ฝ๊ฐ ์ ์ ๊ฒ ์ธ์ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๊น? (์๋ฅผ ๋ค์ด ์๋ฃจ์ ์ด ์์ฑ๋์ง ์๊ฑฐ๋ ์๋ฒ๊ฐ ๋ฃจํํ๋๋ก ํ๋ ๋ชจ๋ ์ธํธ๋ฅผ ์ค์๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น?)
@jimmyfrasche
์ฃผ์ ๋ฒ์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ vgo๋ ์ฌ์ ํ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๊ณ ํด๋น ํ๊ทธ์ ์ผ์นํ๋ ๋ฒ์ ํด๋๋ง ๊ฐ์ ธ์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฒ์ 2, 3, 4์ ์์กดํ๊ณ ์์ต๋๋ค. vgo๋ v2.nm, v3.nm, v4.nm ํ๊ทธ๋ฅผ ์ฒดํฌ์์ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ํ๊ทธ v2.nm์์ v2 ํด๋ ๋ฑ๋ง ๊ฐ์ ธ์ต๋๋ค. ๋ฐ๋ผ์ ๊ฒฐ๊ตญ ๋ชจ๋ ๊ฒ์ด ์ฌ์ ํ ํ๊ทธ๋ฅผ ๋ฐ๋ฆ
๋๋ค.
์ด ๋ฉ์ผ๋ง ๋ฆฌ์คํธ ๊ฒ์๋ฌผ ์์ ์ง๋ฌธ์ ํ์ง๋ง ๊ตฌ์ฒด์ ์ธ ๋ต๋ณ์ ๋ณด์ง ๋ชปํ์ต๋๋ค. ์ฌ๊ธฐ์ ๋ฐ๋ณตํ๊ฒ ์ต๋๋ค.
protobufs ๋๋ c ํ์ผ๊ณผ ๊ฐ์ Go๊ฐ ์๋ ๋ฆฌ์์ค๋ ์ด๋ป๊ฒ ๋๋์? ๊ทํ์ ๊ฒ์๋ฌผ์์ ์ด๋ฏธ ๋ต๋ณ์ ํ๋ค๋ฉด ์ฃ์กํฉ๋๋ค. ํ์ง๋ง ๊ณต๊ธ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ฌ protobuf ํ์ผ์ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ๋ฐฐํฌํ๊ณ ์ค์ ํฉ๋๋ค. ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ protobuf ์ถ๋ ฅ์ ๋ํด Go ํจํค์ง๋ฅผ ์ปดํ์ผํ๋ ๋์ ๊ณต๊ธ์ ์ฒด ์ข ์์ฑ์ ๋ฐ๋ผ protobuf ํ์ผ์์ ์ Go ํจํค์ง๋ฅผ ์ปดํ์ผํ๋ ๊ฒฝ์ฐ๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค(์ฆ, ๋ค๋ฅธ protobuf ํ์ผ์์ rpc.Status ์ฐธ์กฐ). ์ค๋ช ์ด ๋๋ฌด ์กฐ๋ฐํ๋ค๋ฉด ๋ ๊ตฌ์ฒด์ ์ธ ์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
ํนํ protobuf ํ์ผ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ GOPATH ์์น์ ๋งคํํ ์ ์๋ protobuild ๋ผ๋ ํ๋ก์ ํธ๊ฐ ์์ต๋๋ค. ์ด ์ ์์ด GOPATH์ ๋ฆฌ์์ค ํด๊ฒฐ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด๋ฅผ ๋ค๋ฅธ ์ปดํ์ผ๋ฌ ๊ฐ์ ธ์ค๊ธฐ ๊ณต๊ฐ์ ๋งคํํ๋ ๋ฐฉ๋ฒ์ ์์ง ๋ชปํฉ๋๋ค.
์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ protobuf๋ก ์์ ํ๋ ๋ฐ ์์ด ํฐ ๊ณ ์ถฉ์ด์๊ณ ์ด ํ๋ก์ ํธ๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ง์ด ์ํํ์ต๋๋ค. ์ด๊ฒ์ด ์ ์๊ณผ ์์ ํ ํธํ๋์ง ์๋๋ค๋ฉด ๋ถ๋๋ฌ์ด ์ผ์ ๋๋ค.
์ ๊ฐ ๋์น ๋ถ๋ถ์ด ์๋ค๋ฉด ๋ค์ ํ ๋ฒ ์ฌ๊ณผ๋๋ฆฝ๋๋ค.
๋๋ ๊ทธ ์ ์์ ์ข์ํ๋ค. ๋๋ฌด ๋ง์ ํ๋ก์ ํธ์์ ๋ถ ๋ฒ์ ๊ฐ์ ์์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์์ฃผ ๋์ ํ๊ณ ๋งค์ฐ ํฐ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด์๋ง ์ฃผ์ ๋ฒ์ ๋ฒํ๋ฅผ ์์ฝํ๋ ๊ฒ์ด ๊ฑฑ์ ๋ฉ๋๋ค. ๋ง์ด๋ ๋ฒ์ ๋ณ๊ฒฝ์ด ์์ฃผ ๋ฐ์ํ๋ฉด SIV์ ๊ฐ์ ์ ์๋ฐํ๋ฏ๋ก ๋ค์ด์๋ชฌ๋ ์ข ์์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. import ๋ฌธ์ ๋ถ ๋ฒ์ ์ ํฌํจํ๋ฉด ๋ ๋ง์ ํ๋ก์ ํธ๊ฐ ๋นํตํ ๋ณ๊ฒฝ ๊ณ์ฝ์ ์ค์ํ๋ ๋ฐ ๋์์ด ๋ ์ง ๊ถ๊ธํฉ๋๋ค. ๋จ์ ์ ์ถ๊ฐ ๊ฐ์ ธ์ค๊ธฐ ๋ณ๋์ด๊ณ ๋ถ ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ๋ ์ด๋ ค์์ง๊ณ ๋ ๋ช ํํด์ง๋ค๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ๋ด๊ฐ ๊ฐ์ง ๋ ๋ค๋ฅธ ์ง๋ฌธ์ ์ ๊ธฐํฉ๋๋ค. vgo๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋์ 1๊ฐ ์ด์์ ํจํค์ง ๋ฒ์ ์ด ์๋์ง ํ์ธํ๋ ๊ฒ์ด (์ค๋๋ ) ์ฌ์ด๊ฐ์? ๋์ผํ ํจํค์ง์ ๋ ๊ฐ์ง ๋ฒ์ ์ ํ์ฉํ๋ ๊ฒ์ด ๋๋๋ก ์์ผ๋ก ๋์๊ฐ๋ ๋ฐ ์ค์ํ์ง๋ง, init์ ์์ํ์ง ๋ชปํ ๋ถ์์ฉ์ผ๋ก ์ธํด ์ผ์์ ์ธ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด ๋๋ถ๋ถ์ ํ๋ก์ ํธ์์ ์ด๊ฒ์ ํผํ๊ณ ์ถ์ดํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉด ์ ์ฉํ ์ ์์ผ๋ฉฐ ์ผ๋ถ ํ๋ก์ ํธ์์๋ ์ฝ๋ ์ฒดํฌ์ธ ์ค์ ์ด๋ฅผ ์ ์ฉํ๊ธฐ๋ฅผ ์ํ ์ ์์ต๋๋ค.
๋๋ฌด ๋ง์ ํ๋ก์ ํธ์์ ๋ถ ๋ฒ์ ๊ฐ์ ์์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์์ฃผ ๋์ ํ๊ณ ๋งค์ฐ ํฐ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด์๋ง ์ฃผ์ ๋ฒ์ ๋ฒํ๋ฅผ ์์ฝํ๋ ๊ฒ์ด ๊ฑฑ์ ๋ฉ๋๋ค.
๋ธ๋ ์ดํน ์ฒด์ธ์ง๋ ๋ธ๋ ์ดํน ์ฒด์ธ์ง์
๋๋ค. ์๊ฑฐ๋ ํด ์ ์์ต๋๋ค. ๋๋ ๊ทธ๋ฌํ ํจํค์ง๊ฐ ๊ฒฐ๊ตญ ์ปค๋ฎค๋ํฐ์์ ๋๋ฌด ์ ๋ขฐํ ์ ์๊ณ semver๋ฅผ ๋ฐ๋ฅด์ง ์๋๋ค๊ณ ๊ฑฐ๋ถํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. semver๋ฅผ ๋ฐ๋ฅด๊ณ 42.xx์ ๊ฐ์ ํฐ ์ฃผ์ ๋ฒํธ์ ๋น ๋ฅด๊ฒ ๋๋ฌํ๋๋ผ๋ ์ด์จ๋ ์ฌ์ฉํ๊ธฐ๊ฐ ๋งค์ฐ ๋ถํธํ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ๋ง์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ค๋ฉด ์ฃผ์ ๋ฒํธ 0์ ๊ณ์ ์ฌ์ฉํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด ํ์ฌ go get
์ฒ๋ผ ๋์ผํ ๋ฌธ์ ๋ก ๊ณ์ ์๋ํฉ๋๋ค. 0์ด ์๋ ์ฃผ์ ๋ฒ์ ์ ์ถ์ํ ํ API๋ฅผ ์คํํ๋ ค๋ฉด ์ด ์คํ์ ์๊ตฌ ์ฃผ์ 0์ด ์๋ "์คํ์ " ํจํค์ง๋ฅผ ๋ถ๋ฆฌํ๊ณ "์์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ"์ ์๋ฃํ๋ฉด ๊ธฐ๋ณธ ํจํค์ง์ ์ฃผ์๋ฅผ ์ฆ๊ฐ์ํค๊ณ ๋ง์นจ๋ด ๋ค์ ์์ ์ ์ธ API๋ฅผ ์ป์ผ์ญ์์ค.
import ๊ฒฝ๋ก์ minor๋ฅผ ํฌํจํ๋ ๊ฒ์ semver ์ด๋ ์ ์๋ฐํ๊ณ Major๋ฅผ ํฌํจํ๋ ๊ฒ ์ด์์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
๊ทธ๊ฒ์ด ์์ฑ์๊ฐ semver์ ์๋ฏธ๋ฅผ ๊ฐ์ํ ๋ ์ํ ํด์ผ ํ๋ ์ผ์ด๋ผ๋ ๊ฒ์ ์ดํดํ์ง๋ง, ๋ง์ด๋ ๋ฒ์ ๊ฐ์ ์ฌ์ํ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ด๋ฏธ ๋ฒ์ 1์ ์ง๋ ์ฌ๋์๊ฒ ์ผ๋ฐ์ ์ด๊ณ ์ ํน์ ์ธ ๊ฒฝ์ฐ์ ๋๋ค. ๋ด ์ผํ์ ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด ํจํค์ง ์์ฑ์๋ semver์ ์ ํํ ์๋ฏธ๋ฅผ ๋ฐ๋ฅด๊ณ ์ข ์ข ํ์ฌ๋ ๋ง์ผํ ๋ชฉ์ ์ผ๋ก ์ฃผ์ ๋ฒ์ ๋ฒํ๋ฅผ ์์ฝํฉ๋๋ค. ๊ทธ๋์ ๋์ ํธ์๋ ๋ฌด์์ด ์ด์์ ์ด๋๊ฐ ์๋๋ผ semver๋ผ๋ ์ง์ ๋ถํ ์ธ๊ฐ ํ์ค์ ๋ ์ ๋ค๋ฃจ๊ธฐ ์ํด ํน์ ํ ๋ณํ๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ค์ฉ์ ์ผ ์ ์๋์ง์ ๊ดํ ๊ฒ์ ๋๋ค.
semver๋ฅผ ๋ฐ๋ฅด์ง ์๋ ํจํค์ง์ ๋ํ ๋ง์ด๋ ๋ฒ์ ์ ์ ํ์ ์ผ๋ก ํฌํจํ๋ ๊ฒ์ด ๊ฐ๋ฅํ ์๋ ์์ต๋๋ค. ์ด์ฉ๋ฉด ์ ์ฒด ์ ์์ ๋ง์น ์๋ ์์ต๋๋ค. ๋ ๊น์ด ์๊ฐํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ๋ ๋์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์ ์ํ๋ ๊ฒ์ด ์๋๋ผ ์์ ์ ๋ถ ๋ฒ์ ์ ์ ํ์ ์ผ๋ก ํฌํจํ๊ฑฐ๋ ํฌํจํ๋๋ก ์๋ฌดํํ๋ ๊ฒ์ ์ฅ๋จ์ ์ ์ถ๊ฐ๋ก ํ๊ตฌํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค.
semver ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ์กด์ ์ธ๊ธฐ ์๋ ํ๋ก์ ํธ์์ semver๊ฐ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋น๋๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด go corpus(๋ฐ ๋ช ๋ฐฑํ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ฐพ๋ ๋๊ตฌ)์์ ๋ ๋์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
vgo ์ ์์ ํตํด ์ฃผ์ ๋ฒ์ ์ API ๋ณ๊ฒฝ ์ฌํญ์ ์ ์์ ์ผ๋ก ์ค๋จํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ (์์ฒด์ ์ผ๋ก) ๊ทธ๋ค์ ๋ฐฉ์งํ๊ธฐ ์ํด ์๋ฌด ๊ฒ๋ ํ์ง ์์ต๋๋ค.
vgo ์ ์ ์ ํ๋์ ์ฃผ ๋ฒ์ ์ด ๋ค๋ฅธ ์ฃผ ๋ฒ์ ์ ์ฐธ์กฐํ๋๋ก ํ์ฉํ์ฌ ์ฐ์ํ ์ฝ๋ ์ฌ์ฌ์ฉ์ ํ์ฉํฉ๋๋ค. ๊ทธ๊ฒ์ ๊ฐ์ ํ๋ ๊ฒ์ ์๋ฌด ๊ฒ๋ ํ์ง ์์ต๋๋ค.
vgo MVS ์ ์์ ํตํด ์ต์ ํจํค์ง๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ ๋ฐ์ดํธ๋ฅผ ๊ฐ์ํ์ง ์์ต๋๋ค.
vgo ์ธ๊ณ์์ ํจ์ฌ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
go list
์ ์ ์ฌํ๊ฒ ์๋ ๋๋ ์๋์ผ๋ก ์ฟผ๋ฆฌํ๊ณ ์ฟผ๋ฆฌ๋ก ํํฐ๋ง๋ ๋ฌธ์ ์ ๋ํ ์๋ฆผ์ ๋ฐ์ ์ ์์ต๋๋ค.vgo๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ ์ฝ๊ฒ ์์ ํ ์ ์์ต๋๋ค.
vgo๋ ํ๋์ ์ฃผ์ ์์น์ ๋ฐ๋ผ ์๋ํฉ๋๋ค. ๋จ์ผ ์ ๋ ฅ ์ธํธ๋ ํญ์ ๋์ผํ ๊ฒ์ ๋น๋ํด์ผ ํฉ๋๋ค. ๋ณด์ ์ ๋ฐ์ดํธ๋ฅผ ์ก๊ธฐ ์ํด ๋ฌด์์ ์ฌ๊ตฌ์ถ์ ์์กดํ๋ค๋ฉด ์ฐ๋ฆฌ๋ ์๋ชปํ๊ณ ์๋ ๊ฒ ์ ๋๋ค. ํ๋ก์ ํธ์ ์ ์ง ๊ด๋ฆฌ์๋ก์ ์ผ๋ถ Go ํ๋ก์ ํธ๋ ๋ค์ ๋น๋ํ์ง ์๊ณ ๋ช ๋ ๋์ ์คํ๋ฉ๋๋ค. ์๊ธฐ ์ ์ ํ ๋ณด์ ์ ๋ฐ์ดํธ๊ฐ ์ค์ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. vgo๋ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ๋น๋ ๋ถ๋ถ์ ์ถฉ์กฑํฉ๋๋ค.
vgo๊ฐ ํ์ฉํ๋ ๊ฒ๊ณผ vgo๊ฐ ๋ฌด์์ธ์ง๋ฅผ ํผ๋ํด์๋ ์ ๋ฉ๋๋ค.
@pbx0 ์ฌ๊ธฐ ๊ฐ ๊ทธ๋ฌํ ํ ๋ก ์ ์ ํฉํ ์ฅ์์ธ์ง ํ์คํ์ง ์์ต๋๋ค. ์๋ง๋ maillist๊ฐ ๋ ์ ํฉํ ๊ฒ์ ๋๋ค. ์ด์จ๋ ๋ฉ์ด์ ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์ํฉ๋๋ค. ๊ฐ๋์ด๋ผ๋. Semver๋ FAQ์์ ์ด ์ฌ๋ก์ ๋ํ ๋ต๋ณ์ ๋ฐ์์ต๋๋ค.
์๋งจํฑ ๋ฒ์ ์ง์ ์ฌ์์ ์๋ฐํ๋ค๋ ๊ฒ์ ๊นจ๋ซ๋ ์ฆ์ ๋ฌธ์ ๋ฅผ ์์ ํ๊ณ ๋ฌธ์ ๋ฅผ ์์ ํ๊ณ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๋ณต์ํ๋ ์ ๋ถ ๋ฒ์ ์ ๋ฆด๋ฆฌ์คํ์ญ์์ค.
ํ์ง๋ง ์ฌ๊ธฐ์๋ ๊ฐ์ ์ ์ฌ์ง๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. godoc.org์ ๋์ด๋ ๋ชจ๋ ํจํค์ง๋ฅผ ๊ฐ์ ธ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๋ฒ์ ์ ํ์ธํ๊ณ ์ ๋ฒ์ ์ด ๊ฐ์ง๋ ๊ฒฝ์ฐ ํ์ธ์ด ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ์ ๋ฒ์ ์ธ์ง ํ์ธํ๋ ์๋ํ๋ API ๊ฒ์ฌ๊ธฐ(์ด๋ฏธ ์กด์ฌํ ์๋ ์์)๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด ์ถฉ๋ถํ ์ฌ์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. semver ํ๊ทธ๋ฅผ ์ฌ์ฉํ๊ณ Major๊ฐ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ๋ฒ์ ์ API์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํธํ๋์ง ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ฐ์ง๋ ๊ฒฝ์ฐ ์์ฑ์์๊ฒ ๋ฌธ์ํ์ญ์์ค. github์์ ์๋ ์ด๊ธฐ ๋ฌธ์ ๋๋ github ๊ณ์ ์ ์ด๋ฉ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค๋ฃจ์ง๋ ์๊ฒ ์ง๋ง ์ปค๋ฎค๋ํฐ์ ๋งค์ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ ๋ ์ฃผ์ ๋ฒ์ ์ ๋ฒ์๋ฅผ ์ง์ ํ๊ธฐ ์ํด ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ตณ๊ฒ ๋ฏฟ์ผ๋ฉฐ FWIW๋ฅผ ์ง์ํ๊ณ ์ถ์์ต๋๋ค.
1๋ ์ , ์ ๋ ์ด์ ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์ ๋ฒ์ ์ ๋ฃ๋ ๊ฒ์ด ๋ณด๊ธฐ ํํ๊ณ ๋ฐ๋์งํ์ง ์์ผ๋ฉฐ ์๋ง๋ ํผํ ์ ์๋ค๊ณ ๋ฏฟ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๋ 1๋ ๋์ ๋๋ ๊ทธ๊ฒ๋ค์ด ์์คํ ์ ์ผ๋ง๋ ๋ช ๋ฃ์ฑ๊ณผ ๋จ์์ฑ์ ๊ฐ์ ธ๋ค ์ฃผ๋์ง ์ดํดํ๊ฒ ๋์์ต๋๋ค.
๊ฑฐ์ 20๋ ์ ์ ๋ ์คํํธ์ ์ VCS๊ฐ ํ์ํ๊ณ ์ฝ 10๊ฐ์ง ๋ค๋ฅธ ๊ฒ์ ์๋ํ์ต๋๋ค. ๋๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ๊ธฐ๋ฅผ ๋ ธ์ถํ๊ธฐ ๋๋ฌธ์ Perforce๋ฅผ ์ฆ์ ๋ฐฐ์ ํ์ต๋๋ค. ๋ฐ๋ผ์ v2 ๋ถ๊ธฐ๋ ๋ชจ๋ ๋์ผํ ์ฝ๋์ด์ง๋ง v2 ํด๋ ์๋์ ์์ต๋๋ค. ๋๋ ์ด ์๊ฐ์ด ์ซ์๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ 9๊ฐ์ ํจ๊ป ํ์ผ๋ฟ์ ์คํํ ํ ๋ก์ปฌ ํ์ผ ์์คํ ์ ๋ ๊ฐ์ง ๋ฒ์ ์ ๋ถ๊ธฐ๋ฅผ ๋ชจ๋ ๊ฐ๊ณ ์ถ์ดํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๊ณ Perforce๋ ์ด๋ฅผ ์ฌ์ํ๊ฒ ๋ง๋๋ ๋ฐ๋ฉด ๋๋จธ์ง๋ ๋๋ผ์ธ ์ ๋๋ก ๋ณต์กํ๊ฒ ๋ง๋ค์์ต๋๋ค. ํ์ผ ์์คํ ์ ์ฐ๋ฆฌ์ ๊ฒฉ๋ฆฌ ์์ ์ ๋๋ค. ์ฌ์ฉํฉ์๋ค.
์ ์์์์:
์ฌ์ฉ์ ์ ์ ๋๋ฉ์ธ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ๋ชจ๋์ ์ค์นํ๊ณ $GOPROXY ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ์๋ ์ฌ์ฉ๋๋ ํ๋ก์์์ Go ๋ชจ๋์ ๊ฐ์ ธ์ค๊ธฐ ์ํ URL ์คํค๋ง๋ฅผ ์ ์ํ์ญ์์ค. ํ์๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ์ ๊ฐ์ธ์ด ๋ณด์, ๊ฐ์ฉ์ฑ ๋๋ ๊ธฐํ ์ด์ ๋ก ํ๋ก์๋ฅผ ํตํด ๋ชจ๋ ๋ชจ๋ ๋ค์ด๋ก๋ ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ ๋ค๋ฅธ ๊ณณ์์ ์ธ๊ธํ์ง๋ง ์ด ์ ์์ ๋ํ ๋์ ๊ฐ์ฅ ํฐ ์ฐ๋ ค๋ ์ด๊ฒ์ด ์ค๋๋ ๋ฒค๋๋ง์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋์ธ ํญ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋์ ์๋ฒฝํ๊ฒ ์ฌํ ๊ฐ๋ฅํ ๋น๋๋ฅผ ํ๊ธฐํ๋ ๊ฒ(๋๋ ์ต์ํ ํด๊ฒฐํ์ง ์๋ ๊ฒ)์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋๋ ์ ์๋ ํ๋ก์ ์์คํ ์ด ์ด๋ฌํ ๊ฐ์ ์ ์ ์ ํ๊ฒ ๋ค๋ฃจ๊ฑฐ๋ ๋์ฒดํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
์ค๋๋ ๋ฒค๋๋ง์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์๋ Go ๋๊ตฌ ์ฒด์ธ๊ณผ Git(๋๋ ๋ค๋ฅธ ๋ฒ์ ์ ์ด ์์คํ )๋ง ํ์ํฉ๋๋ค. ๋จ์ผ ์คํจ ์ง์ ์ git ์ ์ฅ์๋ฟ์ ๋๋ค. ์ฝ๋๊ฐ ์ฒดํฌ์์๋๋ฉด ๋คํธ์ํฌ๋ฅผ ๋ค์ ๊ฑด๋๋ฆด ํ์ ์์ด ์๋ฒฝํ๊ฒ ๊ตฌ์ถ ๋ฐ ์ฌ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ด๋ ์ค์ํ ๋ณด์ ๊ณ ๋ ค ์ฌํญ์ ๋๋ค. ์ฐ๋ฆฌ ๋๋ถ๋ถ์๊ฒ ๋ฒค๋๋ง ํ๋ก์ ํธ์๋ ์ถ๊ฐ ์ธํ๋ผ๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋ก์ปฌ ์ปดํจํฐ์ ๋ฌด๋ฃ GitHub ๊ณ์ ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
vgo
์ ํ๋ก์์ ๋ํ ์์กด๋๋ ์ถฉ๋ถํ ๊ฐ์กฐ๋์ง ์์๋ค๊ณ ์๊ฐ๋๋ ์ฌ์ํ์ง ์์ ์ธํ๋ผ ์ค๋ฒํค๋๋ฅผ ๋์
ํฉ๋๋ค. ์๋ก์ด ์ธํ๋ผ๋ฅผ ํ๋ก๋น์ ๋, ๊ตฌํ, ์ ์ง ๊ด๋ฆฌ ๋ฐ ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค. ์ด๋ ์ํํธ์จ์ด ์กฐ์ง์๊ฒ๋ ํฉ๋ฆฌ์ ์ผ ์ ์์ง๋ง ๊ฐ์ธ ๋ฐ ๋ถ์ฐํ ์คํ ์์ค ํ๋ก์ ํธ์๋ ๋ถ๋ด์ด ๋ฉ๋๋ค. ๋ํ CI์ ๊ฐ์ ๊ฒ์ ํ์ฌ์ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ๋์ผํ ์ธํ๋ผ์์ ์คํ๋์ง ์๋ Travis CI์ ๊ฐ์ ํ์ฌ์ ์์์์ฑ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ก ์ธํด ํ๋ก์ ์ธํ๋ผ๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ๊ฐ ๋ ์ด๋ ค์์ง๋๋ค.
๋ค๋ฅธ ์ธ์ด์์๋ ์บ์ฑ ํ๋ก์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. Python์ ๋ด๊ฐ ๊ฐ์ฅ ๋ง์ด ๊ฒฝํํ ๊ฒ์ด๊ณ , ๋ด ๊ฒฝํ์ Python์ ์ค์ ํ๋ ์ค๋ฒํค๋ ๋๋ฌธ์ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. Go ํ๋ก์ ํธ๋ ์ด๊ฒ์ ๋ ๊ฐ๋จํ๊ฒ ๋ง๋ค ์ ์์ง๋ง ๊ธฐ๋ณธ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ๋ ์์ฃผ ์ฌ์ฉ๋๋ฉฐ ์ผ์์์ Go ๋น๋์ ๊ฐ์ฉ์ฑ์ด ํฌ๊ฒ ๊ฐ์ํฉ๋๋ค. ์ผ์ชฝ ํจ๋ NPM ์ด๋ฒคํธ์ ์ํฅ์ ์ด์ ๊ด๋ จํ์ฌ ํ๋ฅญํ ์ฌ๋ก ์ฐ๊ตฌ์ ๋๋ค.
๋ชจ๋ ๋ฐ ํ๋ก์ ์์คํ
์ ํตํด ์ฐ๋ฆฌ ์์ ์ ํ๋ก์ ํธ ์ฝ๋(์ค๋๋ ๊ณต๊ธ๊ณผ ์ ์ฌํ์ง๋ง ๋ฐ๋์ ๋์ผํ ๊ตฌํ์ ์๋)์ ํจ๊ป ์ข
์์ฑ์ ํ์ธํ ์ ์๊ณ vgo
ํ๋ก์ ๊ตฌํ์ด ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ฉด ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ์๋๋ผ๋ฉด ์ ์์์์ ํจ์ฌ ๋ ์ถฉ๋ถํ ๋ค๋ฃจ์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@joeshaw ๊ณ์ํด์ ๊ณต๊ธ์ ์ฒด ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒด ํฌํจ๋ ๋น๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ ์์์์:
ํ ๊ฐ์ง ์ ํ๋ ์ฌ์ฉ์ ์ ์ธํ๊ณ ๊ณต๊ธ์ ์ฒด ๋๋ ํ ๋ฆฌ์ ์ฌ์ฉ์ ํ์ฉํ์ง ์์ต๋๋ค. ๋น๋ ์ค์ธ ์ต์์ ๋ชจ๋์ ํ์ผ ํธ๋ฆฌ ๋งจ ์์ ์๋ ๊ณต๊ธ์ ์ฒด ๋๋ ํ ๋ฆฌ๋ ๊ณ์ํด์ ์์ฒด ํฌํจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฅ์๋ฅผ ํ์ฉํ๊ธฐ ์ํด ๋น๋์ ์ ์ฉ๋ฉ๋๋ค. (๋ค๋ฅธ ๊ณต๊ธ์ ์ฒด ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฌด์ํ๋ฉด Go๊ฐ ๋น๋ ์ ์ฒด์์ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๊ฐ ๋์ผํ ์๋ฏธ๋ฅผ ๊ฐ๋ ๋น๋๋ก ๋์๊ฐ๊ณ ์ง์ ๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๊ฐ ์๋ ํจํค์ง ์ฌ๋ณธ ํ๋๋ง ์ง์ ๋ ๋น๋์์ ์ฌ์ฉ๋๋๋ก ์ค์ ํฉ๋๋ค.)
์ค๋๋ ๋ฒค๋๋ง์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์๋ Go ๋๊ตฌ ์ฒด์ธ๊ณผ Git(๋๋ ๋ค๋ฅธ ๋ฒ์ ์ ์ด ์์คํ )๋ง ํ์ํฉ๋๋ค. ๋จ์ผ ์คํจ ์ง์ ์ git ์ ์ฅ์๋ฟ์ ๋๋ค.
์ค๋๋ ์์ ์ ๋๋ฉ์ธ์์ ํจํค์ง๋ฅผ ํธ์คํ
ํ๋ ๊ฒฝ์ฐ a) git-repository๋ฅผ ํธ์คํ
ํ๊ณ b) go-get์ด ํจํค์ง๋ฅผ ์ฐพ๋ ๋ฐ ํ์ํ <meta>
ํ๊ทธ๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์์ผ๋ก๋ a) vgo๊ฐ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐ ํ์ํ .zip
๋ฐ .json
ํ์ผ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์์ํ ํธ์คํ
์ ํ์ํ ์ฅ์ ์ง์ ๊ณผ ์ธํ๋ผ๊ฐ ๋ ์ ์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌผ๋ก ์ฌ์ ํ ๊ฐ๋ฐ์ ์ํด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํธ์คํ
ํด์ผ ํ์ง๋ง, ๊ทธ๋ ๊ฒ ํ๋ฉด ์ต์
์ ๊ฒฝ์ฐ ์ด์ ๊ณผ ๊ฐ์ ์์ค์ด ๋ ๋ฟ๋ง ์๋๋ผ ๋ฆฌํฌ์งํ ๋ฆฌ ์์ฒด๋ ์ค์ ๋ก ๊ฐ๋ฐ ์ค์ธ ์ฌ๋๋ค๋ง ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํ์ฅ์ฑ๊ณผ ์์ ์ฑ์ด ํจ์ฌ ๋จ์ด์ง๋ ํธ์คํ
์ด ํ์ํฉ๋๋ค.
๋ฐ๋ผ์ ๋ฒ ๋ํฐ ์์ ์ ๊ฒฝ์ฐ ๊ฐ์ ๋น ์ธก๋ฉด์์ ํฐ ์ฐจ์ด๊ฐ ์์ด ๋ณด์ ๋๋ค.
OTOH, ๋ฒ ๋ํฐ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฌ์ฉ ํ์ง ์๋ ๊ฒฝ์ฐ github ์์ ์คํ ์ค์ธ ๋ชจ๋ ์ธํ๋ผ๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ ์ฌ๊ณผ ๋ ์ฌ๊ณผ ๋น๊ต๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋น์ ์ด ์ ์์ ์ค๋ฅผ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์ผ๋ก ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ ๋ฐฉํดํ๋ ๊ฒ์ ์์ต๋๋ค. AIUI Microsoft ๋ฐ ๊ธฐํ ์ ์ฒด๋ ์ด๋ฏธ ์ด ์์ ์ ์์ง๋์ด๋ง ์๊ฐ๊ณผ ์๋น์ค ์ฉ๋์ ํฌ์ํ๊ธฐ๋ก ์์ํ์ต๋๋ค. ๋๋ ๋ฏธ๋์ Go ํจํค์ง๋ฅผ ํธ์คํ ํ๋ ๋ ธ๋ ฅ์ด npm ํจํค์ง, gem ๋๋ crates๋ฅผ ํธ์คํ ํ๋ ๋ ธ๋ ฅ์ ์ํด ๊ฑฐ์ ์ ํ๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ์์ํฉ๋๋ค. zip์ ํธ์คํ ํ๋ ๊ด๋ฆฌ ์๋น์ค.
vgo
์ ํ๋ก์ ์์กด๋
๊ฐ์ธ์ ์ผ๋ก ํ์ํ ์ธํ๋ผ๊ฐ ์ํํ๋ ์์ ์ ๋ํด "ํ๋ก์"๋ผ๋ ๋จ์ด๋ฅผ ์ข์ํ์ง ์์ต๋๋ค. "๊ฑฐ์ธ"์ด ๋ ์ ์ ํด ๋ณด์ ๋๋ค. ๋ฏธ๋ฌ ๋ ํ๋ก์๋ก ๊ตฌํ๋ ์ ์์ง๋ง ๊ฑฐ์ ๋ฌดํํ ํ์ฅ์ฑ๊ณผ ๊ฐ๋ ์๊ฐ์ ์ํด Cloudflare ๋ค์ ์จ๊ฒจ์ง ์ ํํ ์น ์๋ฒ์์ ์ ๊ณตํ๋ ํ์ผ ๋ฌถ์์ผ ์๋ ์์ต๋๋ค.
๋ค๋ฅธ ์ธ์ด์์๋ ์บ์ฑ ํ๋ก์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋๋ ๋ค๋ฅธ ์ธ์ด๊ฐ ์ด๊ฒ์ด ์ค์ ๋ก ๋ฌธ์ ๊ฐ ๋์ง ์๋ ์ด์ ์ ๋ํ ์๋ฒฝํ๊ฒ ํ๋ฅญํ ๋ชจ๋ธ ์ญํ ์ ํ๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค. ๊ทธ๋ค์ ํจํค์ง๋ฅผ ํธ์คํ
ํ๊ธฐ ์ํด ํจํค์ง์ ๋ํ ์ค์ ์ง์ค์ ํธ์คํ
์ ์์กดํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค vgo
๋ ์ด ๋ชจ๋ธ์ ๋งค์ฐ ์ ์ง์ํ ๋ฟ๋ง ์๋๋ผ ์ ํ ์ฌํญ์ผ๋ก ๋ง๋ญ๋๋ค(๋ฐ๋ผ์ ๋จ์ ์์ด ๋ชจ๋ ์ด์ ์ ์ป์ ์ ์์) ๋ฐ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ๊ตฌํ, ํ์ฅ ๋ฐ ์ด์ํฉ๋๋ค.
IMO, Go์ ๋ค๋ฅธ ์ธ์ด์์ ์ผ์ด๋๋ ์ผ๊ณผ ์ ํ์ ์ผ์ด๋๋ ์ผ์ ์ง์ ๋น๊ตํ๋ฉด 1:1 ๋ฑ๊ฐ๋ฌผ์ด ๋ง๋ค๋ ๊ฒ์ด ๋ถ๋ช ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ผ๋ก ๋ ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํ ๊ฒ ๊ฐ์ ์ ์ผํ ์ด์ ๋ ๊ธฐ์กด ์ธํ๋ผ๋ฅผ ๋น์ฐํ๊ฒ ์ฌ๊ธฐ๊ณ ์๋ก์ด ์ธํ๋ผ๊ฐ ์์ง ์กด์ฌํ์ง ์๋๋ค๋ ๊ฒ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ง๋ง ๊ทธ๋ด ๊ฒ์ด๋ผ๊ณ ์์ฌํ ์ถฉ๋ถํ ์ด์ ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฐ๋ผ์ ๋ฒ ๋ํฐ ์์ ์ ๊ฒฝ์ฐ ๊ฐ์ ๋น ์ธก๋ฉด์์ ํฐ ์ฐจ์ด๊ฐ ์์ด ๋ณด์ ๋๋ค.
์ฌ์ค์ด์ง๋ง _๊ด๋ํ_ ์์์ ํจํค์ง๊ฐ ๋ฒ ๋ํฐ ๋๋ฉ์ธ์ ์ฌ์ฉํ๋ฏ๋ก ์ด๊ฒ์ด ๊ฐ๋ ฅํ ๋ฐ๋ ์๊ฒฌ์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. (์ ๋ ๋ํ ํ์ ๋๋ฉ์ธ์ ๋ํ ๋ค๋ฅธ ์ค์ ์ ์ธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ฐ๋ก GitHub๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๊ฐ์ฉ์ฑ์ด _ํจ์ฌ ๋ ๋๋น ์ง๋ ๊ฒฝํฅ์ด ์๋ค๋ ๊ฒ์ ๋๋ค.)
OTOH, ๋ฒ ๋ํฐ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ github์์ ์คํ ์ค์ธ ๋ชจ๋ ์ธํ๋ผ๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ๋๋ค.
์, ์ ํํ! ์ด๊ฒ์ด ์ ์์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ธํ๋ผ์ ๋ํ ๋ชจ๋ ๋ฉ์ง ์์ ๊ณผ ๊ฐ๋ ์๊ฐ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋ฌด๋ฃ ๋๋ ํฉ๋ฆฌ์ ์ธ ๋น์ฉ์ผ๋ก ์ป์ ์ ์์ต๋๋ค. ๋ ์ค์ํ ๊ฒ์ ๊ทํ์ ์๊ฐ์ด ํฌํจ๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
GitHub๊ฐ vgo
-ํธํ ๋ฏธ๋ฌ๋ฅผ ์คํํ๊ฒ ๋๋ค๋ฉด ์๋ง๋ ์ด๊ฒ์ ๋ฌธ์ ๊ฐ ๋์ง ์์ ๊ฒ์
๋๋ค. ํ์ง๋ง ์ ๋ ๋ชจ๋ ์ฝ๋๋ฅผ ํฌํจํ๋ ๋จ์ผ Git ๊ฐ์ ธ์ค๊ธฐ(์ฌ์ฉ์์ ๊ด์ ์์ ์์์ ๋์)๋ฅผ ์ข์ํฉ๋๋ค. ํ๋ก์ ํธ๋ฅผ ๋น๋ํด์ผ ํฉ๋๋ค.
๋๋ ๋ค๋ฅธ ์ธ์ด๊ฐ ์ด๊ฒ์ด ์ค์ ๋ก ๋ฌธ์ ๊ฐ ๋์ง ์๋ ์ด์ ์ ๋ํ ์๋ฒฝํ๊ฒ ํ๋ฅญํ ๋ชจ๋ธ ์ญํ ์ ํ๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค. ๊ทธ๋ค์ ํจํค์ง๋ฅผ ํธ์คํ ํ๊ธฐ ์ํด ํจํค์ง์ ๋ํ ์ค์ ์ง์ค์ ํธ์คํ ์ ์์กดํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. vgo๋ ์ด ๋ชจ๋ธ์ ๋งค์ฐ ์ ์ง์ํ ๋ฟ๋ง ์๋๋ผ ์ ํ ์ฌํญ์ผ๋ก ๋ง๋ญ๋๋ค(๋ฐ๋ผ์ ๋จ์ ์์ด ๋ชจ๋ ์ด์ ์ ์ป์ ์ ์์). ๊ตฌํ, ํ์ฅ ๋ฐ ์๋ํ๋ค.
๋ฌธ์ ๋ ์ด๊ฒ์ด ํ๋ก์ ํธ ๊ตฌ์ถ์ ๋จ์ผ ์คํจ ์ง์ (SPOF)์ ์ถ๊ฐํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฝ๋๋ ๋ฌด์์ด๋ (๊ทธ๋ฆฌ๊ณ ์๋ง๋ GitHub) VCS์ ์์ ๊ฒ์ด๋ฏ๋ก ํ๋์ SPOF์ ๋๋ค. ๋ค๋ฅธ ์ธ์ด์์ ์ค์ ์ ์ฅ์๋ ๋ ๋ฒ์งธ SPOF์ ๋๋ค. Go์ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ ์ถ๊ฐ SPOF(github.com, golang.org, honnef.co, rsc.io ๋ฑ)์ด๋ฉฐ SPOF๋ฅผ ๋๋ฆฌ๋ฉด ์ ์ฒด ๊ฐ์ฉ์ฑ์ด ๋ฎ์์ง๋๋ค.
๋ฏธ๋ฌ๋ฅผ ์คํํ๋ฉด ๋ฌผ๋ก ๋ค์ 2๋ก ์ค์ผ ์ ์์ง๋ง ์กด์ฌํ ํ์๊ฐ ์๋ค๊ณ ์ฃผ์ฅํ๋ ์ธํ๋ผ์ ๋๋ค. dep๋ฅผ ํ๋งคํ๊ฑฐ๋ ๋ก์ปฌ ๋์คํฌ ๋ฏธ๋ฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๊ฒ์ VCS๋ก ๋ค์ ์ค์ผ ์ ์์ต๋๋ค.
์ด์จ๋ ์ด๊ฒ์ ๋
ผ์์ ์ฌ์ง๊ฐ ์์ต๋๋ค. ๋๋ ์๋ ๋ด ์ฃผ์ ๊ด์ฌ์ฌ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์ต์์ vendor
๋๋ ํ ๋ฆฌ์ ๋ํ ์ ์์ ์ผ๋ถ๋ฅผ ์ดํดํ์ง ๋ชปํ์ต๋๋ค. @kardianos ๋ฅผ ์ง์ ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ํ๋งค ์์คํ
์ด ๋ ์ข์ ์ ์์ต๋๋ค.
git grep
๋ฅผ ๋๋ฌด ์ฌ๋ํ๊ธฐ ๋๋ฌธ์ "์ต์์ vendor
"๊ฐ ์ฌ์ ํ ์ง์๋๋ ๊ตฌ์ฑ์ด ๋ ์ ์์ด ๊ธฐ์ฉ๋๋ค.
๋ฏธ๋ฌ๋ฅผ ์คํํ๋ฉด ๋ฌผ๋ก ๋ค์ 2๋ก ์ค์ผ ์ ์์ง๋ง ์กด์ฌํ ํ์๊ฐ ์๋ค๊ณ ์ฃผ์ฅํ๋ ์ธํ๋ผ์ ๋๋ค.
์ฌ๊ธฐ ์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ์์ ๋๋ค. ์ด์ฉ๋ฉด ์ฐ๋ฆฌ๋ ํ๊ฒ ์ธ๊ตฌ ํต๊ณ๊ฐ ์๋์ง๋ง Go๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ค๋ ๊ตฌ์ถํ ๋ชจ๋ ๊ฒ์ด ๋ด์ผ ๊ตฌ์ถ๋ ์ ์๋๋ก ์๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ์์ ํ๋ ๊ฒ์ฒ๋ผ ๊ธฐ์ ๋ด๋ถ์ ๋ฏธ๋ฌ ์์ด๋ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋์ง ์๋๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ฌ๊ธฐ ์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ์์ ๋๋ค. ์ด์ฉ๋ฉด ์ฐ๋ฆฌ๋ ํ๊ฒ ์ธ๊ตฌ ํต๊ณ๊ฐ ์๋์ง๋ง Go๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ค๋ ๊ตฌ์ถํ ๋ชจ๋ ๊ฒ์ด ๋ด์ผ ๊ตฌ์ถ๋ ์ ์๋๋ก ์๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ์์ ํ๋ ๊ฒ์ฒ๋ผ ๊ธฐ์ ๋ด๋ถ์ ๋ฏธ๋ฌ ์์ด๋ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋์ง ์๋๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
@jamiethermo ์ค๋ ๋ฒค๋๋ง์์ ํด๊ฒฐํ์ง ์์ต๋๊น?
ํ๋ก์๋ ๋ฏธ๋ฌ์ ๋ํ ์ง์์ ๊ด์ฐฎ๊ณ , ๊ทธ๊ฒ์ด Go ์ฑํ์ ๋์์ด ๋๋ค๋ฉด ์ ๋ ์ ์ ์ผ๋ก ์ฐฌ์ฑํฉ๋๋ค. ๋ด ๊ด์ฌ์ฌ๋ ๋ก์ปฌ ๋ ๋ฆฝ ์์ค ํธ๋ฆฌ(์ค๋๋ ๋ฒค๋๋ง์ด๋ผ๊ณ ํจ)๋ฅผ ๋์ฒดํ๋ ๋ฏธ๋ฌ์์ต๋๋ค.
@joeshaw
์ค๋๋ ๋ฒค๋๋ง์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ์์ต๋๊น?
๊ธ์, ๋๋ ๋ฌด์ง์ "๋ด ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํด์ผ ํ๋๊ฐ"์ ๋ํ ์ด๋ ์ ๋์ ์ข์ ์ ๊ณ ๋ฐฑํด์ผ ํฉ๋๋ค. "์์ฒด ํฌํจ๋ ์์ค ํธ๋ฆฌ"๋ ๋ชจ๋ ์ฝ๋์ ๊ณต๊ธ์ ์ฒด ํธ๋ฆฌ์ ๋ชจ๋ ์ฝ๋๋ฅผ ํฌํจํ๋ ๊ฑฐ๋ํ git repo๊ฐ โโ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น? ๋ค๋ฅธ ๋ชจ๋ ์ฝ๋๋ฅผ ๋ด ์ ์ฅ์์ ์ฒดํฌ์ธํ๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฌ๊ฐ ํ์ํ์ง ์์ต๋๊น?
"๋ด ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ"๊ณผ ๊ด๋ จํ์ฌ ์ด ํ์ด์ง, Go ์ฝ๋ ์์ฑ ๋ฐฉ๋ฒ ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋ํด ์ค๋ช ํ์ง๋ง ๊ณต๊ธ์ ์ฒด์ ๋ํด์๋ ์ธ๊ธํ์ง ์์ต๋๋ค.
๊ฐ ์ฃผ์ ๋ฒ์ ์ ๊ณ ์ ํ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๊ฐ ์๋ ์๋ฏธ ์ฒด๊ณ ๊ฐ์ ธ์ค๊ธฐ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฑํํฉ๋๋ค. ํนํ, ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์๋ ๋ชจ๋ ๊ฒฝ๋ก, ๋ฒ์ ๋ฒํธ ๋ฐ ๋ชจ๋ ๋ด๋ถ์ ํน์ ํจํค์ง์ ๋ํ ๊ฒฝ๋ก๊ฐ ํฌํจ๋ฉ๋๋ค. ์ฃผ ๋ฒ์ ์ด v0 ๋๋ v1 ์ด๋ฉด ๋ฒ์ ๋ฒํธ ์์๋ฅผ ์๋ตํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
my/thing/sub/pkg , my/thing/v2/sub/pkg ๋ฐ my/thing/v3/sub/pkg ๋ก ๊ฐ์ ธ์จ ํจํค์ง๋ my/thing ๋ชจ๋์ ์ฃผ์ ๋ฒ์ v1 , v2 ๋ฐ v3์์ ๊ฐ์ ธ์ต๋๋ค. ๋น๋๋ ๊ทธ๊ฒ๋ค์ ๋จ์ํ ์ธ ๊ฐ์ ๋ค๋ฅธ ํจํค์ง๋ก ์ทจ๊ธํฉ๋๋ค.
my/thing/sub/pkg๋ v0์ด ๋ ์ ์์ต๋๋ค.
๋๋ ์ฌํ ์ ๋ฐ๋๋ค. ์ด ์์ ๋ GOPATH ํธ๋ฆฌ ์ธ๋ถ์ ๋น๋๋์ด ์๋ํ์ง๋ง ํด๋น ์ํฉ์์๋ dep init
barfs์
๋๋ค. ์ ๋ ์ง๊ธ 80๊ฐ ํ๊ณผ ํจ๊ป ์ผํ๊ณ ์์ผ๋ฉฐ, ๊ฑฐ๋ํ ๋๋ฌด๊ฐ ํ๋ ์์ด๋ ์ ๋ง ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. (๋ด๊ฐ ์ด๊ฒ์ ํ์ดํํ๊ณ ์์ ๋ ๋๊ตฐ๊ฐ๊ฐ ๋
ธํธ๋ถ๊ณผ ์ฐก๊ทธ๋ฆฐ ์ผ๊ตด๋ก ๋ค๊ฐ์ "์ด๊ฑฐ ์ ๋ง ์ด์ํ ๋ฒ๊ทธ๊ฐ ์์ด...")
@joeshaw
์ธํ๋ผ์ ๋ํ ๋ชจ๋ ๋ฉ์ง ์์ ๊ณผ ๊ฐ๋ ์๊ฐ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋ฌด๋ฃ ๋๋ ํฉ๋ฆฌ์ ์ธ ๋น์ฉ์ผ๋ก ์ป์ ์ ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ ๋์๊ฒ ํํํ๋ค. "๋ฒ ๋ํฐ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ๋ ์ ์ ์ธํ๋ผ๊ฐ ํ์ํ๋ค๊ณ ์ฃผ์ฅํ๋ค๋ฉด github์ด ์คํํ๋ ๋ชจ๋ ์ธํ๋ผ๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ๋๋ค"๋ผ๊ณ ๋งํ๊ณ ์ถ์์ต๋๋ค. ์ธํ๋ผ๊ฐ ์ฌ์ ํ ์กด์ฌํ๊ณ ์ฌ์ ํ ์คํํด์ผ ํ๋ค๋ ์ ์ ์ง์ ํ๊ณ ์ถ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ผ๋ก๋ ๊ณ์ํด์ ์คํํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ทํ์ ์ฐ๋ ค๋ ๋ด๊ฐ ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ ์๋ ์๋๋ฆฌ์ค๋ผ๊ณ ์๊ฐํ๋ ๊ฒ์์ ํด๊ฒฐ๋ ๊ฒ์ ๋๋ค. ์๊ธ ์ง์ ๊ธฐ๊ด(ํ์ฌ Microsoft๋ ๊ทธ๋ ๊ฒ ํ๊ธฐ ์ํด ์ค๋น ์ค์)์ด zip ํ์ผ ํธ์คํ ์ ์ํํ๊ณ ์์ต๋๋ค.
๋จ์ผ Git ๊ฐ์ ธ์ค๊ธฐ์ ์ฐ์ํจ์ ์ข์ํ์ง๋ง ์ฌ์ฉ์ ๊ด์ ์์ ์์์ ๋์
vgo get
๋ ์์์ ๋์๊ณผ ๋์ผํ๋ฉฐ ๋ ์ ์ ์์
์ ์ํํ๋ฉฐ ๋์ผํ ํน์ฑ(HTTP ์์ฒญ)์ ๋ ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค.
๋ฌธ์ ๋ ์ด๊ฒ์ด ํ๋ก์ ํธ ๊ตฌ์ถ์ ๋จ์ผ ์คํจ ์ง์ (SPOF)์ ์ถ๊ฐํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ด ๋ง์ง๋ง ๋๊ธ์ด ์๋ชป๋ ๊ณณ์ ์ด๋์ ๋๊น? ๋ด๊ฐ ๋ณด๊ธฐ์ ์คํจ ์ง์ ์ ์๊ฐ ์ ๋ค๋ฉด ๋ ๊ฐ๋จํ๊ณ ํ์ฅํ๊ธฐ ์ฝ๊ณ ์คํ ๋น์ฉ์ด ์ ๋ ดํฉ๋๋ค.
๋ค๋ฅธ ์ธ์ด์์ ์ค์ ์ ์ฅ์๋ ๋ ๋ฒ์งธ SPOF์ ๋๋ค. Go์ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ ์ถ๊ฐ SPOF(github.com, golang.org, honnef.co, rsc.io ๋ฑ)์ด๋ฉฐ SPOF๋ฅผ ๋๋ฆฌ๋ฉด ์ ์ฒด ๊ฐ์ฉ์ฑ์ด ๋ฎ์์ง๋๋ค.
๋๋ ์ด๊ฒ์ด ์ง๋์น๊ฒ ๋จ์ํ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค์ด๋๋ ๋ฏธ๋ฌ์์ ์ฝ๋๋ฅผ ํธ์คํ ํ๋ ๊ฒฝ์ฐ ๊ณ์ ๊ฐ๋ฐํ ์ ์๊ณ (github๊ฐ ์ฌ์ ํ ์๋ ์ค์) ์ฌ์ฉ์๋ ์ฌ์ ํ ์ค์นํ ์ ์์ต๋๋ค(๋ค๋ฅธ ๋ฏธ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ). ์ข ์์ฑ ์ค ํ๋๊ฐ ๋ค์ด๋๋ ํธ์คํธ๋ ์ข ์์ฑ์ ๋ฏธ๋ฌ๋งํ๋ฏ๋ก ์ค์ํ์ง ์์ต๋๋ค. "์ค์ ์ง์ค์" ์ปค๋ฎค๋ํฐ ์ด์ ๋ฏธ๋ฌ๋ฅผ ์ ๋ขฐํ ์ ์๋ค๋ฉด ์ง์ ์ด์ํ๊ฑฐ๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋น์ฉ์ ์ง๋ถํ์ฌ ์ํํ ์ ์์ต๋๋ค. ์ค์ ์ง์ค์ ๋ฆฌํฌ์งํ ๋ฆฌ.
๋น์ ์ด ์ธ๊ธํ ๊ฒ ์ค ์ด๋ ๊ฒ๋ ์ค์ ๋ก SPOF๊ฐ ์๋๋๋ค. ์ฌ์ ํ ์ต์ํ ์ฑ๋ฅ์ด ์ ํ๋ ์์ ์ ์ป์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฒ๋ค๊ฐ ์ค์ ๋ฏธ๋ฌ๋ ์๋ํ๊ธฐ๊ฐ ๋น๊ต์ ๊ฐ๋จํ๊ณ (๊ทธ๋ฅ ์ํ๊ฐ ์๋ HTTP ์๋ฒ์ด๊ธฐ ๋๋ฌธ์) ์์ ์ฑ๊ณผ ๊ฐ์ฉ์ฑ์ด ์๋ฏธ ์๊ฒ ๊ฐ์ํ ๊ฒ์ด๋ผ๋ ํ์ ์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ FTR, ํ์ฌ git-hosting ์ SPOF์ ๋๋ค. git-host๊ฐ ๋ค์ด๋๋ฉด ์ฌ์ฉ์๊ฐ ์ค์นํ ์ ์๊ณ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
๋ฏธ๋ฌ๋ฅผ ์คํํ๋ฉด ๋ฌผ๋ก ๋ค์ 2๋ก ์ค์ผ ์ ์์ง๋ง ์กด์ฌํ ํ์๊ฐ ์๋ค๊ณ ์ฃผ์ฅํ๋ ์ธํ๋ผ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ (์๋ชป ํํ๋) ์์ ์ ์ด๋ฏธ ๊ทธ๋ ๊ฒ ํ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค :) ๋น์ ์ ๋จ์ํ a) ๋ฐ๋ก ์ง๊ธ ๋ฐ์ํ๋ค๋ ๊ฒ์ ๋ฌด์ํ๊ณ b) ๋ฏธ๋์๋ ์ผ์ด๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค :)
๋ค๋ฅธ ๊ด์ ์ ์ ๊ณตํ๋ ค๋ฉด:
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ vgo์ ๋ํด ํฅ๋ถํ๊ณ ๊ณง ๋ฐฐํฌ๋๊ธฐ๋ฅผ ํฌ๋งํฉ๋๋ค(๋ช ๋ ์ ์ ํ์ํ์ต๋๋ค).
์ฆ, vgo์ ๊ฐ์ ์ํฌํ๋ก๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด๋ ค์์ด ๋ํ๋ฉ๋๋ค.
vgo ์ ์์ makefile์ ๋ถํ์ํ๊ฒ ๋ง๋ ๊ฒ์ ์ถํํฉ๋๋ค. ์ด๊ฒ์ ์ฌ์ค์ด ์๋๋๋ค.
์ด๊ฒ์ ํ์ฌ์ "๋ชจ๋ ๊ฒ์ด GOPATH์ ์์ด์ผ ํจ" ๊ท์น์ ์ํด ์ ํ๋ฉ๋๋ค.
๋ง์ ํ๋ก์ ํธ์์ "๋ชจ๋ Go ๋๋ ํฐ๋ฆฌ๋ ๋ณ๋์ ํจํค์ง" ๊ท์น์ ์ ์ฉํ์ฌ ๋ณ๋์ ํ์ ๋๋ ํฐ๋ฆฌ์ ํธํ๋์ง ์๊ฑฐ๋ ์์ ํ ์์๋ ์ฝ๋๊ฐ ์๋ ํ๋ก์ ํธ๋ฅผ ๊ฒ์ํฉ๋๋ค.
ํ๋ก์ ํธ ๊ฐ ์ ํ์ด ๊ฑฐ์ ์๋ ๋จ์ผ GOPATH ํธ๋ฆฌ์์ ์ ์ฒด Go ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ ธ์ถํ๋ ํ์ฌ ๊ดํ์ ์ํํธ์จ์ด ์์ง๋์ด๋ง POW์์ ์ ํดํ ๋ถ์์ฉ์ ์์ฑํ์ต๋๋ค.
Testfing/fixtures, example ๋ฐ testdata๋ ์์ฒด ์ข ์์ฑ ๋ฐ ์ข ์์ฑ ๋ฒ์ ์๊ตฌ ์ฌํญ์ด ์๋ ์์ ํ ๋ค๋ฅธ ์ ์บ์ ๋๋ค.
๋๋ ์๋ง๋ ๋ ๋ง์ ๊ฒ์ ์์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ๋ค์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก:
ํ๋ก์ ์๋ฒ:
์ฌ์ด ๋๋ฒ๊น ์ ์ํด $GOPROXY๋ ๋ก์ปฌ ํธ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํค๋ file:/// URL์ผ ์๋ ์์ต๋๋ค.
zip ํ์์ ํ์ฌ ๋ชจ๋์ด ํฌํจ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํค๋ https:/// URL์ file:///๊ณผ ํจ๊ป ์๋ํ๋๋ก ํ์ญ์์ค(๋ค๋ฅธ ๋ชจ๋ ํญ๋ชฉ ์ ์ธ).
์ด๋ ์ํฐํฐ๊ฐ ๋์ผํ ํ์ฌ ํ๋ก์ ํธ ๋ชฉ๋ก์ ํ์ ์งํฉ์ ์์กดํ๋ ์ฌ๋ฌ ๊ฐ๋ฐ ํ์ ์์ ์ ์กฐ์ ํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋๋ค. "์ข์" ํ์ฌ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ฒํ ํ๊ณ ๋ฐฐํฌํ ์ฑ ์์ด ์๋ QA/๋ฒ๋ฌด/๋ณด์ ๋ด๋น์๋ฅผ ๋์ญ์์ค. ๊ณตํต ๋๋ ํ ๋ฆฌ์ ์๊ณ ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์ด ์ด ๊ณตํต ๋๋ ํ ๋ฆฌ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋์ ๋ฐ๋ผ ์์ ์ ์ํํ๋๋ก ํฉ๋๋ค.
๊ทธ๋ ๊ฒ ํ๋ฉด ๋ค๋ฅธ ์ฌ๋์ ์์ ๊ณผ ํธํ๋์ง ์๋ ๋ฒ์ ์์ ์์ ์ ์์ํ๋ ์ฌ๋์ด ์๊ณ ๋ค๋ฅธ ํ์์ ์ด๋ฏธ ์๋ณํ ๋ฒ๊ทธ๊ฐ ์๊ฑฐ๋ ์ํํ ๋ฒ์ ์ ๋จธ๋ฌด๋ฅด๋ ์ฌ๋์ด ์์ผ๋ฉฐ ๊ฐ๋ฐ์ ์คํ ์ด์ ์ด ๋์ผํ ์ฌ๋ณธ์ ๋ค์ด๋ก๋๋ฅผ ๊ณ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ง ์๋ค๋ ๊ฒ์ ํ์ ํ ์ ์์ต๋๋ค. ์ด๋ฏธ ๋ก์ปฌ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ํํธ์จ์ด
@Merovius ๋๋ ๋์ํ์ง ์์ง๋ง, ์ฐ๋ฆฌ๊ฐ ์ฃผ์ ์์ ๋ฒ์ด๋๊ณ ์์ผ๋ฉฐ ๋ฌธ์ ํ ๋ก ์ ๋ฐฉํดํ๊ณ ์ถ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๋งค์ฒด์์ ํ์ ์กฐ์น๋ฅผ ์ทจํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. (๋ด ์ด๋ฉ์ผ์ ๋ด github ํ๋กํ์ ์๊ณ ๋๋ Gophers slack์ joeshaw์ ๋๋ค.)
https://github.com/golang/go/issues/24301#issuecomment -374882685, @tpng :
์์ฌ ๋ฒ์ (v0.0.0-yyyymmddhhmmss-commit)์ ํ์์คํฌํ์ ์ด๋ค ์๊ฐ๋๊ฐ ์ฌ์ฉ๋ฉ๋๊น?
ํธ์ง์์ ์ธ๊ธํ๋ฏ์ด UTC. ๊ทธ๋ฌ๋ ์ ๋ ์ ๋ ฅํ ํ์๊ฐ ์๋ค๋ ์ ์ ์ ์ํ์ญ์์ค. git ์ปค๋ฐ ํด์(์ ๋์ฌ)๋ฅผ ์ ๋ ฅํ๋ฉด vgo๊ฐ ์ฌ๋ฐ๋ฅธ ์์ฌ ๋ฒ์ ์ ๊ณ์ฐํ๊ณ ๋์ฒดํฉ๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -374907338, @AlexRouSg :
C ์์กด์ฑ์ ๋ค๋ฃฐ ๊ฒ์ธ๊ฐ?
https://github.com/golang/go/issues/24301#issuecomment -376606788, @stevvooe :
protobufs ๋๋ c ํ์ผ๊ณผ ๊ฐ์ Go๊ฐ ์๋ ๋ฆฌ์์ค๋ ์ด๋ป๊ฒ ๋ฉ๋๊น?
https://github.com/golang/go/issues/24301#issuecomment -377186949, @nim-nim:
vgo ์ ์์ makefile์ ๋ถํ์ํ๊ฒ ๋ง๋ ๊ฒ์ ์ถํํฉ๋๋ค. ์ด๊ฒ์ ์ฌ์ค์ด ์๋๋๋ค. [์์ฑ๋ ์ฝ๋์ ๋ํ ๋ ผ์.]
Non-Go ๊ฐ๋ฐ์ ๊ณ์ํด์ go
๋ช
๋ น์ ๋ชฉํ๊ฐ ์๋๋ฏ๋ก C ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ ๋ฑ์ ์ง์ํ์ง ์์ผ๋ฉฐ ํ๋กํ ์ฝ ๋ฒํผ์ ๋ํ ๋ช
์์ ์ธ ์ง์๋ ์์ ๊ฒ์
๋๋ค.
๊ทธ๋ ๊ธด ํ์ง๋ง Go์์ ํ๋กํ ์ฝ ๋ฒํผ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋๋ฌด ์ด๋ ต๋ค๋ ๊ฒ์ ํ์คํ ์ดํดํ๊ณ ์์ผ๋ฉฐ ๋ณ๋๋ก ํด๊ฒฐ๋์์ผ๋ฉด ํฉ๋๋ค.
๋ณด๋ค ์ผ๋ฐ์ ์ผ๋ก ์์ฑ๋ ์ฝ๋์ ๊ฒฝ์ฐ ์ค์ ์ธ์ด ๊ฐ ๋น๋ ์์คํ ์ด ๋ต์ ๋๋ค. ํนํ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ๋ฐ๋ฅธ ์์ฑ๊ธฐ๋ฅผ ์ค์นํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์์ฑ์๊ฐ ์์ฑ๊ธฐ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -375248753, @mrkanister :
๊ธฐ๋ณธ ๋ถ๊ธฐ๋ฅผ ๋ง์คํฐ์์ v2๋ก ๋ณ๊ฒฝํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ์ ์ฃผ ๋ฒ์ ์ ๋ฆด๋ฆฌ์คํ ๋๋ง๋ค ์ ๋ฐ์ดํธํด์ผ ํ๋ ์์ ์ด ์ฌ์ ํ ๋จ์ ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ๋ง์คํฐ์ v1 ๋ธ๋์น๊ฐ ์์ผ๋ฉด ์ข๊ฒ ์ง๋ง ์ด๊ฒ์ด ์ ์์์ ์ ํํ ๋ง๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@AlexRouSg ๋ฐ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ง์ ํ๋ฏ์ด ์ด๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๋๋ ๋จ์ง ๊ทธ๋ค์ ๋๋ต์ ํ์ธํ๊ณ ์ถ์์ ๋ฟ์ ๋๋ค. FAQ์๋ ์ถ๊ฐํ๊ฒ ์ต๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -375989173, @aarondl :
์ด๊ฒ์ด ์ง๊ธ ์๋ํ์ง๋ง ์๋ํ ๊ฒ์ ๋๊น?
ํ์คํ ๋ง์์.
@jamiethermo , Perforce ๋ฐ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ์ ๋ถ๊ธฐ์ ๋ํ ์๊ฒฌ์ ๋ณด๋ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ ๊ธฐ๋ฅ์ ๋ํด ์์ด๋ฒ๋ ธ์ง๋ง ์๋ง๋ ๊ทธ๊ฒ์ด vgo์์ ํ์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค๋ ๊ฒ์ ํ์ ์ํจ ์ด์ ์ผ ๊ฒ์ ๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -376925845์์ ์์ํ์ฌ ๋ฒค๋๋ง๊ณผ ํ๋ก์์ ๋ํ ์ข์ ํ ๋ก ์ด ์์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ถ๋ช ํ ๋ ๊ฐ์ง ๋ณ๊ฐ์ ์ฐ๋ ค ์ฌํญ์ด ์์ต๋๋ค.
์คํ ์์ค ๊ฐ๋ฐ์๋ ์ธํ๋ผ์ ์์กดํ์ง ์์ผ๋ ค๋ ๊ฒฝํฅ์ด ์์ผ๋ฏ๋ก @joeshaw ๊ฐ ์ด ๊ฒ์ฒ๋ผ ๋ฒค๋๋ง์ ์ํฉ๋๋ค. ํ์ธ์ ์ํด ์ ํ๋ ํ์์ผ๋ก ๊ณ์ ์๋ํ ๊ฒ์ ๋๋ค(go ๋ช ๋ น์ ์คํํ๋ ์ ์ฒด ๋์ ๋ชจ๋์ ์ต์์ ์์ค์ ์๋ ๊ณต๊ธ์ ์ฒด ๋๋ ํ ๋ฆฌ๋ง).
์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ์๋ ์ธํ๋ผ์ ์์กดํ๋ ๋ฐ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ ๋ ๋ค๋ฅธ ๋น์ฉ์ผ ๋ฟ์ ๋๋ค. ํนํ ๋ชจ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋ชจ๋ ๊ณต๊ธ์ ์ฒด ์ฝ๋๋ฅผ ๋ณต์ ํ์ง ์๊ณ ๋ชจ๋ ๊ฒ์ ๋๊ธฐํ ์ํ๋ก ์ ์งํ๋ ๋ฐ ์๊ฐ์ ์๋นํด์ผ ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ๋ ํฐ ๋น์ฉ ์ ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๋ณธ์ง์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ ๋ชจ๋ ํ์ฌ๋ @jamiethermo ๊ฐ ์์ฒญํ ๋๋ก ๋ฒค๋๋ง์ด ์๋ ํ๋ก์/๋ฏธ๋ฌ๋ฅผ ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ์๋ํ๋์ง ํ์ธํฉ๋๋ค.
๋ํ ๋ชจ๋ ์คํ ์์ค ๊ฐ๋ฐ์๊ฐ ๋ฒค๋๊ฐ ํ์ํ๋ค๊ณ ๋๋ผ์ง ์๋๋ก ๊ฐ๋ฐ์๊ฐ ์ ๋ขฐํ๊ณ ์์งํ ์ ์๋ ๊ณต์ ๋ฏธ๋ฌ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ๊ณ ์ถ์ต๋๋ค. ํ์ง๋ง ๊ทธ๊ฑด ๋์ค์. ์ฒซ ๋ฒ์งธ vgo๋ go๊ฐ ๋์ด์ผ ํฉ๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -377220411, @nim-nim:
zip ํ์์ ํ์ฌ ๋ชจ๋์ด ํฌํจ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํค๋ https:/// URL์ file:///๊ณผ ํจ๊ป ์๋ํ๋๋ก ํ์ญ์์ค(๋ค๋ฅธ ๋ชจ๋ ํญ๋ชฉ ์ ์ธ).
๋๋ "๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์ ์ธ"๋ผ๊ณ ๋งํจ์ผ๋ก์จ ๋น์ ์ด ๋ฌด์์ ์๊ตฌํ๋์ง ์ ํํ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. $GOPROXY๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ vgo๋ ํด๋น ํ๋ก์์ ์์ฒญํฉ๋๋ค. ๊ฒฐ์ฝ ๋ค๋ฅธ ๊ณณ์ผ๋ก ๋จ์ด์ง์ง ์์ต๋๋ค. ํด๋น ํ๋ก์๋ ๋๋ถ๋ถ zip ํ์์ ํ์ฌ ๋ชจ๋์ธ ์ ์ ํ์ผ ํธ๋ฆฌ์์ ์ ๊ณตํ ์ ์์ต๋๋ค. ํ์ผ ํธ๋ฆฌ๋ ํ์ ๋ฐ ์กฐํ๋ฅผ ์ํด ๋ค๋ฅธ ๋ฉํ๋ฐ์ดํฐ ํ์ผ๋ ํฌํจํด์ผ ํฉ๋๋ค. HTTP๋ ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก๊ณผ ๊ฐ์ ์์ ์ ์ํํ๋ ํ์ค ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ถ๊ฐ ํ์ผ์ ํผํ ์ ์์ต๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -377186949, @nim-nim:
์, ๋๊ธ์ด ๊น๋๋ค. ๋๋ ๋น์ ์ด ์ด ๋๋ถ๋ถ์ ๋ด์ฉ์ ๋์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทํ์ ๊ฒ์๋ฌผ์์ ๋ง์ง๋ง ๊ธ๋จธ๋ฆฌ ๊ธฐํธ์ ์๋ตํ๊ณ ์ถ์ต๋๋ค.
- ๊ณ ํ์ง ์ฌ๊ตฌ์ถ์ ์๋ฒฝํ ํฝ์ ์น์ฌ์ดํธ์ ์ ์ฌํฉ๋๋ค. ๊ทธ๊ฒ๋ค์ ๋ถ๋ช ํ ์ข์ ์์ด๋์ด์ฒ๋ผ ๋ณด์ด๋ฉฐ ์๋ ์์ฑ์์ ์์กด์ฌ์ ๋ณด๋ตํ์ง๋ง ์งํํ ์ ์๊ณ ์ง์ญ(์๋ณธ์ด ์๋) ์ปจํ ์คํธ์ ์ ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ์ค์ ๋ก ์ฌ์ฉํ๋ ค๊ณ ํ๋ ์ฌ๋์๊ฒ๋ PITA์ ๋๋ค.
์ ๊ธ ํ์ผ์ ํฝ์ ๋จ์์ ์๋ฒฝํ ์น์ฌ์ดํธ์ ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์ ๋์กฐ์ ์ผ๋ก ์ถฉ์ค๋๊ฐ ๋์ ๋น๋๋ ์ปจํ ์คํธ๊ฐ ๋ณ๊ฒฝ๋จ์ ๋ฐ๋ผ ์ ์ง์ ์ผ๋ก ์ ํ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋๋ B 1.2 ๋ฐ C 1.4๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ B 1.3์ด ํ์ํ ๋ ํฐ ๋น๋์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ B 1.3๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ง๋ง ์ ๊ทธ๋ ์ด๋์ ๋ํ ๊ตฌ์ฒด์ ์ธ ์๊ตฌ ์ฌํญ์ด ์๋ ํ C 1.4(์ ๋ฒ์ ์ด ์กด์ฌํ๋๋ผ๋)๋ฅผ ์ ์งํฉ๋๋ค. ๋ฐ๋ผ์ ๋งค์ฐ ์ถฉ์ค๋๊ฐ ๋์ ๋น๋๋ ๋ ์ธ๊ณ์ ์ฅ์ ์ ๋๋ค. ๊ฐ๋ฅํ ํ ์๋ณธ์ ์ถฉ์คํ์ง๋ง ๋ถ๊ฐ๋ฅํ ๋ ์๋ฒฝํ ํฝ์ ์ ๊ณ ์งํ์ง๋ ์์ต๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -375415904, @flibustenet :
@rsc ๋ก๋๋งต๊ณผ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ํด์ผ ํ ์ผ์ ๋ํด ์ข ๋ ์ ํํ ์๋ ค์ฃผ์ จ์ผ๋ฉด ํฉ๋๋ค.
Go ์ ์ฑ ์ ๋ฐ๋ฅด๊ณ 3๊ฐ์(์ง๊ธ 2)์ vgo ๊ธฐ๋ฅ์ ์ค์งํฉ๋๊น?
Vgo๋ ํ๋กํ ํ์ ์ด๋ฉฐ ๋จ๋ ์ผ๋ก ์ถ์๋์ง ์์ต๋๋ค. ๋๊ฒฐ ๋ฑ์ ๋์์ด ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ ์์ ์์ด๋์ด์ ๋๋ถ๋ถ์ ์ฝ๋๋ฅผ ๊ธฐ๋ณธ cmd/go๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋๋ค. ๋ฆด๋ฆฌ์ค์ ์ผ๋ถ๋ก cmd/go๋ ํ์คํ ๋๊ฒฐ๋ ์ ์์ต๋๋ค. ์ตํธ์ธ์ด๊ณ vgo ๊ด๋ จ ์ฝ๋๊ฐ go ๋ช ๋ น์ ๋๋จธ์ง ์์ ๊ณผ ์๋นํ ์ ๋ถ๋ฆฌ๋์ด ์๊ธฐ ๋๋ฌธ์ vgo ๊ด๋ จ ๋ถ๋ถ์ ๋ํ ์์ ์ ์ํ์ด ์๋นํ ๋ฎ๊ณ ๋ช ์ฃผ ๋์ ๊ทธ ์ค ์ผ๋ถ๊ฐ ๊ณ์๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๋๊ฒฐ์. ์ง๊ธ์ ์ ์ ๋ ผ์์ ์กฐ์ ์ ์ง์คํ๊ณ ์์ต๋๋ค. ์ ์์๊ฐ ์ฌ๊ฐํ ๋ฌธ์ ์์ด ์ํธํ ํํ๋ก ๋ณด์ด๋ฉด ์ฝ๋๋ฅผ cmd/go๋ก ์ด๋ํฉ๋๋ค.
์ด์ ๋ชจ๋ libs ๊ด๋ฆฌ์์๊ฒ go.mod ํ์ผ์ ์ถ๊ฐํ๋๋ก ์์ฒญํ๋ ์๋ก์์ ์งํ๋ด์ ๋ฐ๋ผ๊ฐ์ผ ํฉ๋๊น, ์๋๋ฉด ์ ์์ด ๊ณต์์ ์ผ๋ก ์๋ฝ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๊น(์ด๋ฆ๊ณผ ๊ตฌ๋ฌธ์ด ๋ณ๊ฒฝ๋์ง ์๋๋ก)?
go.mod ๊ตฌ๋ฌธ์ด ๋ณ๊ฒฝ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค(์ด ๋ฌธ์ ๋ณด๊ธฐ). ๊ทธ๋ฌ๋ ์ ์์์์ ์ธ๊ธํ๋ฏ์ด ์ฐ๋ฆฌ๋ ๊ณ์ ์ค๋๋ ๊ตฌ๋ฌธ์ ๊ณ์ ์ฌ์ฉํ ๊ฒ์ด๊ณ vgo๋ ๊ธฐ์กด ํ์ผ์ ์ ๋ฐ์ดํธํ ๊ฒ์ด๋ฏ๋ก ํฐ ๋ฌธ์ ๋ ์๋๋๋ค. ์ฆ, ์ฝ๋๊ฐ cmd/go์ ๊ฐ๋ฐ ์ฌ๋ณธ์ ๋ค์ด๊ฐ ๋๊น์ง ์ฐพ์ ์ ์๋ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ PR์ ๋ณด๋ด๋ ค๊ณ ํ์ง ์์ ๊ฒ์ ๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -376640804, @pbx0 :
(์ค๋) vgo๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋์ ํจํค์ง ๋ฒ์ ์ด 1๊ฐ ์ด์์ธ์ง ํ์ธํ๋ ๊ฒ์ด ์ฝ์ต๋๊น?
์ค๋ ํ ์ ์๋ ๊ฐ์ฅ ์ฌ์ด ์ผ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋น๋ํ ๋ค์ goversion -m์ ์คํํ๋ ๊ฒ์ ๋๋ค(https://research.swtch.com/vgo-repro ์ฐธ์กฐ). ๋ณด๋ค ์ผ๋ฐ์ ์ธ ๋ชจ๋ ์ธ์ go ๋ชฉ๋ก์ด ์์ผ๋ฉด ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋จผ์ ๋น๋ํ์ง ์๊ณ ๋ ๋์ผํ ์์ ์ ์ํํ ์ ์์ด์ผ ํฉ๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -376236546, @buro9 :
[microcosm-cc/ bluemonday@a5d7ef6๊ณผ ๊ฐ์ด ์ด์ ๋ฒ์ ๊ณผ ํธํ๋์ง ์๋ ๋ณด์ ๋ณ๊ฒฝ์ ํ ์ ์์ต๋๊น? ]
@Merovius ๊ฐ ๋งํ๋ฏ์ด Go 1 ํธํ์ฑ ์ง์นจ ์ ์ฑํํ๋ฉด ์ฃผ์ ๋ฒ์ ์ ์ถฉ๋์ํค์ง ์๊ณ ๋ณด์ ๋ณ๊ฒฝ์ด ๋ช ์์ ์ผ๋ก ํ์ฉ๋ฉ๋๋ค.
์ฆ, ๋ณด์์ ์ํด ๋ญ๊ฐ๋ฅผ ํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ์ฌ์ ํ ์ต์ํ์ ์ค๋จ์ ์ํด ๋ ธ๋ ฅํด์ผ ํฉ๋๋ค. ๋น์ ์ด ๋งํฌํ ์ปค๋ฐ์ ํ์ ์ด์์ผ๋ก ํ๊ดด์ ์ด๋ฉฐ, ๋ฏธ๋์ ์ํฉ์์๋ "๋ณด์ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ๋ฉด์๋ ๊ฐ๋ฅํ ํ ์ ์ ์์ ํด๋ผ์ด์ธํธ๋ฅผ ์ค๋จ์ํค๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?"๋ผ๋ ๊ด์ ์์ ์ด๋ฌํ ๋ณ๊ฒฝ์ ์ ๊ทผํ๋ ๊ฒ์ด ์ข์ต๋๋ค. "
์๋ฅผ ๋ค์ด, ๊ธฐ๋ฅ์ ์ ๊ฑฐํ์ง ๋ง์ญ์์ค. ๋์ , ๋ถ์ ์ ํ๊ฒ ํธ์ถ๋ ๊ฒฝ์ฐ์๋ง ํจ์๋ฅผ ํจ๋ ๋๋ log.Fatal๋ก ๋ง๋ญ๋๋ค.
์ด ๊ฒฝ์ฐ AllowDocType์ ์ญ์ ํ๋ ๋์ ๋ณด์ ์ค์ ์ด๋ฏ๋ก ๊ทธ๋๋ก ์ ์งํ๊ณ AllowDocType(false)์ ๊ณ์ ์๋ฝํ์ต๋๋ค. ๋๊ตฐ๊ฐ -allowdoctype ํ๋๊ทธ๊ฐ ์๋ ๋ช ๋ น์ค ํ๋ก๊ทธ๋จ๊ณผ ๊ฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ๋ํผ๋ฅผ ์์ฑํ๋ค๋ฉด ์ต์ํ ํด๋น ํ๋๊ทธ๊ฐ ์๋ ํ๋ก๊ทธ๋จ ์ฌ์ฉ์ ๊ณ์ ์๋ํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ์ด์์ผ๋ก doctype์ด ์์ ํ ํ์ธ๋์ง ์์ ๊ฒ์ด ๊ฑฑ์ ์ธ ๊ฒ ๊ฐ์ง๋ง ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์ ์ ์งํ๊ธฐ ์ํด ์ต์ํ์ ํ์ธ์ ํ๊ณ ๋๋จธ์ง๋ ๋ณด์์ ์ผ๋ก ๊ฑฐ๋ถํ์ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ์ต์ํ &#<>\ ๋ฌธ์๊ฐ ์๋ ๋ฐ์ดํ ๋ถ์ ๋ฌธ์์ด๋ก ..> ๋ฅผ ๊ณ์ ํ์ฉํ๊ณ ๋ ํ์ฉํ๋ ค๊ณ ํ์ ๊ฒ์ ๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -375090551, @TocarIP :
[์ ์ํ๊ฒ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ ๊ฒ์ ๋ํ ์ฐ๋ ค.]
์ต์ํ์ ๋ฒ์ ์ ํ์์๋ ์ ์ฒด ๋น๋๊ฐ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ๋์ ์ข ์์ฑ์ด _๋ถ๊ฐ๋ฅ_ํ๊ธฐ ๋๋ฌธ์ ๊ทธ ๋ฐ๋๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ๋ก๊ทธ๋จ์ด ๋ ์ต์ ์ผ ์ ์์ต๋๋ค.
@Merovius ๊ฐ https://github.com/golang/go/issues/24301#issuecomment -375992900์ ์ด ๋ด์ฉ์ด ์ ์๊ฒ ์ ํํ ๋ง์ต๋๋ค. ์์ ์ ์ ๋ฐ์ดํธ๋ฅผ ์์ฒญํ ๋๋ง ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ผ๋ฏ๋ก ์์ํ๊ณ ํ ์คํธ, ๋๋ฒ๊ทธ ๋ฑ์ ์ํํ ์ค๋น๊ฐ ๋ ๊ฒฝ์ฐ์๋ง ๋ฌธ์ ๊ฐ (์ ์ฌ์ ์ผ๋ก) ์ค๋จ๋๋ค๋ ๊ฒ์ ๋๋ค. ๋น์ ์ ๊ทธ๊ฒ๋ค์ ์๊ตฌํด์ผ ํ์ง๋ง ์ ๊ธ ํ์ผ์ด ์๋ ๋ค๋ฅธ ์์คํ ๋ณด๋ค ํจ์ฌ ๋ ์์ฃผ๋ ์๋๋๋ค. ๋ํ "์ฌ์ฉ๋์ง ์๋/์์ ํ์ง ์์ ๋ฒ์ ์ผ๋ก ๋น๋ ์ค์ ๋๋ค"์ ๊ฐ์ ๊ฒฝ๊ณ ๋ฅผ ํ์ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ๋ฐ์ดํธ ์์ ์ ๋ถ์์ฉ์ผ๋ก ์กฐ์ฉํ ์ ๋ฐ์ดํธํ์ง ์๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
FAQ์๋ ์ถ๊ฐ๋์์ต๋๋ค.
์ง๊ธ๊น์ง ํ๋ฅญํ ํ ๋ก ์ ํ๊ณ ์๋ก์ ์ง๋ฌธ์ ๋ต๋ณํด ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ง์ ์ฌ๋๋ค์ ํ๋ฅญํ ๋ต๋ณ์ด์ง๋ง @Merovius ์ @kardianos์๊ฒ ํน๋ณํ ๊ฐ์ฌ๋ฅผ ๋๋ฆฝ๋๋ค. FAQ https://github.com/golang/go/issues/24301#issuecomment -371228664 ๋ฐ ํ ๋ก ์์ฝ https://github.com/golang/go/issues/24301#issuecomment -371228742๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค. ์์ง ๋๋ตํ์ง ์์ ์ธ ๊ฐ์ง ์ค์ํ ์ง๋ฌธ์ด ์์ต๋๋ค(์์ฝ์์ TODO๋ผ๊ณ ํจ). ์ด์ ๋ํด์๋ ๋ค์์ ์์ ํ๊ฒ ์ต๋๋ค. :-)
@rsc , #24057์๋ zip ๋์ tar๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ ผ์๊ฐ ์์ต๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -375106068, @leonklingele :
ํ์ฌ ์๋ ค์ง ๋๋ก go get์ ๋ํ ์ง์์ด ๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ณ ๊ฒฐ๊ตญ ์ ๊ฑฐ๋ ๊ฒฝ์ฐ Go ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ค์น(ํ๊ทธ ์๋)ํ๋ ๋ฐ ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ฌ์ ํ ๊ฐ ๊ฒ์ ๋๋ค. ๋ฐ์ด๋๋ฆฌ์ ์ ์ฅ์์ ํ๊ทธ๊ฐ ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ go get์ ์ต์ ์ปค๋ฐ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก ๋ฐ์ด๋๋ฆฌ๋ฅผ ํผ๋ธ๋ฆฌ์ฑํ๋ ์ฌ๋๋ค์ ํฌํจ๋ ์ ์ฅ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(๋๋ ํผํฉ)๋ฅผ ํฌํจํ๋ ์ ์ฅ์์ ๋์ผํ๊ฒ ํ๊ทธ๋ฅผ ์ง์ ํ๋๋ก ๊ถ์ฅ๋์ด์ผ ํฉ๋๋ค.
$GOPATH๊ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ ์ด๋ฌํ ๋ฐ์ด๋๋ฆฌ๋ ์ด๋์ ์ค์น๋ฉ๋๊น?
๋ ์ด์ $GOPATH์์ ์์ ํ ํ์๊ฐ ์์ง๋ง ์ฝ๋๋ ์ฌ์ ํ $GOPATH์ ๋์ด๋ ์ฒซ ๋ฒ์งธ ๋๋ ํ ๋ฆฌ์ ์์ฑ๋ฉ๋๋ค. ์ด๋ ์์ค ์บ์์ ๋๋ค. vgo๋ฅผ ์ฌ์ฉํ ํ $GOPATH/src/v๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ๋ฐ์ด๋๋ฆฌ๋ $GOPATH/bin์ ์ค์น๋ฉ๋๋ค. ๋ช ๊ฐ์ง ๋ฆด๋ฆฌ์ค ์ด์ ์๋ $GOPATH๋ฅผ ์ค์ ํ ํ์๊ฐ ์์ต๋๋ค. ๊ธฐ๋ณธ๊ฐ์ $HOME/go์ ๋๋ค. ๋ฐ๋ผ์ ๊ฐ๋ฐ์๋ $GOPATH๋ฅผ ์ค์ ํ๊ฑฐ๋ ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ์์ง ๋ชปํ๋ ๊ฒ์ ๋ํด ๊ฑฑ์ ํ์ง ์๊ณ ์์ ์ ๋ฐ์ด๋๋ฆฌ๊ฐ $HOME/go/bin์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋ฉ๋๋ค. $GOBIN์ ์ฌ์ฉํ์ฌ ํด๋น ์์น๋ฅผ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
@dsnet , ๊ฐ์ฌํฉ๋๋ค ํ ๋ก ์์ฝ์ ๋งํฌ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ ๋ ผ์๋ฅผ ๊ฑฐ๊ธฐ์ ๋๋๋ก ํฉ์๋ค.
$GOPROXY๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ vgo๋ ํด๋น ํ๋ก์์ ์์ฒญํฉ๋๋ค. ๊ฒฐ์ฝ ๋ค๋ฅธ ๊ณณ์ผ๋ก ๋จ์ด์ง์ง ์์ต๋๋ค. ํด๋น ํ๋ก์๋ ๋๋ถ๋ถ zip ํ์์ ํ์ฌ ๋ชจ๋์ธ ์ ์ ํ์ผ ํธ๋ฆฌ์์ ์ ๊ณตํ ์ ์์ต๋๋ค. ํ์ผ ํธ๋ฆฌ๋ ํ์ ๋ฐ ์กฐํ๋ฅผ ์ํด ๋ค๋ฅธ ๋ฉํ๋ฐ์ดํฐ ํ์ผ๋ ํฌํจํด์ผ ํฉ๋๋ค. HTTP๋ ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก๊ณผ ๊ฐ์ ์์ ์ ์ํํ๋ ํ์ค ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ถ๊ฐ ํ์ผ์ ํผํ ์ ์์ต๋๋ค.
์๋ ๋ชจ๋์ด zip ํ์์ผ๋ก ์ ์ง๋๋ ํ ๋ณ์กฐํ๋ ค๋ ์ ํน์ ์ ๊ฑฐํ๊ณ ์ธ๋ฑ์๊ฐ ๊ฒฌ๊ณ ํ๊ณ ๊ฐ๋ฒผ์ฐ๋ฉด ๊ด์ฐฎ์ต๋๋ค.
๋ชฉ๋ก ์ ์ฝ์ด ํ์ผ์ ์ ์ฉ๋์ง ์๊ณ lftp์ ๊ฐ์ ์ ํธ๋ฆฌํฐ๋ ์ค๋๋ http ๋๋ ํ ๋ฆฌ๋ฅผ ๋์ดํ ์ ์์์ต๋๋ค(์ฃผ์ http ์๋ฒ์์ ์๋ํ๋ ๊ฒฝ์ฐ ๋นํ์ค์ธ์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์). ๋ฐ๋ผ์ ์ธ๋ฑ์ค๊ฐ ์๋ ์ด์์ ์ธํ๋ผ์ ํฌ์ํ๊ธฐ๋ฅผ ์ํ์ง ์๋ ์๊ท๋ชจ ๊ธฐ์ ์ ๊ฐ๋ฅํ๊ณ ๋ฐ๋์งํ ์ ์์ต๋๋ค. yum/dnf/zipper๋ ๋ํ ์ฌ์ฉ์ ์ ์ ์์ธ์ ์์กดํ๋ฉฐ ๊ณต์ ๋๋ ํ ๋ฆฌ ์์ธ์ ์ป๋ ๊ฒ์ด ์ผ๋ถ ์กฐ์ง์์ ์๊ฐํ๋ ๊ฒ์ฒ๋ผ ํญ์ ๊ฐ๋จํ ๊ฒ์ ์๋๋๋ค.
์คํ ์์ค ๊ฐ๋ฐ์๋ ์ธํ๋ผ์ ์์กดํ์ง ์์ผ๋ ค๋ ๊ฒฝํฅ์ด ์์ผ๋ฏ๋ก @joeshaw ๊ฐ ์ด ๊ฒ์ฒ๋ผ ๋ฒค๋๋ง์ ์ํฉ๋๋ค.
๊ทธ๋ ์ง ์์ต๋๋ค. ์คํ ์์ค ๊ฐ๋ฐ์๋ ๋๋ถ๋ถ ์ ์ฒด ํ๋ก์ธ์ค๊ฐ ๊ณต๊ฐ๋๊ณ ํฌ๋ช ํ๊ธฐ๋ฅผ ์ํ๋ฉฐ ๋ค๋ฅธ ์ฌ๋์ ์ข์ ๋ฐ๋จ์ ์์กดํ ํ์๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ธํ๋ผ ์์ฒด๊ฐ ์คํ ์์ค์ด๊ณ ๋ก์ปฌ ๋ฐฐํฌ๊ฐ ์ฝ๊ณ ์ ๋ ดํ๋ค๋ฉด ์๋ฒฝํ๊ฒ ๊ด์ฐฎ์ต๋๋ค. github์ ๊ฐ์ ๊ฑฐ๋ํ ๋ธ๋๋ฐ์ค ๋ ์ ์ฌ์ดํธ์ ์์กดํ๋ ๊ฒ์ ๋ถ๋ช ํ ์ด ๋ฒ์ฃผ์ ์ํ์ง ์์ง๋ง ์ธํ๋ผ์ ๊ฐ์ ๊ฒ์ ์๋๋๋ค. ์คํ ์์ค ์ฌ๋๋ค์ ๋ค๋ฅธ ์ฌ๋๋ค๋ณด๋ค ์์ญ ๋ ์์ ๋ฏธ๋ฌ๋ง์ ํ์ต๋๋ค. ๊ทธ๋ค์ด ๋ฐ์๋ค์ด์ง ์๋ ๊ฒ์ ๋ซํ ์๊ณ ๋ฏธ๋ฌ๋ฅผ ์ค์ ํ๋ ๋ฐ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค(์คํ ์์ค ์ฉ์ด๋ก ๋น์ฉ์ด ๋ง์ด ๋๋ ๊ฒ์ ์ธ๊ฐ์ ์๊ฐ์ผ๋ก ์ธก์ ๋จ)
๊ฐ๋ฐฉ์ ์ด๊ณ ์ฝ๊ณ ์ ๋ ดํ ๋ฒค๋๋ง์ ํน์ฑ, ๋ฒค๋๋ง ํ๋ก์ธ์ค ์์ฒด ๋ฐ ์ฌ์ฉ๋์ง ์๋ ํ์ฌ ์ฝ๋ ๋ฒ์ ์ ๋ํ ์ฝ๋๋ฒ ์ด์ค์ ์ ์ง์ ์ธ ํ์ํ๋ฅผ ์กฐ์ฅํ๋ ๋ฐฉ์์ ๊ทธ๋ค์ง ๋ง์ง ์์ต๋๋ค.
์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ์๋ ์ธํ๋ผ์ ์์กดํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ ๋ ๋ค๋ฅธ ๋น์ฉ์ผ ๋ฟ์ ๋๋ค.
Google์์ ์ผํ๋ ๊ฒ์ ์ ๋ง ๋ฉ์ง ์ผ์ ๋๋ค. , ๋ฌธ์ ๋ฅผ ๋ณด๊ธฐ ์ํด ๋๊ตฐ๊ฐ์๊ฒ ๋น์ฉ์ ์ง๋ถํ๋ ๊ฒ์ ์ ๋นํํ๊ธฐ ์ํ ๊ฒ์ด๋ฏ๋ก ๋ชจ๋ ์ธํ๋ผ ๋น์ฉ์ Go ๋๋ฌ ๋ฒ์๋ฅผ ์ค์ด๊ณ ์๋ก์ด ๊ตฌ์กฐ์ ์ํ ์ฑํ์ ๋ฐฉ์งํฉ๋๋ค.
๊ธฐ์ ์ ์คํ ์์ค์ ๊ฐ์ผ๋ฉฐ ์ ๋ ดํ๊ณ ์ฌ์ด ๊ฒ์ ๊ด์ฌ์ด ์์ต๋๋ค. ๊ทธ๋ค์ ๊ฐ๋ฐฉ์ ๋ํด ์ ํ ์ ๊ฒฝ ์ฐ์ง ์์์ง๋ง ์ด์ ๋ ๊ทธ๊ฒ์ด ์ ๋ ดํ ๊ฒ๊ณผ ์๊ด๊ด๊ณ๊ฐ ์๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ณ ์ฒ์ฒํ ๋ณํํ๊ณ ์์ต๋๋ค(๋ฐฐํฌ๋ฅผ ๋๊ธฐ ์ํด ๊ฐ๋น์ผ ์ปจ์คํ ๊ณผ ํจ๊ป ๊ฐ๋น์ผ ๋ธ๋๋ฐ์ค ์๋ฃจ์ ์ ์ ๋ฌธ์ผ๋ก ํ๋ ์ ํต์ ์ธ ์ํฐํ๋ผ์ด์ฆ ๊ณต๊ธ์ ์ฒด์ ๋นํน๊ฐ์).
๋ด๋ถ IT๋ฅผ ์ต์ ์ ์ฐฐ์์๊ฒ ๊ณ์ฝํ๋ ๊ธฐ์ ์ ๊ฐ์ผ ๊ฐ๋ฐ์๊ฐ ์ธํฐ๋ท์์ ์ดํดํ ์ ์๋ ์์๋๊ฑฐ๋ ์ํํ ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ํ์คํ ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฌ๋ง์ ํ์คํ ๊ณ ์งํ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ๋ฌธ์ ๊ฐ ์๋์ง ๋ก์ปฌ ๋ฏธ๋ฌ ์ฝํ ์ธ ๋ฅผ ์ค์บํ๊ณ ๋ด๋ถ IT๊ฐ ๋ ์ ์ ์ผ๋ก ์ฌ์ฉํ๋๋ก ๊ฐ์ ํ๊ธฐ ์ํด ์ธ๋ ฅ๊ณผ ๋๊ตฌ์ ๋น์ฉ์ ์ง๋ถํ ๊ฒ์ ๋๋ค.
๋ํ ๋ชจ๋ ์คํ ์์ค ๊ฐ๋ฐ์๊ฐ ๋ฒค๋๊ฐ ํ์ํ๋ค๊ณ ๋๋ผ์ง ์๋๋ก ๊ฐ๋ฐ์๊ฐ ์ ๋ขฐํ๊ณ ์์งํ ์ ์๋ ๊ณต์ ๋ฏธ๋ฌ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ๊ณ ์ถ์ต๋๋ค.
๋ชจ๋์ ํฌํจํ๋ ์์ธ๋ ๋๋ ํ ๋ฆฌ์ ์ฐธ์กฐ ์ฌ๋ณธ์ ์ด๋๊ฐ์ ๊ฒ์ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ํน์ ์น ์๋ฒ ๊ตฌ์ฑ์ด ํ์ํ ํ๋ก์์ ๊ฐ์ ์ค์ ์ ์์ด๋ฒ๋ฆฌ์ญ์์ค. ๊ทธ๊ฒ์ด ์คํ ์์ค ์์ฑ์๊ฐ ํ๋ ์ผ์ด๋ฉฐ ์์ ์ ๋ฏธ๋ฌ๋งํ๋ ๋ฐ ์ด๋ ค์์ด ์์ต๋๋ค. ๋ฏธ๋ฌ๋ง์ด ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ ๋ณต์ฌํ๊ณ ํน์ ์น ์๋ฒ ๊ตฌ์ฑ์ด ํ์ํ์ง ์์ ํ ๋ฏธ๋ฌ๋งํ๋ ค๋ ์กฐ์ง์ด ๋ง์ด ์์ต๋๋ค.
์์ฑ๋ ์ฝ๋์ ๋ํด ๋ ์ผ๋ฐ์ ์ผ๋ก ๋งํ๋ฉด ์ค์ ์ธ์ด ๊ฐ ๋น๋ ์์คํ ์ด ๋ต์ ๋๋ค.
์ ๋ ์ผ์ด๋์ง ์์ ์ผ์ด๋ผ๋ ๊ฒ์ ์ ์ ๊ฐ์ด ์๋ค์ํผ ๋๊ตฐ๊ฐ๋ ํญ์ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ์ํํ๋ ์๋ก์ด ์ธ์ด๋ฅผ ๋ฐ๋ช ํ๊ธฐ๋ฅผ ์ํ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ฐ์ง ๋ ผ์ฆ์ ๋๋ค.
๊ทธ๋ ๋ค๊ณ ํด์ Go๊ฐ ํ ์ ์๋ ๊ฒ๊ณผ ํ ์ ์๋ ๊ฒ์ ๋ํ ์๊ฒฉํ ์ง์นจ๊ณผ ํจ๊ป ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ชจ๋ ํ๋ก์ ํธ๋ณ ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ ํ์ค ๋ช ๋ น์ ์ ๊ทํํ๋ ๊ฒ์ ๋ง์ง๋ ์์ต๋๋ค(์ผ๋ฐ์ ์ผ๋ก ํ์ค Go ๋ช ๋ น์์ ์ด๋ฏธ ๋ค๋ฃจ๋ ์์ ์ ์ํํ์ง ์์์ผ ํฉ๋๋ค. ์ด๋ฏธ ๊ทธ๋๋ก).
ํนํ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ๋ฐ๋ฅธ ๋ฐ์ ๊ธฐ๋ฅผ ์ค์นํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์์ฑ์๊ฐ ์์ฑ๊ธฐ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํ์ฌ๋ก์๋ ๋ฒ์ ์ด์์ฑ์ ๋ํด ์ ํ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ์์ฑ ์ ์ ์ํํธ์จ์ด ํ๊ฒฝ์ด ๋๊ฒฐ๋ ๊ฒ์ผ๋ก ์์ํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ์์ฑ๊ธฐ๊ฐ ๊ตฌํ๋๋ ๋ฐฉ์์ ๋ํ ๋๋์ ์ธ ์ฌ๊ณ ๊ฐ ํ์ํฉ๋๋ค. ์์ฑ์ด ์ฌ์์ฑ ์์ด ์ดํ ๋ฒ์ ๋ณ๊ฒฝ์ ์ํํ๊ฒ ๋ง๋๋ ์ง์ ์ ์ธ ํจ๊ณผ๋ก. ์ฌ๋์ด ์๋ ๋ฒ์ ์ธํธ์ ๋ํด์๋ง ํ์ธํ๋ฏ๋ก ์ฌ๋์ด ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์ต๋๋ค. vgo๋ ์ดํ ๋ฒ์ ๋ณ๊ฒฝ์ ์ํํ ์ ์์ด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ vgo๋ ์กฐ๋ง๊ฐ ์ฌ์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ๋์ค์๋ ์์ฑ๋ ์ฝ๋๊ฐ ์๋ ๊ฒฝ์ฐ vgo ์ ๋ฐ์ดํธ๊ฐ ์ํํ๋ค๋ ๊ฒ์ ํ๋ก์ ํธ๊ฐ ๋ฐ๊ฒฌํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -374791885, @jimmyfrasche :
์ด๋ ๋์ผํ ํจํค์ง์ ์ฌ๋ฌ ์ฃผ์ ๋ฒ์ ์ด ๊ฒฐ๊ตญ ์ด๋ฅผ ์ํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๊ธฐํ ์ค์ ๋ค๋ฅธ ํจํค์ง์ ์์ ์ ๋ฑ๋กํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ผ์ด๋ฒ ๋ฐ ์ด๋ฏธ์ง ํ์๊ณผ ๊ฐ์ ๊ฒ๋ค์๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๊ทธ๊ฒ์ด ์ด๋ค ์ํฅ์ ๋ฏธ์น ์ง๋ ๋์๊ฒ ๋ถ๋ช ํ์ง ์์ต๋๋ค.
์, "ํ๋ก๊ทธ๋จ์ ์ด๋ค ์ค ํ๋๋ง ์์ ๊ฒ"์ด๋ผ๊ณ ๊ฐ์ ํ๋ ์ฝ๋์ ๋ฌธ์ ๋ ํ์ค์ด๋ฉฐ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์๋ก์ด(๋ ๋์) ๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ๊ท์น์ ์๋ฆฝํ๊ธฐ ์ํด ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ์ ๋๋ค. ๋๋ ์ด ๋ฌธ์ ๊ฐ vgo์ ์ํด ๋์ ๋์๋ค๊ณ ์๊ฐํ์ง ์์ผ๋ฉฐ, vgo๋ ํ๋ฆผ์์ด ์ํฉ์ ์ด์ ๋ณด๋ค ๋ ์ข๊ฒ ๋ง๋ญ๋๋ค.
์ผ๋ถ ์ฌ๋๋ค์ vgo๊ฐ 1.x์ 2.x๋ ํจ๊ป ์์ ์ ์๋ค๋ Dep์ ๊ท์น์ ์ฑํํด์ผ ํ๋ค๊ณ ์ฃผ์ฅํ์ง๋ง, ์ด๋ ์ฐ๋ฆฌ๊ฐ Go๋ก ๋ชฉํ๋ก ํ๋ ๋๊ท๋ชจ ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ํ์ฅ๋์ง ์๋๋ค๋ ์ ์ ์ดํดํฉ๋๋ค. vgo-import ๊ฒ์๋ฌผ์์ ๋ณผ ์ ์๋ฏ์ด ์ ์ฒด ๋ํ ํ๋ก๊ทธ๋จ์ด ํ API์์ ๋ค๋ฅธ API๋ก ํ ๋ฒ์ ์ ๊ทธ๋ ์ด๋๋ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ณธ์ง์ ์ผ๋ก ๋ค๋ฅธ ๋ชจ๋ ํจํค์ง ๊ด๋ฆฌ์๋ ๊ฐ์ ์ด์ ๋ก 1.x์ 2.x๋ฅผ ํจ๊ป ํ์ฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์คํ ํ๋ฌผ์ ๊ทธ๋ ์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก vgo๋ ๋ฒค๋๋ง์ ๋นํด ์ค๋ณต์ ์ค์ ๋๋ค. ๋ฒค๋๋ง์ ์ฌ์ฉํ๋ฉด ์ฃผ์ด์ง ํจํค์ง์ 1.2, 1.3 ๋ฐ 1.4๊ฐ ๋ชจ๋ ํ๋์ ๋ฐ์ด๋๋ฆฌ๋ก ๋๋๊ฑฐ๋ 1.2์ 3๊ฐ ์ฌ๋ณธ์ด ๋ ์๋ ์์ต๋๋ค. ์ ์ด๋ vgo๋ ๊ฐ๋ฅํ ์ค๋ณต์ ํ๋์ 1.x, ํ๋์ 2.x ๋ฑ์ผ๋ก ์๋ผ๋ ๋๋ค.
์ด๋ฏธ ๋ค๋ฅธ ํจํค์ง์ ์์ฑ์๊ฐ ๋์ผํ ๊ฒ์ ๋ฑ๋กํ์ง ์๋๋ก ํด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ์๋ฅผ ๋ค์ด, expvar๋ http.Handle("/debug/vars")๋ฅผ ์ํํ๊ณ ๋ณธ์ง์ ์ผ๋ก ํด๋น ๊ฒฝ๋ก์ ๋ํ ์์ ๊ถ์ ์ฃผ์ฅํ์ต๋๋ค. Awesome.io/supervars์ ๊ฐ์ ํ์ฌ ํจํค์ง๊ฐ ๋์ผํ ๊ฒฝ๋ก๋ฅผ ๋ฑ๋กํ๋ ค๊ณ ์๋ํ์ง ์์์ผ ํ๋ค๋ ๋ฐ ๋ชจ๋ ๋์ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด๋ ๋จ์ผ ํจํค์ง์ ์ฌ๋ฌ ๋ฒ์ ๊ฐ์ ์ถฉ๋์ ๋จ๊น๋๋ค.
์ฐ๋ฆฌ๊ฐ expvar/v2๋ฅผ ๋์ ํ๋ค๋ฉด, ๊ทธ๊ฒ์ ๋๋ด ๊ต์ฅํ.io/supervars์ ๊ฐ์ ๋ ๋ฒ์งธ, ๋ค๋ฅธ ํจํค์ง๊ฐ ๋๋ฉฐ ํฐ ๋น๋์์ expvar์ ์ถฉ๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ supervar์ ๋ฌ๋ฆฌ expvar/v2๋ expvar์ ๊ฐ์ ์ฌ๋์ด๋ ํ์ด ์์ ํ๋ฏ๋ก ๋ ํจํค์ง๊ฐ ๋ฑ๋ก์ ๊ณต์ ํ๋๋ก ์กฐ์ ํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค. v2๋ฅผ ์์ฑํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ธฐ ์ ์ expvar v1.5.0์ด ๋ง์ง๋ง์ด๋ฏ๋ก v1.5.0์ http.Handle์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. v2๊ฐ v1์ ๋์ฒดํ๊ธฐ๋ฅผ ์ํ๋ฏ๋ก http.Handle์ v2.0.0์ผ๋ก ์ด๋ํ๊ณ v1์ด v2๋ก ํธ์ถ์ ์ ๋ฌํ ์ ์๋๋ก v2์ API๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ์ ๋ฌ๋ก ๊ตฌํ๋๋ v1.6.0์ ๋ง๋ญ๋๋ค. v1.6.0์ http.Handle์ ํธ์ถํ์ง ์์ต๋๋ค. v2.0.0์ ์์ํฉ๋๋ค. ์ด์ expvar v1.6.0๊ณผ expvar/v2๊ฐ ๊ณต์กดํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒ ๊ณํํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ ์ผํ ๋ฌธ์ ๋ ๋น๋๊ฐ expvar/v2์ ํจ๊ป expvar v1.5.0์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋ฉ๋๊น? ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ์ง ์๋๋ก ํด์ผ ํฉ๋๋ค. expvar/v2๊ฐ v1.6.0(๋๋ ๊ทธ ์ด์)์์ expvar๋ฅผ ํ์๋ก ํ๋๋ก ํจ์ผ๋ก์จ ๊ทธ ๋ฐฉํฅ์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์์ง๋ง ๋ฌผ๋ก expvar v1.6.0์ API๋ฅผ ํธ์ถํ๊ธฐ ์ํด v2.0.0 ์ด์์์ expvar/v2๊ฐ ํ์ํฉ๋๋ค. . ์ด ์๊ตฌ ์ฌํญ ์ฃผ๊ธฐ๋ฅผ ํตํด v1.5.0๊ณผ v2๊ฐ ์ ๋ ํผํฉ๋์ง ์๋๋ก ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ข ๋ฅ์ ๊ต์ฐจ ์ฃผ์ ๋ฒ์ ์กฐ์ ์ ๋ํ ๊ณํ์ ์ต์ ๋ฒ์ ์ ํ ์ด ์๊ตฌ ์ฌํญ ๊ทธ๋ํ์์ ์ฃผ๊ธฐ๋ฅผ ํ์ฉํ๋ ๋ฐ๋ก ๊ทธ ์ด์ ์ ๋๋ค.
์๊ตฌ ์ฌํญ ๊ทธ๋ํ์ ์ฃผ๊ธฐ ํ์ฉ๊ณผ ๊ฒฐํฉ๋ "๋จ ํ๋์ ์ฃผ์ ๋ฒ์ " ๊ท์น์ ์์ฑ์์๊ฒ ๋ชจ๋์ ์๋ก ๋ค๋ฅธ ์ฃผ์ ๋ฒ์ ๊ฐ์ ์ฑ๊ธํค์ ์ ์ ํ ์กฐ์ (๋ฐ ์ฑ๊ธํค ์์ ๊ถ ๋ง์ด๊ทธ๋ ์ด์ )์ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ ์๋ ์์ง๋ง ์์ฑ์์๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ํ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํ ์๋ ์์ต๋๋ค.
ํนํ ํ๋กํ ์ฝ ๋ฒํผ์๋ ๋ฑ๋ก ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ ํ๋กํ ์ฝ .pb.go ํ์ผ์ด ํ๋ก์ ํธ์ ์ ๋ฌ๋๊ณ ๋ณต์ฌ๋๋ ๋งค์ฐ ์์์ ์ธ ๋ฐฉ์์ผ๋ก ์ธํด ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์ ํ๋๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ค์ ๋๋ถ๋ถ vgo์ ๋ ๋ฆฝ์ ์ธ ๊ฒ์ ๋๋ค. ์์ ํด์ผ ํ์ง๋ง vgo๊ฐ ์๋๋ผ Go ํ๋กํ ์ฝ ๋ฒํผ๊ฐ ์ฌ์ฉ๋๋ ๋ฐฉ์์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -374739116, @ChrisHines :
vgo ์ด์ ์ธ๊ณ์ vgo ์ธ๊ณ ์ฌ์ด์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ๋๋น ์ง๋ ๊ฒ์ด ๊ฐ์ฅ ๊ฑฑ์ ์ ๋๋ค. [์์ธํ ์ธ๋ถ ์ฌํญ]
์ด๊ฒ์ด ์ ์์์ ๋ํ ์ฒซ ๋ฒ์งธ ์๊ฒฌ์ด์ด์ ์ ๋ง ๊ธฐ์ฉ๋๋ค. ํ์คํ ๋ง์ถ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค.
์ด์ go get ๋ฐ ๋ฌด์ํ ๋ฒค๋๋ง ๋๊ตฌ์์ ์ ๋ชจ๋ ์์คํ ์ผ๋ก์ ์ ํ์ ๋ฏฟ์ ์ ์์ ์ ๋๋ก ์ํํ๊ฒ ์คํ๋์ด์ผ ํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์ ํํ ์ด๋ป๊ฒ ์๋ํ ๊ฒ์ธ์ง์ ๋ํด ์ต๊ทผ์ ๋ง์ด ์๊ฐํ์ต๋๋ค.
์๋ ์ ์์ ๊ฐ๋ฐ์์๊ฒ v2/๋ผ๋ repo ํ์ ๋๋ ํ ๋ฆฌ์ ๋ชจ๋์ ๋ฒ์ 2๋ฅผ ๋ฃ์ ์ ์๋ ์ต์ ์ ํ์ฉํฉ๋๋ค. ์ด ์ต์ ์ ์คํํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์๋ฏธ๋ก ์ ๊ฐ์ ธ์ค๊ธฐ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ๋ชจ๋๊ณผ ํธํ๋์ง๋ง ์ด์ "go get"๊ณผ๋ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ์ต์ ์ ์ค๋ช ํ๋ ๊ฒ์๋ฌผ์ ๋๋ค์์ ํ๋ก์ ํธ๊ฐ ์ด ์ต์ ์ ์ฌ์ฉํ๊ณ ์ถ์ดํ์ง ์์ ๊ฒ์์ ์ธ์ ํฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ์ด๋ฏธ v2 ์ด์์ธ ๊ฒฝ์ฐ์๋ง ํธํ์ฑ์ ์ํด ํ์ํฉ๋๋ค. ๋์์ v2 ์ด์์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์๋ฅผ ๊ณผ์ํ๊ฐํ์ต๋๋ค. ์๋ฅผ ๋ค์ด:
ํด๋ผ์ด์ธํธ๊ฐ ์์๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ชจ๋์ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํ ์ ์์ ๋๊น์ง ํด๋น ํ๋ก์ ํธ๋ฅผ ํ์ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ ๋ค์ ๋ค์ ๋ฃจํธ๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ๋ฌผ์ด๋ณผ๊ฒ ๋ง์ต๋๋ค.
git ํ์ ๋ชจ๋๋ก ํธ๋ฆญ์ ์ํํ๋ ๋ ๋ค๋ฅธ ์ต์ ์ ๋๋ค. ์ด์ go get ๋ช ๋ น์ repo์ ๊ธฐ๋ณธ ๋ถ๊ธฐ๋ณด๋ค "go1"์ด๋ผ๋ ํ๊ทธ ๋๋ ๋ถ๊ธฐ๋ฅผ ์ ํธํ๋ฏ๋ก ์ํํ ์ ํ์ ํ์ฑํํ๋ ค๋ ํ๋ก์ ํธ๋ "v2" ํ์ ๋๋ ํ ๋ฆฌ๋ง ์ค์ ๋ "go1" ๋ถ๊ธฐ์ ์ปค๋ฐ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ค์ repo ๋ฃจํธ๋ฅผ ๋ค์ ๊ฐ๋ฆฌํค๋ git ํ์ ๋ชจ๋๋ก. "go get"์ด ํด๋น go1 ๋ถ๊ธฐ ๋ฐ ์ฑ์์ง ํ์ ๋ชจ๋์ ์ฒดํฌ์์ํ๋ฉด ์ฌ๋ฐ๋ฅธ ํ์ผ ํธ๋ฆฌ ๋ ์ด์์์ด ํ์๋ฉ๋๋ค. ๊ทธ๊ฒ์ ์ผ์ข ์ ๋์ฐํ์ง๋ง ์ ๋ฆด๋ฆฌ์ค๊ฐ ๋ง๋ค์ด์ง ๋๋ง๋ค ํ์ ๋ชจ๋ ํฌ์ธํฐ๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
์ด ๋ ๊ฐ์ง ๋ชจ๋ ์์ฑ์๊ฐ ์ฌ์ฉ์๋ฅผ ์์์ํค์ง ์๋๋ก ์กฐ์น๋ฅผ ์ทจํด์ผ ํ๋ ๋ถํํ ์ํฅ์ ๋ฏธ์น๋ฉฐ ์ฌ์ง์ด ์ ๋ฆด๋ฆฌ์ค์ ๋ํด์๋ง ์ ์ฉ๋ฉ๋๋ค. ๋์ ์ฌ์ฉ์์ ์ฝ๋๊ฐ ์์ฑ์์ ์ถ๊ฐ ์์ ์์ด๋ ๊ณ์ ์๋ํ๊ณ ์ด์์ ์ผ๋ก๋ ์ด์ ๋ฆด๋ฆฌ์ค์์๋ ์๋ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ์ด ๋ด๊ฐ ๋ชจ๋ ์ธ๊ณ๋ก ์ ํํ ๋ ์์ ๋์ง ์์ ์ํ๋ก ์๋ํ๋๋ก ํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋์์ old go get์ ์์ ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ค์ ๋ก old go ๋น๋๋ฅผ ์์ ํจ์ ์๋ฏธํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ ๊ฐ์ง ๋ค๋ฅธ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก ๊ท์น์ด ์์ต๋๋ค. ์ด์ ๋ฒ์ ์ ๋ฉ์ด์ ๋ฒ์ ์ด ์๊ณ ์ ๋ฒ์ ์ v2 ์ด์์ ๋ฉ์ด์ ๋ฒ์ ์ด ์์ต๋๋ค. ์ด์ ํธ๋ฆฌ์ ์ฝ๋๋ ์๋ง๋ ์ด์ ๊ท์น์ ์ฌ์ฉํ๋ ๋ฐ๋ฉด ์ ํธ๋ฆฌ์ ์ฝ๋(go.mod ํ์ผ์ด ํฌํจ๋ ๋๋ ํ ๋ฆฌ ์๋)๋ ์๋ง๋ ์ ๊ท์น์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ์ ํํ๋ ๋์ ๋ ๊ท์น์ด ๊ฒน์น๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์๋งจํฑ ๊ฐ์ ธ์ค๊ธฐ ๋ฒ์ ๊ด๋ฆฌ์ ๋ํด ์ฝ๊ฐ์ ์ ๋ณด๋ฅผ ์ป์ผ๋ผ๊ณ old go๋ฅผ ๊ฐ๋ฅด์น๋ค๋ฉด ์ค๋ณต๋๋ ์์ ์๋นํ ๋๋ฆด ์ ์์ต๋๋ค.
์ ์๋ ๋ณ๊ฒฝ ์ฌํญ: "์" ์ฝ๋๋ฅผ ๋์ผํ ๋๋ ํ ๋ฆฌ ๋๋ ์์ ๋๋ ํ ๋ฆฌ์ go.mod ํ์ผ์ด ์๋ ์ฝ๋๋ก ์ ์ํ์ญ์์ค. ์ด์ go get์ ํญ์ ๊ทธ๋ฌ๋ ๊ฒ์ฒ๋ผ ์ฝ๋๋ฅผ ๊ณ์ ๋ค์ด๋ก๋ํด์ผ ํฉ๋๋ค. "go build" ๋จ๊ณ์์ "new" ์ฝ๋์ ๊ฐ์ ธ์ค๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์กฐ์ ํ ๊ฒ์ ์ ์ํฉ๋๋ค. ํนํ, ์ ์ฝ๋์ ๊ฐ์ ธ์ค๊ธฐ๊ฐ x/y/v2/z๋ผ๊ณ ํ์๋์ง๋ง x/y/v2/z๊ฐ ์กด์ฌํ์ง ์๊ณ x/y/go.mod๊ฐ "module x/y/v2"๋ผ๊ณ ํ์๋๋ฉด go build๋ ๋ค์์ ์ฝ์ต๋๋ค. ๋์ x/y/z๋ก ๊ฐ์ ธ์ต๋๋ค. ์ด ์ ๋ฐ์ดํธ๋ฅผ Go 1.9 ๋ฐ Go 1.10์ ํฌ์ธํธ ๋ฆด๋ฆฌ์ค๋ก ํธ์ํฉ๋๋ค.
์ ๋ฐ์ดํธ : #25069์ ๋ณต์ฌ๋์์ต๋๋ค.
์ด๋ฌํ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ํด๋น ํจํค์ง๊ฐ ์ ์ฅ์ ๊ตฌ์ฑ์ "์ฃผ์ ๋ถ๊ธฐ" ๋๋ "์ฃผ ํ์ ๋๋ ํฐ๋ฆฌ" ์ ๊ทผ ๋ฐฉ์์ ์ ํํ๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ชจ๋ ์ธ์ ํจํค์ง๊ฐ ์ต์ ๋ฒ์ ์ ๋ชจ๋ ์ธ์ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค. ๋ ์ด์ ํ์ ๋๋ ํ ๋ฆฌ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ๊ฐ์ ๋์ง๋ ์์ง๋ง ์ฌ์ ํ ์๋ํ๋ ์ต์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ Go ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ ์ฌ์ ํ ์ฝ๋๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค(์ ์ด๋ ํฌ์ธํธ ๋ฆด๋ฆฌ์ค๋ก ์ ๋ฐ์ดํธํ ํ).
@rsc ์ ๋ vgo๋ก์ ์ ํ๋ ์ด๋ป๊ฒ ํ ์ ์๋์ง ์์๋ด๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ๊ทํ์ ์๋ต์์ ์ ์ํ ๊ฒ๊ณผ ๋์ผํ ๊ฒฐ๋ก ์ ๋๋ฌํ์ผ๋ฉฐ ๊ทํ์ ์ ์์ ์ ๊ฐ ์๊ฐํด๋ธ ์ต๊ณ ์ ์ ๊ทผ ๋ฐฉ์๊ณผ ์ผ์นํฉ๋๋ค. ๋ด ์ค์ค๋ก. ์ ์ํ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ง์์ ๋ญ๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -377527249, @rsc :
๊ทธ๋ฐ ๋ค์ ์ด ์ ๋ฌ๋ก ๊ตฌํ๋๋ v1.6.0์ ๋ง๋ญ๋๋ค. v1.6.0์ http.Handle์ ํธ์ถํ์ง ์์ต๋๋ค. v2.0.0์ ์์ํฉ๋๋ค. ์ด์ expvar v1.6.0๊ณผ expvar/v2๊ฐ ๊ณต์กดํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒ ๊ณํํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๊ฒ์ ๊ทธ๊ฒ๋ณด๋ค ๋ ์ฝ๊ฒ ๋ค๋ฆฝ๋๋ค. ์ค์ ๋ก, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด๊ฒ์ v1.6.0์ด v2 ๋ํผ ํํ๋ก v1์ ์์ ํ ๋ค์ ์์ฑํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. _(http.Handle์ ๋ํ ์ ๋ฌ ํธ์ถ์ v2์์ ํ๋์ ๋ค๋ฅธ ํธ๋ค๋ฌ๋ฅผ ๋ฑ๋กํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ์ฐจ๋ก๋ก ๋ชจ๋ ๊ด๋ จ๋จ์ ์๋ฏธํฉ๋๋ค. ์ฝ๋๋ ๋ํ ๋ฑ๋ก๋ ํธ๋ค๋ฌ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ํธ ์์ฉํ๋ ค๋ฉด v2์์ ๊ฐ์ ธ์จ ๊ฒ์ด์ด์ผ ํฉ๋๋ค)_.
์ด๊ฒ์ v2๊ฐ ์งํํจ์ ๋ฐ๋ผ ํนํ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ v1 ๋์์ ๋ํ ๋ฏธ๋ฌํ ์ธ๋ถ ์ฌํญ์ ๋ณ๊ฒฝํ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ต๋๋ค. ์ด๋ฌํ ๋ฏธ๋ฌํ ์ธ๋ถ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด์ํ๊ณ v1.6.x์์ ์ถฉ๋ถํ ์ข์ v1์ ์๋ฎฌ๋ ์ดํธํ ์ ์๋ค๊ณ ํด๋ - ์ฌ์ ํ ๋ง์ ์ถ๊ฐ ์์ ์ด ํ์ํ๊ณ v1 ๋ถ๊ธฐ์ ํฅํ ์ง์์ ๋ง๋ค ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ต๋๋ค(v1.5.0์ ํ์ ์ ํ์ ์๋ฏธํฉ๋๋ค. ์ฌ๊ธฐ) ๋ฌด์๋ฏธํ๋ค.
@powerman , ๋๋ ์ด๊ฒ์ด ์ฌ์ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ด ์ ๋ ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ v1๊ณผ v2๊ฐ http ๋ฑ๋ก๊ณผ ๊ฐ์ ์ผ๋ถ ๊ณต์ ๋ฆฌ์์ค๋ฅผ ๋๊ณ ์ธ์ฐ๋ ์ ๋๋ก๋ง ์กฐ์ ํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ํจํค์ง ์ํ๊ณ์ ์ฐธ์ฌํ๋ ๊ฐ๋ฐ์๋ ํจํค์ง์ v1๊ณผ v2๊ฐ ๋๊ท๋ชจ ํ๋ก๊ทธ๋จ์์ ๊ณต์กดํด์ผ ํ๋ค๋ ์ ์ ์ ๋์ ์ผ๋ก ์ดํดํด์ผ ํฉ๋๋ค. ๋ง์ ํจํค์ง๋ ์์ ์ด ํ์ํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด yaml๊ณผ blackfriday๋ ๋ชจ๋ v1๊ณผ ์์ ํ ๋ค๋ฅธ v2์ ์์ง๋ง ์ธ์ธ ๊ณต์ ์ํ๊ฐ ์์ผ๋ฏ๋ก ๋ช ์์ ์ธ ์กฐ์ ์ด ํ์ํ์ง ์์ง๋ง ๋ค๋ฅธ ํจํค์ง๋ ํ์ํฉ๋๋ค.
@powerman @rsc
"๋ฉ์ธ" ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ 2๊ฐ ์ด์์ ์ธ์คํด์ค๋ ๊ฐ์ง ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ GUI ํจํค์ง๋ฅผ ๊ฐ๋ฐ ์ค์
๋๋ค. ๊ทธ๋์ ์ต์
์ ๊ฒฝ์ฐ ์ฑ๊ธํค ์๋๋ฆฌ์ค์์ ์ด๊ฒ์ด ๋ด๊ฐ ํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒ์
๋๋ค.
v0/v1 ๋ฆด๋ฆฌ์ค๋ง ์์ผ๋ฏ๋ก 2๊ฐ ์ด์์ ๋ฒ์ ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
์์ฒด API ๋ฒ์ ํด๋์ ๊ณต๊ฐ ์ฝ๋๊ฐ ์์ด์ผ ํฉ๋๋ค(์: vgo๊ฐ ํ์ฉํ๋ค๊ณ ๊ฐ์ ํ๋ v1/v2 ๋๋ api1/api2).
๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ๊ณต๊ฐ API ํจํค์ง๋ ๋ด๋ถ ํจํค์ง์ ์์กดํ๋ฏ๋ก v2์์ ๋ค์ ์์ฑํ๋ ๋์ ํจํค์ง๊ฐ ์ปค์ง์ ๋ฐ๋ผ ๋กค๋ง ๋ค์ ์์ฑํ๊ณ ์ฒ๋ฆฌํ๊ธฐ๊ฐ ํจ์ฌ ์ฝ์ต๋๋ค.
https://github.com/golang/go/issues/24301#issuecomment -377529520์์ ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ "์" ์ฝ๋๋ฅผ ๋์ผํ ๋๋ ํ ๋ฆฌ ๋๋ ์์ ๋๋ ํ ๋ฆฌ์ go.mod ํ์ผ์ด ์๋ ์ฝ๋๋ก ์ ์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์๋ฅผ ๋ค์ด Gopkg.toml์์ ์ข ์์ฑ์ ์ฝ์ด์ ์์ฑ๋ "ํฉ์ฑ๋" go.mod ํ์ผ์ด ํฌํจ๋ฉ๋๊น?
@zeebo ๋ค. ํธ๋ฆฌ์ go.mod ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ์ฝ๋๋ ์ค์ ๋ก vgo๋ก ๋น๋๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ rm go.mod(๋๋ ์ ์ด๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฐพ์ ์ ์๋ ์ ์ฅ์์ ์ฒดํฌ์ธํ์ง ๋ง์ญ์์ค).
@AlexRouSg , GUI ํจํค์ง์ ๋ํ ๊ทํ์ ๊ณํ์ ๋์๊ฒ ์๋ฏธ๊ฐ ์์ต๋๋ค.
@rsc ํ .. ์ดํด๊ฐ ์ ์๊ฐ์ ๋ถ๋ช ํํ๋ค๋ฉด ์ฃ์กํฉ๋๋ค. ํ์ผ ํธ๋ฆฌ์ Gopkg.toml๋ง ์๋ ํจํค์ง๋ ์ ์์ ๋ํด "์ ํญ๋ชฉ"์ผ๋ก ๊ณ์ฐ๋ฉ๋๊น?
@rsc
๋ณด๋ค ์ผ๋ฐ์ ์ผ๋ก ์์ฑ๋ ์ฝ๋์ ๊ฒฝ์ฐ ์ค์ ์ธ์ด ๊ฐ ๋น๋ ์์คํ ์ด ๋ต์ ๋๋ค. ํนํ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ๋ฐ๋ฅธ ์์ฑ๊ธฐ๋ฅผ ์ค์นํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์์ฑ์๊ฐ ์์ฑ๊ธฐ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฐ๋ฆฌ๋ protobuf๋ฅผ GOPATH์ ๋งคํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์, ์ผ๋ฐ ์ฌ์ฉ์๋ ์ ๋ฐ์ดํธํ ๋๊ตฌ๊ฐ ํ์ํ์ง ์์ง๋ง protobuf๋ฅผ ์์ ํ๊ณ ์ฌ์์ฑํ๋ ์ฌ์ฉ์์๊ฒ๋ protobuild์ ์๋ฃจ์ ์ด ๋งค์ฐ ์ ์๋ํฉ๋๋ค.
์ฌ๊ธฐ์ ๋ํ ๋๋ต์ ์๋นํ ์ค๋ง์ค๋ฝ์ต๋๋ค. ์กด์ฌํ์ง ์๋ ์๋ก์ด ๋น๋ ์์คํ ์ ์ฐพ๋ ๊ฒ์ ๋ต์ด ์๋๋๋ค. ์ฌ๊ธฐ์ ํ์ค์ ์ฐ๋ฆฌ๊ฐ ์ด๋ฌํ ๋น๋ ์์คํ ์ ์ฌ๊ตฌ์ถํ์ง ์๊ณ ์๋ก์ด vgo ์์คํ ์ ์ฑํ์ ํผํ๋ฉด์ ์๋ํ๋ ๊ฒ์ ๊ณ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
vgo
๋ GOPATH๋ฅผ ์ข์ํ๊ณ ์ฑํํ์ผ๋ฉฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ฌ๋๋ค์๊ฒ ํ์ฐ์ ์ ์ธํฉ๋๊น?
@zeebo , ์๋์, Gopkg.toml์ด ์๋ ๊ฒ์ ์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ง ์์ต๋๋ค. ์ฌ๊ธฐ์ "new"๋ vgo ์คํ์ผ(์๋ฏธ๋ก ์ ๊ฐ์ ธ์ค๊ธฐ ๋ฒ์ ๊ด๋ฆฌ) ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฌ์ฉํ ๊ฒ์ผ๋ก ์์๋จ์ ์๋ฏธํฉ๋๋ค.
@stevvooe :
์ฐ๋ฆฌ๋ protobuf๋ฅผ GOPATH์ ๋งคํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ...
vgo๋ GOPATH๋ฅผ ์ข์ํ๊ณ ์ฑํํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ฌ๋๋ค์๊ฒ ํ์ฐ์ ์ ์ธํฉ๋๊น?
๋๋ ๋น์ ์ ํ๋กํ ๋น๋๋ฅผ ๋ณด์ง ์์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์, ์ฐ๋ฆฌ๋ ๋น GOPATH ๋ชจ๋ธ๋ก ์ด๋ํ๊ณ ์์ผ๋ฉฐ GOPATH๊ฐ ํ์ฑํํ์ ์ ์๋ ๋ช ๊ฐ์ง ํธ๋ฆญ์ ๋ค์ ๋จ๊ฒจ์ง ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด GOPATH๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ godep์ด ๊ณต๊ธ์ ์ฒด ์ง์ ์์ด ๊ณต๊ธ์ ์ฒด๋ฅผ ์๋ฎฌ๋ ์ด์ ํ ์ ์์ต๋๋ค. ๋ ์ด์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ผํ ๋ณด๋ฉด protobuild๋ ํ์ผ(pb.go)์ ์ฌ์ฉ์๊ฐ ์์ ํ์ง ์์ ๋ค๋ฅธ ํจํค์ง์ ์ญ์ ํ ์ ์๋ค๋ ๊ฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ๊ทธ๋ฐ ์ข ๋ฅ์ ๊ธ๋ก๋ฒ ์์ ์ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค. ์ ๋ vgo์ ๋ณ๊ฐ๋ก protobuf๊ฐ ์ ์ง์๋๋์ง ํ์ธํ๊ณ ์ ํ๋ ๊ฒ์ ๋ํด ์์ ํ ์ง์งํ๊ณ ์ง์งํฉ๋๋ค. @neild ๋ ์ ์์ ๋ฃ๋ ๋ฐ ๊ด์ฌ์ด ์์ ์ ์์ง๋ง ์ด ๋ฌธ์ ์ ๋ํด์๋ ๊ทธ๋ ์ง ์์ ์ ์์ต๋๋ค.
@stevvooe ๋ https://github.com/golang/go/issues/24301#issuecomment -377602765 ์์ @rsc ์ ์๊ฒฌ์ ์ ๊ณตํ์ต๋๋ค. ๊ทธ ๋ฌธ์ ๋ vgo
๊ฐ๋๋ฅผ ๋ค๋ฃน๋๋ค. ์ผ์ด ๋ค๋ฅธ ๊ณณ์์ ์ฒ๋ฆฌ๋๋ฉด @dsnet ๋ฑ์ด ์ฐ๋ฆฌ์๊ฒ ์ ํธ๋ฅผ ๋ณด๋ผ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์ฐธ๊ณ : ์ด์ ๋๊ธ์ ์์ธํ ๋ณด์ง ๋ชปํ์ต๋๋ค. ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋๋ ์ ์๊ฐ์ด์์ต๋๋ค.
๊ทธ๋ฅ ์์ด๋์ด์ ๋๋ค.
vgo-v1-lock๊ณผ ๊ฐ์
vgo get
์ธ์ ํน์ ํ๊ทธ๋ฅผ ๋ง๋๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
๋ฆฌํฌ์งํ ๋ฆฌ์ ํ๊ทธ๊ฐ ์์ผ๋ฉด ๋ค๋ฅธ ๋ฒ์ ํ๊ทธ๋ฅผ ๋ฌด์ํ๊ณ ํ๊ทธ์ ๊ณ ์ ๋ ์ ์์ต๋๋ค.๋ฐ๋ผ์ ์ ์ฅ์๊ฐ v2.1.3์ ๋ง์ง๋ง ๋ฒ์ ์ผ๋ก ํ๊ทธ ์ง์ ํ๋ฉด
๊ทธ๋ฌ๋ ์์ ์๋ v2.1.3 ํ๊ทธ๊ฐ ์ง์ ๋ ๋์ผํ ์ปค๋ฐ์ vgo-v1-lock ํ๊ทธ๋ฅผ ํธ์ํฉ๋๋ค.
go.mod๋ฅผ ์ธ ์ ์์ต๋๋ค.require ( "github.com/owner/repo" vgo-v1-lock )
vgo get -u
์ธ ๊ฒฝ์ฐ์๋ ์ ์ฅ์ ์์ ์๊ฐ ํ๊ทธ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ ๊ฑฐํ ๋๊น์ง ์ ๋ฐ์ดํธ๋์ง ์์์ผ ํฉ๋๋ค.
ํฐ ์ ์ฅ์๊ฐ ์ด๋์ ์ค๋นํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.๋์๊ด ์ ์๊ฐ ์ค๋น๋๋ฉด ์ ์๋ ์ฌ์ฉ์์๊ฒ ์๋ฆด ์ ์์ต๋๋ค.
๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์ "/v2"๋ฅผ ๋ฃ์ด ์๋์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
๊น์ ์ข ์์ฑ์ ํจ์นํด์ผ ํ๋ ๊ฒฝ์ฐ(์: ์๋ ์์ฑ์๊ฐ ์์ง ํ๊ทธ์์ ๋ฆด๋ฆฌ์คํ์ง ์์ CVE ์์ ์ฌํญ ์ ์ฉ)๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์๋ ์์ฑ์ ๋ฆด๋ฆฌ์ค์ ํจ์น๋ฅผ ์ ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ณต๊ธ์ ์ฒด ์ ๋ต์ด ์ด๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. vgo๊ฐ ์ด๊ฒ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ณด์ง ๋ง์ญ์์ค.
@chirino ์์ go.mod ํ์ผ์ replace ์ง์๋ฌธ์ ์ฌ์ฉํ์ฌ ํจ์น๋ ํจํค์ง๋ฅผ ๊ฐ๋ฆฌํฌ ์ ์์ต๋๋ค.
@rsc
์ผํ ๋ณด๋ฉด protobuild๋ ํ์ผ(pb.go)์ ์ฌ์ฉ์๊ฐ ์์ ํ์ง ์์ ๋ค๋ฅธ ํจํค์ง์ ์ญ์ ํ ์ ์๋ค๋ ๊ฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
์ด๊ฒ์ ํ๋ก์ ํธ๊ฐ ํ๋ ์ผ์ด ์๋๋๋ค. GOPATH
๋ฐ ๊ณต๊ธ์
์ฒด ๋๋ ํ ๋ฆฌ์์ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํ๋ก์ ํธ์ ๋ชจ๋ protobuf ํ์ผ์ด ํด๋น ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ก ์์ฑ๋ฉ๋๋ค. ๋ํ ํน์ Go ํจํค์ง๋ก ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ๋งคํํ๋ ๊ฒ๊ณผ ๊ฐ์ ์์
๋ ์ํํฉ๋๋ค.
์ด๊ฒ์ ์ด์ ์ ๋ชจ๋ ๊ฒ์ ์ฌ์์ฑํ์ง ์๊ณ ์ข ์์ฑ์ ์ ์๋ ๋ค๋ฅธ protobuf์ ์ข ์๋ ๋ฆฌํ ํ๋ก์ ํธ์์ protobuf๋ฅผ ์์ฑํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. GOPATH๋ protobuf ํ์ผ์ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๊ฐ ๋ฉ๋๋ค.
์ด ์ ์์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ํ์ผ ์์คํ ์ Go ํจํค์ง์ ๊ด๋ จ๋ ํ๋ก์ ํธ์ ํ์ผ์ ํด๊ฒฐํ ์ ์๋ ๋ฅ๋ ฅ์ ์์ ํ ์์คํ๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ถ๋ถ์ ํฌ์ฅ ์์คํ ์ ์ด๋ ต๊ฒ ๋ง๋ค๊ธฐ๋ ํ์ง๋ง ์ด๋ฅผ ์ํํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. GOPATH๋ ์ด ์์ ์ ์ํํ๋ ๊ฒ์ด ๋งค์ฐ ์ฝ๋ค๋ ์ ์์ ๋ ํนํฉ๋๋ค.
@stevvooe ์ฃ์กํ์ง๋ง protobuild๊ฐ ํ๋ ์ผ์ ๋ํด ์ฌ์ ํ ํผ๋์ค๋ฝ์ต๋๋ค. ์๋ก์ด ๋ฌธ์ "x/vgo: protobuild์ ํธํ๋์ง ์์"์ ์ ์ถํ๊ณ ์ค๋๋ ์กด์ฌํ๋ ํ์ผ ํธ๋ฆฌ์ ๊ฐ๋จํ ์์ ์, ํธ๋ฆฌ์ ์ถ๊ฐํ๋ protobuild ๋ฐ vgo์์ ์๋ํ์ง ์๋ ์ด์ ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น? ๊ฐ์ฌ ํด์.
๋ชจ๋ ์ด๋ฆ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ(๋๋ฉ์ธ ๋ถ์ค, ์์ ๊ถ ๋ณ๊ฒฝ, ์ํ ๋ถ์ ๋ฑ) ์ด๋ป๊ฒ ๋ฉ๋๊น?
@jimmyfrasche
์ฌ์ฉ์:
๊ทธ๋ฐ ๋ค์ ์์ ์์ ์ฌํญ์ผ๋ก go.mod ํ์ผ์ ํธ์งํ์ฌ ๋์ผํ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์ ์งํ๋ฉด์ ์ด์ ๋ชจ๋์ ์ ๋ชจ๋๋ก ๊ต์ฒดํ ์ ์์ต๋๋ค. https://research.swtch.com/vgo-tour
๊ทธ๋ฌ๋ ์ฅ๊ธฐ์ ์ผ๋ก ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ๊ณ go.mod ํ์ผ์ ํธ์งํ์ฌ ์ ๋ชจ๋์ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก vgo๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉํ์ง ์๊ณ ์ํํด์ผ ํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒ์ ๋๋ค.
ํจํค์ง ๊ด๋ฆฌ์๋ก์:
๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ฌ์ฉ์์๊ฒ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ฆฌ๋ ค๋ฉด go.mod ํ์ผ์ ์
๋ฐ์ดํธํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
@jimmyfrasche ,
๋ชจ๋ ์ด๋ฆ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ(๋๋ฉ์ธ ๋ถ์ค, ์์ ๊ถ ๋ณ๊ฒฝ, ์ํ ๋ถ์ ๋ฑ) ์ด๋ป๊ฒ ๋ฉ๋๊น?
์ด๊ฒ์ vgo ์ ์์ด ์ง์ ํด๊ฒฐํ๋ ค๊ณ ์๋ํ์ง ์๋ ์ค์ ๊ธฐ์กด ๋ฌธ์ ์ด์ง๋ง ๋ถ๋ช ํ ์ฐ๋ฆฌ๋ ๊ฒฐ๊ตญ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ์ฝ๋๊ฐ ์ฌ๋ผ์ง๋ ๊ฒ์ ๋ํ ๋ต์ ์บ์ฑ ํ๋ก์(๋ฏธ๋ฌ)์ ํจ๊ป ์ด๋ฅผ ์ ๋ขฐํ ์ด์ ๊ฐ ์๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ด ๋ฏธ๋์ ์ผ์ด๋ค. ์ฝ๋ ์ด๋์ ๋ํ ๋ต์ ์ ํ ๋ณ์นญ์ด ์ ํ ๋ฆฌ๋๋ ์ ์ธ ๊ฒ์ฒ๋ผ ๋ชจ๋ ๋๋ ํจํค์ง ๋ฆฌ๋๋ ์ ์ ๋ช ์์ ๊ฐ๋ ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ฏธ๋์ ์ผ์ด๊ธฐ๋ ํ๋ค.
์ฝ๋๊ฐ ์ฌ๋ผ์ง๋ ๊ฒ์ ๋ํ ๋ต์ ์บ์ฑ ํ๋ก์(๋ฏธ๋ฌ)๋ฅผ ๊ฐ๋ ๊ฒ์ ๋๋ค.
๊ธฐ์ ์ ์ํ IMO์ ๋๋ค. ๋๋ถ๋ถ์ ์๊ท๋ชจ ํ์ฌ ๋ฐ ๊ธฐํ ํ์ฌ๋ ๋ชจ๋ ์ข ์์ฑ์ ๋์ผํ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ณต๊ธํ๊ณ ์ปค๋ฐํ๋ ๋ฐ ์๋ฒฝํฉ๋๋ค.
์์์ ์ธ๊ธํ ํธํ์ฑ์ ์ํด #24916์ ์ ์ถํ์ต๋๋ค.
๋ํ HTTPS ์ก์ธ์ค๋ฅผ ์ฃผ์ฅํ๋ ๋์ git ๋ฑ์ ์ง์ ์ฌ์ฉํ๋๋ก ์ ์ํ๋ #24915๋ฅผ ์ ์ถํ์ต๋๋ค. ์ฝ๋ ํธ์คํ
์ค์ ์ด ์์ง API ์ ์ฉ์ผ๋ก ์ค๋น๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ณํ๋ vgo get ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํ์ผ์ ์ผ๊ด์ฑ์ ๋ง๋ค๊ธฐ ์ํ ์ฌ์ํ ์ ์
"vgo-tour" ๋ฌธ์์์ vgo get
๋ช
๋ น์ ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
vgo get rsc.io/[email protected]
๋ชจ๋ ํ์ผ์์ ์ด ํ์์ ๋ฏธ๋ฌ๋งํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ์๋ฅผ ๋ค์ด:
module "github.com/you/hello"
require (
"golang.org/x/text" v0.0.0-20180208041248-4e4a3210bb54
"rsc.io/quote" v1.5.2
)
๊ฐ๋จํ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค.
module "github.com/you/hello"
require (
"golang.org/x/[email protected]"
"rsc.io/[email protected]"
)
์ด ์ ์์ด "๋ฐ์ด๋๋ฆฌ ์ ์ฉ" ํจํค์ง ๋ฐฐํฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ ๋ช ํํ ์ ๋ณด๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค.
๋ฐ์ด๋๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ๊ด๋ฆฌ/๋ฐฐํฌ๋ vgo์ ๋ํ ์ค๋ช ๋ฌธ์์ ํ์๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ๋ ์ฃผ์ ๊น๊ฒ ๋ณผ ํ์๊ฐ ์์ต๋๊น?
์ค๋๋ ์๋ํ๋ ๋ฐฉ์์ผ๋ก ์ผ๋ฐ git
๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ฉด go get
๋ ์ ์๋ํฉ๋๋ค. ๊ฐ์ธ Github ๋ฆฌํฌ์งํ ๋ฆฌ ๋๋ ๋ด Git ์๋ฒ์ธ์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์ต๋๋ค. ์ ๋ง ์ข์ํด์.
๋ด๊ฐ ์ดํดํ ๋ฐ์ ๋ฐ๋ฅด๋ฉด ๊ทธ๋ฐ ์์ผ๋ก ๊ณ์ ์ผํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ ๊ฒ์
๋๋ค. ์ฌ์ค์ธ๊ฐ์? ๊ทธ๋ ๋ค๋ฉด ์ฝ๋๋ฅผ ์ฒดํฌ์์ํ๊ธฐ ์ํด ๋ก์ปฌ์ ์ค์น๋ git
๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ต์
์ ์ ์งํ ์ ์์ต๋๊น? (๋ช
์์ CLI ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ ์ด๋ฒคํธ)
@korya ์ต๊ทผ ์ ์๋ ์ด์๋ฅผ ํ์ธํด์ฃผ์ธ์ https://github.com/golang/go/issues/24915
@sdwarwick , https://github.com/golang/go/issues/24301#issuecomment -382791513(go.mod ๊ตฌ๋ฌธ), #24119 ์ฐธ์กฐ.
re https://github.com/golang/go/issues/24301#issuecomment -382793364, ๋ฌด์จ ๋ง์ธ์ง ์ดํด๊ฐ ๊ฐ์ง ์์ ์ ์์ง๋ง go get์ ๋ฐ์ด๋๋ฆฌ ์ ์ฉ ํจํค์ง๋ฅผ ์ง์ํ ์ ์ด ์์ผ๋ฉฐ ๊ณํ๋ ์์ต๋๋ค. ์ง์์ ์ถ๊ฐํฉ๋๋ค. ํ์ํ ๋ชจ๋ ๊ฐ๋ฅํ ๋ค๋ฅธ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ด๊ฑฐํ๋ ๊ฒ์ ๋๋ฌด ์ด๋ ต์ต๋๋ค. ์์ค๊ฐ ํ์ํ๊ณ ์ข ์์ฑ ๋๋ ์ปดํ์ผ๋ฌ๊ฐ ๋ณ๊ฒฝ๋ ๋ ๋ค์ ์ปดํ์ผํ ์ ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
@rsc ๋๋ https://github.com/golang/go/issues/24301#issuecomment -382793364๊ฐ ์ธ๊ธํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
https://golang.org/pkg/go/build/#hdr -Binary_Only_Packages
@AlexRouSg ๋ค. ๊ทธ๊ฒ๋ค์ @rsc ๊ฐ ์ธ๊ธํ๋ "go get"์์ ์ง์๋์ง ์์ต๋๋ค(๊ทธ๋ฌ๋ "go build"๋ ๋น๋ ์ ํ์ผ๋ก ์ง์ํฉ๋๋ค). ์ด๋ฌํ ์ ํ์ ํจํค์ง ๋ฐฐํฌ๋ "go get" ๋๊ตฌ ์ธ๋ถ์์ ์ํ๋์ด์ผ ํ๋ฏ๋ก ์ด ์๋ก์ด ์ ์์์๋ ๋์ผํ ๊ฒ์ ๋๋ค.
๋ฐ์ด๋๋ฆฌ ์ ์ฉ ํจํค์ง์ ๋ํ ํ์ฌ ์ง์์ ์ง๊ธ๊น์ง์ฒ๋ผ ์ ๋๋ก ์๋ํ์ง ์์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ ๊ฑฐํ๊ธฐ ์ํด ์ต์ ์ ๋คํ์ง ์์ ๊ฒ์ ๋๋ค.
ํ ๋ก ์์ฝ์ ๋ค์ ์ ๋ฐ์ดํธํ์ต๋๋ค. ๋ํ ์ด์ cmd/go์ ์ต์ ๋ชจ๋ ์ธ์์ ๋ํ ์ ์์ ์ํด #25069๋ฅผ ์ ์ถํ์ต๋๋ค.
@kybin , re https://github.com/golang/go/issues/24301#issuecomment -377662150 ๋ฐ vgo-v1-lock
ํ๊ทธ, ๋๋ ํญ์๋ฅผ ๋ณด์์ง๋ง ํน๋ณํ ๊ฒฝ์ฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ์ ์ฒด์ ๊ฑธ์ณ ๋ ๋ง์ ํน๋ณํ ๊ฒฝ์ฐ๋ฅผ ์ถ๊ฐํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค ๋๋จธ์ง ๋ชจ๋ ์ง์. ์ ๋ ์ด์ ์ด ์ด ๊ฒฝ์ฐ ๋น์ฉ์ ๋น๋กํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ฌ๋๋ค์ ์ด๋ฏธ ์ ์ฌ ๋ฒ์ ์ ์ฌ์ฉํ์ฌ ์ ์ฌํ ํจ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ๋๋ ๋ํ ํ๊ทธ๊ฐ ์ด๋ํ๊ฑฐ๋ ์ฌ๋๋ค์ด ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์ ํ๊ฒ ์กด์คํ์ง ์์๊น๋ด ๊ฑฑ์ ํฉ๋๋ค(์: ์๋ฏธ๋ก ์ ๊ฐ์ ธ์ค๊ธฐ ๋ฒ์ ์ง์ ์ ํผํ๊ธฐ ์ํด vgo1-v1-lock์ v2.3.4์์ v3.0.0์ผ๋ก ์ด๋). ๊ทธ๋์ ๊ท ํ ์กํ ์๊ฐ์ผ๋ก ์ฐ๋ฆฌ๋ ์๋ง๋ ์ด๊ฒ์ ํด์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ์ด ์ ์์ ์๋ฝํ ๊ฒ์ผ๋ก ํ์ํด์ผ ํ ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ค ํํ๋ก๋ ๋ฐ์๋ค์ผ ์ ์์์ง์ ๋ํ ์์คํ์ค๋ ์์์ต๋๋ค. ๋์ ์ฌ๊ธฐ์์ ๋ ผ์์ ๋ชฉํ๋ ์ ํํ ํ์์ ์ฐพ์ ์ฐ๋ฆฌ๊ฐ ์กฐ์ ํด์ผ ํ ๋์์ ์๋ณํ๋ ๊ฒ์ด์์ต๋๋ค. ๋ด๊ฐ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ์ ์ด ๊ฒ์ฒ๋ผ :
Go ๊ฐ๋ฐ์๋ค์ด ์ฐ๋ฆฌ๊ฐ ์์ง ๋ชปํ๋ ๋ง์ ์๋ฆฌํ ๋ฐฉ๋ฒ์ผ๋ก Go๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ Go ํ๊ณผ ๋ด๊ฐ ๋ณผ ์ ์๋ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ ์ ํผ๋๋ฐฑ ํ๋ก์ธ์ค์ ๋ชฉํ๋ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ํ์ฌ ์ ์์ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ํด๊ฒฐํ๊ธฐ ์ํด ํ๋ ฅํ์ฌ ํฅํ Go ๋ฆด๋ฆฌ์ค์์ ์ ๊ณต๋๋ ์ต์ข ๊ตฌํ์ด ๊ฐ๋ฅํ ํ ๋ง์ ๊ฐ๋ฐ์์๊ฒ ์ ์๋ํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ ์ ํ ๋ก ๋ฌธ์ ์ ๋ํ ๋ฌธ์ ์ ์ ์ง์ ํด ์ฃผ์ญ์์ค. ํผ๋๋ฐฑ์ด ๋์ฐฉํ๋ ๋๋ก ํ ๋ก ์์ฝ๊ณผ FAQ๋ฅผ ์ ๋ฐ์ดํธํ๊ฒ ์ต๋๋ค.
ํ ๋ก ์์ฝ ๋ฐ FAQ๋ ํ์ฌ ์ต์ ์ํ์ ๋๋ค. ์ฌ๊ธฐ์์์ ํ ๋ก ๊ณผ ๋ฌธ์ ์ธ์ ํ ๋ก ์ผ๋ก ์ธํด ๋ค์๊ณผ ๊ฐ์ ์ค์ํ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์ํ์ต๋๋ค.
๋ํ go.mod ํ์ผ ์ด๋ฆ๊ณผ ๊ตฌ๋ฌธ์ ๋ณ๊ฒฝํ ์ ์๋์ง์ ๋ํ ํ ๋ก ์ด ์ด๋ฐ๋์์ง๋ง ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ณ๊ฒฝ๋ ์ฌํญ์ ๋ฐ์ดํ๋ฅผ ์ญ์ ํ๋ ๊ฒ๋ฟ์ด์์ต๋๋ค.
ํ ๋ก ์ ์ฌ๋ผ์ก๊ณ GitHub์ ๋ก๋ํ๋ ๊ฒ์ด ์๋นํ ๊ณ ํต์ค๋ฌ์ธ ์ ๋๋ก ๊ธธ์ด์ก์ต๋๋ค(๋๊ธ 100๊ฐ๋ ๋๋ฌด ๋ง์ต๋๋ค!). ์ ์์ ์๋ฝํ ๊ฒ์ผ๋ก ํ์ํ๋ฉด vgo๋ฅผ ์ฌ์ฉํ๊ณ Go 1.11์ "๋ฏธ๋ฆฌ ๋ณด๊ธฐ"๋ก ํฌํจํ ์ค๋น๋ฅผ ํ๋ ๋ฐ ์ง์คํ ์ ์์ผ๋ฉฐ GitHub์์ ๋ ๋นจ๋ฆฌ ๋ก๋ํ ์ ์๋ ๋ฌธ์ ๋ก ์ด๋ํ ์ ์์ต๋๋ค.
๋ฌผ๋ก ๋ ๋ง์ ๋ฒ๊ทธ๋ฅผ ์ฐพ์ ์์ ํด์ผ ํ๋ฉฐ ๋ ๋ง์ ๋์์ธ ์กฐ์ ์ด ํ์ํฉ๋๋ค. ์ด๋ฌํ ์ธ๋ถ ์ฌํญ์ ๋ํ ๋ ผ์๋ ํด๋น ์ธ๋ถ ์ฌํญ๊ณผ ๊ด๋ จ๋ ์๋ก์ด ๋ฌธ์ ์ ๋ํด ์ํํ ์ ์์ต๋๋ค. "x/vgo:" ์ ๋์ฌ์ vgo ๋ง์ผ์คํค ์ ์ฌ์ฉํ์ญ์์ค.
๊ฐ์ฌํฉ๋๋ค.
@rsc ์ง๊ธ vgo๋ฅผ ์๋ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? github.com/golang/vgo ๋๋ github.com/golang/go๋ฅผ ๊ฐ์ ธ์ ๋น๋ํด์ผ ํ๋์?
@ngrilly ๊ณ์ go get -u golang.org/x/vgo
.
@rsc ์ด ์ ์์ ๋ง์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ํฌ์ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. Go ์์กด์ฑ ๊ด๋ฆฌ์ ๋ํ ์ข์ ์ด์ผ๊ธฐ๊ฐ ์๋ ์ง์ ์ ๊ฒฐ๊ตญ ๋๋ฌํ๊ธฐ๋ฅผ ์ง์ฌ์ผ๋ก ๋ฐ๋๋๋ค.
์ด์ ์ด ์ ์์ ์น์ธ์ผ๋ก ํ์ํด์ผ ํ ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ ์์๋ฅผ ์ ์ถํ ๊ฐ์ธ์ด ์น์ธ๋ ์ค๋น๊ฐ ๋์์ ๋ ์ ์ธํ๋ ๊ฒ์ ์ ์ ํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ์๊ฐ์๋ ์ ์์๋ฅผ ์ ์ถํ๋ ์ฌ๋๋ค, ํนํ ์ด๋ ๊ฒ ํฌ๊ณ ๋ ๋จ์ ์ธ ์ ์์๊ฐ ๋ฐ์๋ค์ฌ์ง๋ ๊ฒ์ ๋ํด ๋ฐ์ธ๊ถ์ด ์์ด์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ์์ ์ ์ถ์ ๊ทธ๋ค์ ํธ๊ฒฌ์ ์ ๋ฌํฉ๋๋ค. ๋ฐ๋ฉด์ ์์ฑ์๋ ์ ์์ ์ ๊ธฐํ ํ ๋ง์์ด ๋ฐ๋๋ฉด ๊ฑฐ๋ถํ ์ ์๋ ๊ถํ์ด ๋ถ๋ช ํ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ฌ vgo
๋ด์์ ๊ธฐ์ ์ ์ธ ๊ฒฐ์ ์ ๋๋ฌ์ธ๊ณ ์ฌ๊ฐํ ๋ถ์ผ์น๊ฐ ์๋ ๊ฒ ๊ฐ์ผ๋ฉฐ ์ํ๊ณ์ ์ปค๋ฎค๋ํฐ๊ฐ ๋ถ์ด๋ ๊น ๋๋ ค์ํฉ๋๋ค. ์ด๋ฅผ ์ผ๋์ ๋๊ณ ๊ฒฝ์ ์ ์์ด ์๋ฃ๋๊ณ ์คํฌํธ๋ผ์ดํธ๋ฅผ ๋ฐ์ ๋๊น์ง ์๊ฐ์ ์กฐ๊ธ ๋ ํ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ํ ๋ก ๊ณผ ๊ถ๊ทน์ ์ธ ๊ฒฐ์ ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด ์ฌ๋ฌ ํ์ฌ์ ์ปค๋ฎค๋ํฐ์ ๋ํ๋ก ๊ตฌ์ฑ๋ _์ค๋ฆฝ์ ์ธ _ ํํฐ๊ฐ ํ์ํฉ๋๋ค.
๋๋ ๋ฐ๋ ๋ฆฌ๋์ญ์ ์๋น ๋ถ๋ถ์ด ๋ฐ๋ ๋ค์ ์ปค๋ฎค๋ํฐ(์ด๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ํ์ฌ ํฌํจ)๋ก๋ถํฐ ๋๋ฌด ๊ณ ๋ฆฝ๋์ด ์๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์ธ์ด์ ์ํ๊ณ๊ฐ ์์๋๊ธฐ ์์ํ๋ค๋ ์ฐ๋ ค๊ฐ ์ปค์ง๊ณ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก Go ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ฌ์ฉ์๋ฅผ ๋ฐ์ํ๋ ํํ์ผ๋ก ์ด๋ฌํ ์ ์์ ๋น์คํ๋ ๋ฐ ๋์์ด ๋๋ ์ค๋ฆฝ์ ์ธ ๊ทธ๋ฃน์ด ํ์ํ๋ค๊ณ ์๊ฐํ๋ ์ด์ ์ ๋๋ค.
๊ถ๊ทน์ ์ผ๋ก Google ๋ด๋ถ์์ ์ํํธ์จ์ด ์์ง๋์ด๋ก ์ผํ๋ ๊ฒ์ ์ ๊ณ์ ๋ง์ ๋ถ๋ถ์ ๋นํด ๋ค๋ฅธ ๊ด์ ์ ๊ฐ๊ฒ ๋ฉ๋๋ค. ํต์ฌ ๊ฐ๋ฐ์์ ์๊ณ๋์ด Google ๋ด์ ์๋ค๋ ๊ฒ์ ์์ผ๋ก Go๋ฅผ ์ถ์งํ ๋ ํ์ํ ๋ค์์ฑ์ ๊ธฐ์ฌํ์ง ์์ต๋๋ค.
@theckman ๊ทํ์ ์ฌ๊ณ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ก ์ ์ผ๋ก๋ "๋ฏผ์ฃผ์ "์ธ ๊ฒ์ ์ข์ํ์ง๋ง ์ค์ ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Go ํ์ด ๋ด๋ฆฐ ๊ฒฐ์ ์ด "์๊ท๋ชจ" Go ์ฌ์ฉ์๋ฅผ ํฌ์์ํค๋ฉด์ Google์ ์๊ตฌ์ ํธํฅ๋์ด ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์์ฃผ ์์ ์์ (Google๊ณผ ์ ๋ฐ๋)์ ๊ฐ๋ฐ์๋ก์ Go๊ฐ ์ฐ๋ฆฌ์ ์๊ตฌ ์ฌํญ์ ๋งค์ฐ ์ ์ ์ํ๋ค๊ณ ์๊ฐํ๊ณ ์ ์ฃผ๋ณ์ ๋ค๋ฅธ ์๊ท๋ชจ ํ์์ Go๋ฅผ ์ฆ๊ฒ๊ฒ ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก Go ์ธ์ด์ ๋ํ ์ ์ผํ ๋ถ๋ง์ Go ํ(์ข ์์ฑ ๊ด๋ฆฌ, ์ ๋ค๋ฆญ ๋ถ์กฑ, ์ฅํฉํ ์ค๋ฅ ์ฒ๋ฆฌ)์์ ์ธ์ ํ์ผ๋ฉฐ ๊ทธ๋ค์ด ์์ ์ค์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. "๋ฏผ์ฃผ์ ์ธ" ์ ์ฐจ๊ฐ ์์๋ค๋ฉด "๋๋จธ์ง ์ปค๋ฎค๋ํฐ"์ ๋ ์ ๋ด์ฌํ๊ณ ๋ฌ๋ผ์ก์ ๋ฐ๋ ํ์ด ๋ด๋ฆฐ ๊ฒฐ์ ์ ์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น?
"๋ฏผ์ฃผ์ ์ธ" ์์ฌ๊ฒฐ์ ๊ณผ์ ์ ์ฑํํ๋ฉด ์ธ๊ธํ ๋ฌธ์ ๊ฐ ์๋์ผ๋ก ํด๊ฒฐ๋๊ณ ์ปค๋ฎค๋ํฐ๋ฅผ "๋ถํ "ํ ์ํ์ด ์ ๊ฑฐ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํ์ง ์์ต๋๋ค. BDFL ๋ชจ๋ธ๋ณด๋ค ๊ฐ์ ๋ ์ ๋ ์์ง๋ง ์์ ์ฑ ์์ฒด๋ฅผ ๋ณด์ฅํ๋ ๊ฒ์ ์๋๋๋ค. ์คํ ์์ค์ ์ญ์ฌ, ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ธ๋ฅ์ ์ญ์ฌ๋ ๋ถ์ผ์น์ ๊ฐ๋ฑ์ผ๋ก ํ๊ดด๋ ๋ฏผ์ฃผ์ฃผ์ ์ฌํ์ ๋ง์ ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
@theckman , @ngrilly ๊ฐ ์์๋ฅผ ๊ฐ์ถ๋ ค๊ณ ๋ ธ๋ ฅํ๋ ๋์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค. vgo ์ ์์ด ์น์ธ๋ ์ค๋น๊ฐ ๋์ง ์์ ๊ธฐ์ ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ต๋ํ ๋นจ๋ฆฌ ์ฌ๊ธฐ๋ก ์๋ ค์ฃผ์ธ์! ์๋ ค์ง ๋ฌธ์ ์ค ์ผ๋ถ๊ฐ ์ ์ ํ๊ฒ ํด๊ฒฐ๋์ง ์์๋ค๊ณ ์๊ฐ๋๋ฉด ์ ํฌ์๊ฒ ์๋ ค์ฃผ์ญ์์ค. ๊ทธ๋ฐ ๊ฒฝ์ฐ๊ฐ ์๋ค๋ฉด ๋๊ฐ "์ ์์ ๋ฐ์๋ค์ผ ์๊ฐ์ด๋ค"๋ผ๊ณ ๋งํ ๊ฒ์ธ๊ฐ? ๋ ๋ฌ ๋์ ๋ ผ์ํ ์๊ฐ์ด ์์์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ์ถฉ๋ถํ์ง ์์ ์ด์ ๊ฐ ์๋ค๊ณ ์๊ฐํ์๋ฉด ๋ง์ํด ์ฃผ์ญ์์ค.
์๋ฌด ์ด์ ์์ด ์ฌ๊ธฐ์ ๋ ๋ง์ ์ ์น๋ฅผ ์ถ๊ฐํ๋ ค๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ชจ๋ ๊ฒ์ด ๋๋ ค์ง ๋ฟ์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ถฉ๋ถํ ์ด์ด ์ข๊ณ ๋ค๋ฅธ ํด๋ฅผ ๋ผ์น์ง ์๋๋ค๋ฉด ๋ง์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๋ํ ์ด์ ๊ฐ ์๋ค๊ณ ์๊ฐํ๋๋ผ๋ - ์ด๊ฒ์ ์ด๊ฒ์ ๋ ผ์ํ๊ธฐ์ ์ ์ ํ ์ฅ์๊ฐ ์๋๋๋ค - ๋์ ๋ฉ์ผ ๋ชฉ๋ก์์ ์ด ํ ๋ก ์ ์์ํ์ญ์์ค.
์ฃผ์ ๋์ ๋๊ธ ํ๋ ๋ ์ฃ์กํฉ๋๋ค ์ฌ๋ฌ๋ถ!
@powerman ์ ๋ฆ๋ฐ์ด์ ์ฃ์กํ๊ณ ์ด์ ์๊ฒฌ์ ์ธ์ฉํ์ญ์์ค.
ํ์ฌ๋ก์๋ vgo ๋ด์์ ๊ธฐ์ ์ ๊ฒฐ์ ๊ณผ ๊ด๋ จํ์ฌ ๊น์ ์ด๊ฒฌ์ด ์๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค. ๋ด๊ฐ ๋๋ ค์ํ๋ ๊ฒ์ ์ํ๊ณ์ ์ปค๋ฎค๋ํฐ๋ฅผ ๋ถ์ด์ํฌ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์ผ๋์ ๋๊ณ ๊ฒฝ์ ์ ์์ด ์๋ฃ๋๊ณ ์คํฌํธ๋ผ์ดํธ๋ฅผ ๋ฐ์ ๋๊น์ง ์๊ฐ์ ์กฐ๊ธ ๋ ํ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๋์์ ์ธ ์ ์์ด ์ค๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์๊ณ , ๋์ ์๊ตฌ๋ ๊ทธ๋ค์ด ์๊ฐ์ด ๋ ๋๊น์ง ํค๋ณด์๊ฐ ์ด๊ฒ์ ๋ฐ์๋ค์ด๋๋ก ํ๋ ๊ฒ์ด์๋ค. ํ๋์ ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ ์์ ๋ํ ๋ง๋ฌด๋ฆฌ ์์ ์ ํ์ฉํ๋ฉด์ ๋จ๊ธฐ ์ฒด๋ฅ๋ฅผ ์๊ตฌํ๋ ๊ฒ์ ๋ฌด๋ฆฌ๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํ์์ด ์ฝ๊ฐ ์ ํ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ์์ ์ด๋ฅผ ์ ํํํ๋ ๊ฒ์ด ์ฌ์ด์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก WIP ์ ์์ ์ผ๋ถ๋ฅผ ๋ณต์ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฃผ์ ํ ๊ฒ์ ๋๋ค. ๋๋ ์์ด๋์ด๋ฅผ ํํธํํ๊ฑฐ๋ ์ ์์ ์ฒ๋ฅ์ ํ์น๊ณ ์ถ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ์ ์์ด ์งํ ์ค์ด๊ณ ๋๊ฐ ์์ ํ๊ณ ์๋์ง ์๋ฉด ์ค๋น๊ฐ ์๋ฃ๋์๋ค๋ ์ ์ธ์ด ์ด๋ฌํ ๊ฒฝ์์ ์ธ ์๊ฒฌ์ ์ต์ ํ๋ ค๋ ์ ๊ทน์ ์ธ ์๋์ฒ๋ผ ๋๊ปด์ก์ต๋๋ค. ๋๋ Gopher๋ก์ ์๋ ๋์ ๊ด์ฐฐํ ํจํด ๋๋ฌธ์ ์ด๋ฌํ ์ฐ๋ ค๋ฅผ ์ ๊ธฐํด์ผ ํ๋ค๊ณ ๋๊ผ์ต๋๋ค. ๋๋ ์ง์ ์ผ๋ก ์ธ์ด, ์ํ๊ณ ๋ฐ ์ปค๋ฎค๋ํฐ๊ฐ ์ฑ๊ณตํ๊ธฐ๋ฅผ ์ํ๋ฉฐ ์ด๋ ์ค๋ก์ง ๊ทธ ๋ชฉํ๋ฅผ ์ผ๋์ ๋๊ณ ์ ๊ธฐ๋๊ณ ์์ต๋๋ค.
ํธ์ง: ๋ช ํํ ํ์๋ฉด ๋จ๊ธฐ ์ฒด๋ฅ๋ 2๊ฐ์ ๋๋ ๊ทธ์ ์ ์ฌํ ๊ฒ์ ์๋ฏธํ์ง ์์ต๋๋ค. ๋๋ ๋ช ์ฃผ๋ฅผ ์๋ฏธํฉ๋๋ค.
@ngrilly ์ฃ์กํฉ๋๋ค. ๊ทํ์ ์๊ฒฌ์ ๋ฌด์ํ๋ ค๋ ๊ฒ์ ์๋๋๋ค. ๋๋ ์ด์ ์ ๊ทธ๊ฒ์ ๋ค๋ฃฐ ๊ณํ์ด์์ง๋ง, ๊ฒฐ๊ตญ ๋ด๊ฐ ์ํ๋ ๊ฒ๋ณด๋ค ๋ ์ฅํฉํ๋ค.
๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฌํ ๊ฒฐ์ ์ด ์ด๋ป๊ฒ ๋ด๋ ค์ง๋์ง์ ๋ํด ๋ค๋ฅธ ํฌ๋ผ์์ ๋ ผ์ํด์ผ ํ ์ฌํญ์ด ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํ ์ปจํ ์คํธ๋ฅผ ์ถ๊ฐํ์ง๋ง, ๋ค๋ฅธ ์ ์์ด ์น์ธ๋ ๋๊น์ง ์ด ์ ์์ ์๋ฝ์ ์ผ์์ ์ผ๋ก ์ค๋จํ๋ ๋ฐ ์ง์คํ๊ณ ์ถ์ต๋๋ค. ๊ณต๊ฐ์ ๊ธฐํ๋ฅผ ๊ฐ์ก์ต๋๋ค.
๋๋ ๋์์ ์ธ ์ ์์ด ์ค๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์๊ณ , ๋์ ์๊ตฌ๋ ๊ทธ๋ค์ด ์๊ฐ์ด ๋ ๋๊น์ง ํค๋ณด์๊ฐ ์ด๊ฒ์ ๋ฐ์๋ค์ด๋๋ก ํ๋ ๊ฒ์ด์๋ค. ... [K]๊ทธ ์ ์์ด ์งํ ์ค์ด๊ณ ๋๊ฐ ์์ ์ค์ธ์ง ์๋ฉด ์ค๋น ์ ์ธ์ด ์ด๋ฌํ ๊ฒฝ์ ์๊ฒฌ์ ์ต์ํ๋ ค๋ ์ ๊ทน์ ์ธ ์๋์ฒ๋ผ ๋๊ปด์ก์ต๋๋ค.
๊ทธ๋ ์ง ์์๋ค๊ณ ์ฅ๋ดํฉ๋๋ค. ์ ๋ ์ฌ๊ธฐ์ ํ์๋ผ์ธ์ ๋ํด ๊ฝค ๋ช ํํ๊ฒ ์๊ณ ์์ต๋๋ค. 2์ ์ค์์ ๋ด ์ฒซ ๋ฒ์งธ ๊ฒ์๋ฌผ์ ๋ฐ๋ฅด๋ฉด vgo ์ ์์ Go 1.11์ ํตํฉํ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค. ๊ฐ๋ฐ ๋๊ฒฐ ์ ๊ทผ. ์งํ ์ค์ธ ๋ค๋ฅธ ์ ์์ด๋ ๋๊ฐ ์์ ํ๊ณ ์๋์ง์ ๋ํด์๋ ์๋ ๋ฐ๊ฐ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋์๊ฒ ์๋ก์ด ์์์ด๋ค. ์ฌ๋๋ค์ด ์ด ์ ์์ ์ฐธ์ฌํ๊ฑฐ๋ ๋ฐ๋ ์ ์์ ํ๊ณ ์ถ๋ค๋ฉด ์ด ์ ์์ด ๊ณต๊ฐ๋ ์ง ํ ๋ฌ ๋ฐ์ด ์ง๋์ ์กฐ๊ธ ๋ฆ์ด์ง๊ณ ์์ต๋๋ค.
๋ถ๋ช ํ ๋ง์๋๋ฆฌ์๋ฉด Golang Weekly์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ณด๊ณ ํ ๋ด์ฉ์๋ ๋ถ๊ตฌํ๊ณ ์ ๋ ์ ์์ ์๋ฝํ ๊ฒ์ผ๋ก ํ์ํ์ง ์์์ต๋๋ค. ๋๋ ๋จ์ง ๊ทธ๋ ๊ฒ ํ ๋๋ผ๊ณ ์๊ฐํ๋ค๊ณ ๋งํ๋ค. ์ฆ, Proposal-Accepted ๋ ์ด๋ธ์ ์ ์ฉํ์ง ์์์ต๋๋ค. ๋ฐ๋ก ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ ๋ํ ์ผ๋ฐ์ ์ธ ํฉ์๊ฐ ์๋์ง ๋จผ์ ํ์ธํ๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ธ ํฉ์๋ ์ ์ด๋ https://github.com/golang/go/issues/24301#issuecomment -384349642์ ์ด๋ชจํฐ์ฝ ์นด์ดํฐ๋ฟ๋ง ์๋๋ผ ์ ๋ฐ์ ์ธ ํ ๋ก ์์ ํ๋จํ ๋ ์์ฉ์ ์ฐฌ์ฑํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋์ฒด ์ ์์ด ์ค๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค.
@theckman , ์ด์ ๊ฐ์ ์ฌ์ค์ ์๊ณ ๊ณ์๋ค๋ฉด ์๋ง ๋น์ ๋ง ์๊ณ ๊ณ์ค ๊ฒ์ ๋๋ค. ์ง๊ธ๊น์ง ์ด ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ๋ ์ฌ๋์ ๋ณธ ์ ์ด ์์ต๋๋ค. Go 1.11์์ ์ด๊ฒ์ ์๋ํ๊ณ ์ถ๋ค๋ Russ์ ์ง์ ์ ์ฒ์๋ถํฐ ๋งค์ฐ ๋ถ๋ช ํ๊ธฐ ๋๋ฌธ์ ๋๊ตฐ๊ฐ๊ฐ ๋์ ์ ์์ ํ๊ณ ์๋ค๋ฉด ์ฝ 2๊ฐ์์ ์๊ฐ์ด ์ฃผ์ด์ก์ต๋๋ค.
๋ํ ๋ฐ๋ํ์ด ์ฃ๋ถ๋ฆฌ ๊ฒฐ์ ์ ๋ด๋ฆฌ์ง ์๋ ์ข์ ์ค์ ์ ๊ฐ๊ณ ์๋ค๋ ์ , ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง ์๊ฐ์ ๋ฐ๋ 1.8์ด ์ณ์ง ์์ ์จ๋ฆฌ์ด์ค๋ฅผ ์ด๋ป๊ฒ ๋นผ๋๋์ง๋ฅผ ๋ณด๋ฉด ๋ฐ์๋ค์ผ ์ ์๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ ๋น์์ ํด์ผ ํ ์ผ์ ํ๋ ค๋ฉด ์ต์ํ ๊ทธ๋ค ์์ ์ ์คํ/์๋ฃจ์ ์ ๊ตฌ์ถํ ์ ์๋๋ก ํ๋ ์์๋ฅผ ์ฃผ์ด์ผ ํฉ๋๋ค.
๊ฒฐ๊ตญ ์ด ์ ์์ ์ฌ์ฉ๋๋ ์ข ์์ฑ ๋ฒ์ ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๊ณ ๋ฆฌ์ฆ ๊ทธ ์ด์์ ์ ๊ณตํฉ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๊ฒ์ ๊ฐ์ ํ ๋ฐฉ๋ฒ์ ์์๋ด๋ฉด ๋ ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค. ์ผ๋ฐ CL ํ๋ก์ธ์ค๋ฅผ ํตํด ์ ์ถํ๊ฑฐ๋ ์์ ์ ๋๊ตฌ๋ฅผ ๋น๋ํ๊ณ ์ปค๋ฎค๋ํฐ์์ ์ฌ์ฉํ๋๋ก ์ ํํ๋ ๊ฒฝ์ฐ์ ๋๋ค. Go ํ์ ์ฌ์ ํ โโimho ๋๊ตฌ์ ์์ฒด ๋ฒ์ ์ ์ ๊ณตํ ์ ์์ผ๋ฏ๋ก ์ด๊ฒ์ด ๋ซํ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๋ณด์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ง๊ธ๊น์ง์ ๋ถ์ด ํ๋์ ๋๋ถ๋ถ์ ๋ฐ๋ํ์ด ์๋ ์ปค๋ฎค๋ํฐ์์ ์ด๋ฃจ์ด์ก๋ค๋ ์ ์ ์ผ๋์ ๋์๊ธฐ ๋ฐ๋๋๋ค. Go Team์๊ฒ ๋๊ตฌ๋ฅผ ๋น๋ํ ๊ธฐํ๋ฅผ ์ฃผ๊ณ ์คํ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ํ๊ฐํ ๋ค์, ์ผ๋ง๋ ๋์์ง์ ๋ํด ์ฐ๊ธฐ๋ณด๋ค ๊ฐ์ ํ๊ณ ์์ผ๋ก ๋์๊ฐ ๋ฐฉ๋ฒ์ ๋ํ ๋ ผ์๋ฅผ ํ ์ด๋ธ์ ๊ฐ์ ธ์ค๋๋ก ํฉ์๋ค.
์ด๊ฒ์ ๋ค๋ฅธ ์ข ๋ฅ์ ๊ฒฝํ ๋ณด๊ณ ์์ ์ผ๋ถ๋ก ๊ณ ๋ คํ์ญ์์ค. ๋ด๊ฐ Alias โโ์ ์์ ๋ํด _๋งค์ฐ_ ๊ฐ๋ ฅํ ๋ฐ๋์์์ ๋ ๊ทธ ์ ์์ ์ดํดํ๊ณ ํ์ฌ ์คํ ์ค์ธ ๊ฒ์ ๋ณด๊ธฐ ์ํ ๋ณด๊ณ ์์ ๋๋ค.
ํธ์ง: ์๋ณธ ๋ฉ์์ง์๋ record of *not* making decisions on a whim
๊ฐ ํ
์คํธ์ฌ์ผ ํ๋ ๋งค์ฐ ๋ถํํ ๋๋ฝ์ด ์์์ต๋๋ค. ๋ถํํ๋ "not" ๋ถ๋ถ์ด ๋๋ฝ๋์์ต๋๋ค. ์ฃ์กํฉ๋๋ค.
์ ์์์ ๋ํ ๊ทผ๋ณธ์ ์ธ ์ฐ๋ ค ์ฌํญ์ ์์ธํ ๊ธฐ๋กํ์ต๋๋ค. ํ ๋ฒ์ ์๊ฐํ ์ ์๋๋ก ์ด ๊ธ์ ๋ง์น๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ์ด๊ฒ์ ๋ณต์กํ๊ณ ๋ฏธ๋ฌํ ์์ญ์ด๋ฏ๋ก ์ด๋ฌํ ๋ฌธ์ ๋ ์ ์ฒด์ ์ผ๋ก ๋ค๋ฃจ์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ถ๊ณผ ์ง์ฅ์ด ๊ทธ๊ฒ์ ์ด๋ ต๊ฒ ๋ง๋ค์์ต๋๋ค.
๋ด๊ฐ Slack์์ ์ด ๊ธ์ ์ธ๊ธํ๊ณ @rsc ์ ์ง์ ๋ ผ์ํ ๋ถ๋ถ์ ์ธ๊ธํ์ง๋ง ์ง๊ธ๊น์ง๋ ์ฌ๊ธฐ์ ๋ํด ์ธ๊ธํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ด๊ฐ ์์ ํ ๋ฐํํ ์ค๋น๊ฐ ๋๊ธฐ ์ ์ ์ด ๊ธ์ ๊ด๊ณ ํ๋ ๊ฒ์ ๋์ฐํ๊ฒ ๊ฑด์ค์ ์ด์ง ์์ ๊ฒ ๊ฐ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ธ๊ธํ ๋ฐ์ ๊ฐ์ด ๋ ๋ฌ์ด ์ง๋ฌ์ผ๋ฏ๋ก ๋ค์ ์ฃผ์ ์๋ฆฌ์ฆ์ ์์์ ์๋ฆฌ๊ธฐ ์ํด ํฐ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ผ ๊ฒ์ ๋๋ค.
(ํธ์ง: ์ด๊ฒ์ @theckman ์ด ์ธ๊ธํ "๋์"์ ๋๋ค)
@sdboyer ์ฌ๋ฌ ๊ฐ์ง ์ฐ๋ ค ์ฌํญ์ด ์๋ค๊ณ ์ธ๊ธํ์
จ์ต๋๋ค. ์ ์ด๋ ์ง๊ธ ๋น์ฅ ๊ทธ๋ค์ ๋ชฉ๋ก์ ๊ณต๊ฐํด ์ฃผ์๊ฒ ์ต๋๊น?
์ ๋ ์์กด์ฑ ์ง์ฅ์ ๋ค๋ฅธ ์์ค(chef, go, npm, ์๊ณก๊ฐ)์ผ๋ก ๋์ด๋ค์ด๋ ์ฌ๋ฌ ์์คํ
์ผ๋ก ์์
ํ๊ณ ์์ผ๋ฉฐ ๊ฒฝํ์ ์ด ์ ์์ go์ ๊ด๋ จํ์ฌ ๋ชจ๋ ์์คํ
์ ๋ํ ์๋ฃจ์
์
๋๋ค.
@theckman , @sdboyer ์ ํผ๋๋ฐฑ๋ง ์ธ๊ธํ ๊ฒ์ธ์ง ํ์ธํ ์ ์์ต๋๊น? ๊ทธ๊ฑด ๋น๋ฐ์ด ์๋์ผ. Sam์ ๋ง ๊ทธ๋๋ก vgo๊ฐ ์ถ์๋ ์ฒซ๋ ์ ๋ํด ์ธ๊ธํ์ต๋๋ค("๋ด ๋ฌธ์ ์ ๋ํด ๋ ์์ธํ ๋ฌธ์๋ฅผ ์์ฑ ์ค์ ๋๋ค" - https://sdboyer.io/blog/vgo-and-dep/). ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ ์์ด ์๋๋ผ ํผ๋๋ฐฑ์ด๋ฉฐ ๋ณต์ํ "๊ธฐํ ์ ์"์ ์ฌ๋ฌ ๋ฒ ์ธ๊ธํ์ต๋๋ค. ๋ ์๊ณ ์๋ ๊ฒ์ด ์์ต๋๊น?
go/types API ์ฌ์ฉ์๋ฅผ ์ํ vgo์ ์๋ฏธ๋ ๋ฌด์์ ๋๊น? go/types ์ง์์ ํ์ฌ ์ํ๋ ๋ฌด์์ ๋๊น?
vgo-aware go/types.Importer ๊ตฌํ์ ์ถ๊ฐํ๊ธฐ ์ํด PR mdempsky/gocode#26์ ๋ฐ์์ง๋ง ์ด๊ฒ์ด ํ์ํ์ง/์ ํ์ํ์ง ํ์คํ์ง ์์ต๋๋ค.
ํ์ํ๋ค๊ณ ๊ฐ์ ํ๋ฉด go/types ๊ธฐ๋ฐ ๋๊ตฌ๊ฐ ๊ฐ๊ฐ ์ด ์ง์์ ๋ค์ ๊ตฌํํ ํ์๊ฐ ์๋๋ก ํ์ค vgo-aware go/types.Importer๋ฅผ ๋ค๋ฅธ ์์น(์: x/vgo ๋๋ x/tools repo)์ ์ถ๊ฐํ ์ ์์ต๋๊น? ?
๋๋ ์ค์ ๋ก vgo ์ธ๋ถ ์ฌํญ์ ๋ฐ๋ฅด์ง ์์์ผ๋ฏ๋ก ์ด๊ฒ์ด ๋จ์ํ "์ํฅ ์์"์ผ ์๋ ์์ง๋ง ์์ go/types์ ๋ํ ์ธ๊ธ์ ์์ต๋๋ค. "vgo go/types golang"์ ๋ํ Google ๊ฒ์๋ ์ ์ฌํ๊ฒ ์ ์ฉํ์ง ์์ต๋๋ค.
๊ฐ์ฌ ํด์.
@mdempsky , ๊ณํ์ vgo-aware(๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ฌธ์ ์ ๋ํด ์บ์ ์ธ์ ๋น๋) ํจํค์ง ๋ก๋, ์๋ง๋ golang.org/x/tools/go/packages๋ฅผ ๊ฐ๋ ๊ฒ์ด์ง๋ง ์์ง ์กด์ฌํ์ง ์์ต๋๋ค. ์ฌ๋๋ค์ ๋ฒ๋ ค์ผ ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋์ ํด๋น ํจํค์ง๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. PR์ ๋ณํฉํ์ง ๋ง์ญ์์ค. ๋๋ ๊ทธ๊ฒ์ ๋ํด ๋ ผํํ๋ค.
@mdempsky ๋ https://github.com/mdempsky/gocode/pull/26 ์์ ๋ต์ฅ์ ํ๋ ค๊ณ ํ์ง๋ง ์ผ๋จ ์ฌ๊ธฐ์์ ๋ต์ฅ์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
https://github.com/mdempsky/gocode/pull/26 ์ ์์ ํ ํ๊ธฐ๋ฉ๋๋ค. vgo
์ ๋ํด ํ์ฌ ํฌ๊ธฐ๋ CL์ ์ฌ์ฉํ๋ ๊ฐ๋
์ฆ๋ช
์ผ ๋ฟ์
๋๋ค.
๋ฐฉ๊ธ @rsc ํ์ ์ ๋ณด์์ผ๋ฏ๋ก https://github.com/golang/go/issues/14120#issuecomment -383994980์์ ์งํ ์ค์ธ ํ ๋ก ๋ ์์์ ๊ฐ๋จํ ์ง์ ํ๊ฒ ์ต๋๋ค.
์์ฝ: ๋ฒ์ ์ ๋ํ ๋ช ๋ ์ ๊ฒฝํ ํ, ๋ง์ง๋ง ์ต์ ์ ์๋๋ ๋งค์ฐ ๋ณต์กํ ์๊ณ ๋ฆฌ์ฆ์ธ sat solver์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฐ ์์ ํ๋ฉด NP-์์ ๊ฒฐ์ ๋ฌธ์ ๊ฐ ๊ด๋ฆฌํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๋งค์ฐ ๋นจ๋ผ์ง๋๋ค.
NPM์ ์ฌ์ฉํ ๊ฒฝํ์ด ๋ง์ Go์ ์๊ท๋ชจ ํ ์ฌ์ฉ์๋ก์ ์ ๋ vgo ์ ์์ ๋งค์ฐ ์ข์ํฉ๋๋ค. FWIW, ์ ๋ vgo๊ฐ go
์ ์ ํ๊ฒ ๊ตฌํ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ๊ณ ์์ผ๋ฉฐ ๋ ๋นจ๋ฆฌ ๋ด ํ๊ณผ ์ ์๊ฒ ๋ ์ข์ต๋๋ค.
๋ด๊ฐ ํน๋ณํ ์ฌ๋์ด ์๋๋ผ, ์์ ํ ๋ฌธ์ ์ ๋ํ ํ ๋ก ์ ๋ณธ ์ดํ๋ก ๋ด๊ฐ ์ฐจ์์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์ฌ๊ธฐ ๋ด ๋ฆฌ๋ทฐ๊ฐ ์์ต๋๋ค.
ํ๋ฉด์ ์ผ๋ก๋ ์ ์ ๋ฌธ์์ ๋ง์ง๋ง ๊ฐ์ ํ ์ _Proposal_ ์น์ ์ด ์์ฃผ ๊ตฌ์ฒด์ ์ด์ง๋ ์๋๋ผ๋ ๊ด์ฐฎ์ ๋ณด์ ๋๋ค(์: Subversion ์ด ์ด๋ ์ ๋ ์ง์๋ ์ ์๋์ง ๋ถ๋ถ๋ช ). ํ ๊ฐ์ง ์์ธ๋ "ํ๋์ ์ ํ๋ ์ฌ์ฉ์ ์ ์ธํ๊ณ ๊ณต๊ธ์ ์ฒด ๋๋ ํ ๋ฆฌ์ ์ฌ์ฉ์ ํ์ฉํ์ง ์์"์ ๊ณต๊ธ์ ์ฒด ๋๋ ํ ๋ฆฌ๊ฐ ๋ชจ๋์ด ์๋ ํจํค์ง์์ ์ ํ ์ง์๋์ง ์๋๋ค๊ณ ๋งํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ ์ต๋๊น?
๋ฐ๋ฉด์ ์ ์์ ํ์ฌ go get
์ ๋ค์ํ ์ด์ ์ ํผ์ํ๋ ํน์ ์ค๊ณ ๋ฐ ๊ตฌํ ๊ฒฐ์ ์ ์์ํฉ๋๋ค. ์์ค์ ์์ฉํ ์ ์๊ณ ์ผ๋ถ๋ ํผํ ์ ์์ง๋ง vgo get
๊ฐ go get
๋ฅผ ๋์ฒดํ๋ ๊ฒฝ์ฐ ์ค๊ณ ๊ณ ๋ ค ์ฌํญ์ผ๋ก ๋ค๋ฃจ์ด์ผ ํ๊ณ ๋
ผ์ํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ์ ํ ๋์ฒดํ์ด ์๋๋ฉฐ vgo
๊ฐ go
๋ก ๋ณํฉ๋์ง ์๊ฑฐ๋ go get
๊ฐ ํ์ฌ ๋๊ตฌ๋ก ๋ถํํด์ผ ํฉ๋๋ค.
_Implementation_ ์น์
์ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. GOPATH์์์ ์์
์ง์์ ๋ฌด๊ธฐํ ๊ณ์๋ ๊ฒ์
๋๋ค.โ ์ด๊ฒ์ ๋ฒ๊ฑฐ๋กญ์ต๋๋ค. ์ฒซ์งธ, ๋ช ๋
๋์ ์
๋ฐ์ดํธ๋์ง ์์ ์ข์ ํ๋ก์ ํธ๊ฐ ๋ง์ด ์์ต๋๋ค. Go 1 ํธํ์ฑ ์ฝ์ ๋๋ถ์ ์ฌ์ ํ ์๋ํ์ง๋ง ๋ง์ ์ฌ๋๋ค์ด go.mod
ํ์ผ์ ์ถ๊ฐํ์ง ์์ ๊ฒ์
๋๋ค. ๋์งธ, ์ข
์์ฑ์ด ์๋ ํ๋ก์ ํธ์ ๊ฐ๋ฐ์๋ ๋ฒ์ ์ ์ ๊ฒฝ ์ฐ์ง ์๋ ๊ฐ๋ฐ์๋ ๋ชจ๋ ํ์ผ์ ์ถ๊ฐํ๊ฑฐ๋ ์๋ก์ด go get
์ํ๊ณ์์ ๊ธฐ๊ถํ๋๋ก ํฉ๋๋ค. ์ด๊ฒ์ ์ํ๋ ๊ฒ์ด ์ ๋นํ ์ ์์ง๋ง ๊ทธ ์ด์ ๋ฅผ ์ค๋ช
ํด ์ฃผ์ญ์์ค. (๋์๊ฒ๋ ๋ถํ์ํ๊ฒ ๋ฒ๊ฑฐ๋ก์ด ๊ฒ ๊ฐ์ต๋๋ค. ์ฐจ๋ผ๋ฆฌ ์ด์ go get
ํฌํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ๋ค๋ฅธ ์ธ์ด์ ํจํค์ง ๊ด๋ฆฌ์๊ฐ ํจ์ฌ ๋ ๋ฒ๊ฑฐ๋กญ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. vgo
๊ทธ๋ค๋ณด๋ค ๋ซ์ง ๋ง ํ์ฌ go get
๋ณด๋ค ๋ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ ์ ์ฒ๋ฆฌํ์ง ๋ชปํฉ๋๋ค. ๊ฐ๋ govendor ์ ๋์์ ๋ฐ์ต๋๋ค.
vgo ๋ go์ ๋ํ ๋์ ์ฃผ์ ๊ด์ฌ์ฌ๋ ์ง์ํ๋ ์ํฌํ๋ก์
๋๋ค. vgo-intro ํฌ์คํธ์์ ํํํ ์ ์ด ์์ต๋๋ค. ์ด๊ฒ์ ์ ์์ _ํธํ์ฑ_ ์น์
์ ๊ด๋ฒ์ํ๊ฒ ์ํ๊ฑฐ๋ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ ์์ง๋ง ์ฌ๊ธฐ์์ ์ ๊ธฐ๋ ๋ค๋ฅธ ์ง๋ฌธ ๋ฐ ๋ฌธ์ ์ ์ผ์นํฉ๋๋ค.์ฐธ๊ณ ๋ก ์ฌ๊ธฐ ๋ด vgo-intro ์ฃผ์ ์ฌ๋ณธ์ด ์์ต๋๋ค.
์ผ๋ถ ์ดํ ๋ฆด๋ฆฌ์ค์์๋ ๋ฒ์ ์ด ์ง์ ๋์ง ์์ ์ด์ go get์ ๋ํ ์ง์์ ์ ๊ฑฐํ ์์ ์ ๋๋ค.
์ ์์ ๋ค๋ฅธ ์ธก๋ฉด์ ๊ด์ฐฎ๊ฒ ๋ค๋ฆฌ์ง๋ง ์ด๊ฒ์ ๋ถํํ ๊ฒ์ ๋๋ค. (๋ง์ฝ ๋ด๊ฐ go ๋๊ตฌ ์ฒด์ธ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํตํฉํ๋ ๊ฒ๊ณผ ๊ณ์ํด์ ๋ฒ์ ์ ์ด ๋๊ตฌ๋ก ์์ ํ๋ ๊ฒ ์ฌ์ด์์ ์ ํํด์ผ ํ๋ค๋ฉด ๋๋ ํ์๋ฅผ ์ ํํ ๊ฒ์ ๋๋ค.) vgo์ ์ฅ์ ์ ์ฌํ ๊ฐ๋ฅํ ๋น๋๋ฅผ ์ฉ์ดํ๊ฒ ํ๊ณ ํ๋ก์ ํธ ์ค๋จ์ ์ง์ฐํ๋ค๋ ๊ฒ์ ๋๋ค. ํ๋ก์ ํธ ์์ฑ์(go.mod ํ์ผ ํฌํจ)๊ฐ ์ง๋ฉดํ ๋๊น์ง ํธํ๋์ง ์๋ ์ ๋ฐ์ดํธ๋ก ์ธํด; ๊ทธ๋ฌ๋ go get์ ์ฅ์ ์ ๋ค์ค ๋ฆฌํฌ์งํ ๋ฆฌ ์ธ๊ณ์ ๋จ์ผ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ด์ ์ ์ ๊ณตํ๋ค๋ ๊ฒ์ ๋๋ค. ์ข ์์ฑ์ ์์ ํ ๋ณต์ ๋ก ์ธํด ์์ ์ ํ๋ก์ ํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฝ๊ฒ ์์ ํ ์ ์์ต๋๋ค(๋ด์ญ ๊ฒ์ฌ, ํธ์ง, ๋ณ๊ฒฝ ์ฌํญ ๋น๊ต, ๋ชจ๋ ๊ฒ์ ๋ํ ์ ์๋ก ๊ฐ์ ๊ทธ๊ฒ์ ๋น๋), ํ์ ์ ์ด์งํ๊ณ (๊ฐ๋จํ ๋ณ๊ฒฝ ์ฌํญ์ ํธ์ํ๊ณ ์ ์ํจ) ์ผ๋ฐ์ ์ผ๋ก ํญ์ ์ธ๊ณ์ ํ์ฌ ์ํ๋ ๊ฐ ํ๋ก์ ํธ์ ๋ ๋ถ๋ถ์ด๋ฉฐ ๋ชจ๋ ๊ฒ์ด ์๋ค๋ ๊ด์ ์ ๋ถ๊ณผํฉ๋๋ค. ๋ค๋ฅธ ๊ฒ์ ์ญ์ฌ๋ค. ์ด ๋ ํนํ ์ ๊ทผ ๋ฐฉ์(์ค์ ๋ชจ๋ ธ๋ฆฌํฌ์งํฐ๋ฆฌ ์ธ๋ถ)์ ๋์ ๊ฒ๋ณด๋ค ์ข์ ๊ฒ์ ๋ ๋ง์ด ํ Go ์ํ๊ณ์ ๋ ํนํ ์ฅ์ ์ด๋ฉฐ ๋ฒ๋ ค์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ์์ ๋ ๋ฏธ๋ฌํ ๋ถ์ ์ ์ธ ๊ฒฐ๊ณผ๋ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์น๋ฃ ๋ถ๊ฐ๋ฅํ๊ณ ์์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ ๋ค๋ ๊ฒ์ ๋๋ค. ํ๋ก์ ํธ๊ฐ ๋ฒ์ ์ ํ๊ทธ๋ฅผ ์ง์ ํ๋ฉด ์ ๋ฒ์ ์ ํ๊ทธ๋ฅผ ์ง์ ํ์ง ์๊ณ ๋ ํฅํ ๋ณ๊ฒฝ ์ฌํญ์ด ์ฌ์ฉ์์๊ฒ ๋๋ฌํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ ์ ์์ต๋๋ค. ์๋ ์์ฑ์๊ฐ ๊ณ์ ํ๊ทธ๋ฅผ ์ง์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒฝ์ฐ์๋ ํฌํฌ ์์ฑ์๋ ์ด์ ๊ทธ๋ค์๊ฒ๋ ํ๊ทธ๋ฅผ ์ง์ ํ๊ฑฐ๋(์์ค ํ๋ก์ ํธ๊ฐ ์ฌ์ ํ ํ์ฑ ์ํ์ธ ๊ฒฝ์ฐ ํนํ ์ด์ํจ) ์ด์ ํ๊ทธ๋ฅผ ์ญ์ ํด์ผ ํฉ๋๋ค.
์ ๋ฐ์ ์ผ๋ก ์ข ์์ฑ ๊ด๋ฆฌ์ ๋ํ ํ์ฌ Go ์ ๊ทผ ๋ฐฉ์์ด ๋ฒ์ ๊ด๋ฆฌ๋ณด๋ค ์ ๋ฐ์ ์ผ๋ก ์ฐ์ํ๋ค๋ ์ ์ ๊ฐ์กฐํ๊ณ ์ถ์ต๋๋ค. ๋ชจ๋ ์ปค๋ฐ์ด ํ์๋ ๊ฒ์ผ๋ก ๊ธฐ๋ํ๋ ํ๋์ ์ด๊ณ ์ญ๋์ ์ด๋ฉฐ ํ์ ์ ์ธ ์คํ ์์ค์ ๋ ์ ๋ถํฉํ๋ฉฐ ๋ฆด๋ฆฌ์ค ์์ค๋ง ๊ฒ์ํ๋ ๊ฒ(๋๋ ๊ฑฐ๋ํ ๋น๊ธฐ์ ์ ์ปค๋ฐ์์ "๋ด๋ถ ๋ณ๊ฒฝ ํตํฉ")๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค(๊ฐ์์ฑ, ํ์ ์ด ์ฌ๊ฐํ๊ฒ ๊ฐ์ํ๊ธฐ ๋๋ฌธ์). ๊ทธ๋ฆฌ๊ณ ์ญ๋์ฑ). ๋ชจ๋ ธ๋ฆฌํฌ์งํ ๋ฆฌ์ ํ์ฌ Go ์ํ๊ณ์์ ๋๋ถ๋ถ์ ํ๋ก์ ํธ์ ๋ฒ์ ์ด ํ์ํ์ง ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ฌผ๋ก ์ด ์ ๊ทผ ๋ฐฉ์์ ๊ถ๊ทน์ ์๋๋ฉฐ ๋จ์ ์ด ์์ผ๋ฉฐ ๋ฒ์ ์ด ์๋ ํ๋ก์ ํธ๋ ์ง์ํ๋ ๊ฒ์ด ์ค์ํ์ง๋ง ๋ฒ์ ์ด ์๋ ์ฌ๋์๊ฒ ํผํด๋ฅผ ์ ํ๋ฉด ์ ๋ฉ๋๋ค.
์์ฝํ๋ฉด ํ์ฌ go get
(๋ณด์กฐ ๋๊ตฌ ํฌํจ, ์: godef
)๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ํฌํ๋ก๋ฅผ ์ง์ํฉ๋๋ค.
์ข
์์ฑ์ ์์ค ์ฝ๋๋ ๊ณ์ ํธ์งํ ์ ์๋ค๊ณ ๊ฐ์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด godef
๋ _์ฐ๊ธฐ ๋ฐฉ์ง๊ฐ ๋์ง ์๊ณ _๋น๋ ์ค์ ์ฌ์ฉ๋๋ _ํ์ผ_์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ vgo
์ ๋ค๋ฅธ ๋ ์ ์์ ์ด๊ธ๋ฉ๋๋ค. ๋ ๋ฒ์งธ ์์ ๊ณผ ๊ด๋ จํ์ฌ #24915๋ VCS ๋๊ตฌ์ ๋ํ ์ง์์ ์ฐ์ฅํ์ง๋ง ์ฌ์ ํ ์ค๋จํ๋ ค๋ ๋ชฉํ๋ฅผ ์ ์ธํฉ๋๋ค. ์ํฌํ๋ก๋ ์ข
์์ฑ์ด VCS์์ ์ฒดํฌ์์๋ ๋ฟ๋ง ์๋๋ผ ์ฒดํฌ์์์ด ๊ฐ๋ฐ์์๊ฒ ์ ์ฉํด์ผ ํ๋ฉฐ(์: .git
๊ฐ ์ ๊ฑฐ๋ git ์ฒดํฌ์์์ด ์๋ ์์ git ์ฒดํฌ์์์ด ์๋) ๋น๋ ์ค์ ์ฌ์ฉ๋์ด์ผ ํฉ๋๋ค. ํ์ง๋ง vgo
๋ ์ด ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ์ง ์์ ์ ์์ต๋๋ค. ์ธ ๋ฒ์งธ ์์ ์ ๊ดํด์๋ vgo-intro ์ฃผ์์์ ๊ทธ ๊ฐ์น๋ฅผ ์ ๋นํํ์ง๋ง vgo
๋ ๊ทธ๊ฒ์ ์์ ํ ํฌ๊ธฐํ ๊ฒ ๊ฐ์ต๋๋ค.
Go ๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ๋ ํ์ฌ ์ํฌํ๋ก์ ๋ํ ์ง์์ ์ค๋จํ ํ์๊ฐ ์์ผ๋ฉฐ Go ์์ฝ์์คํ
์์ ์์
ํ๋ ๊ณ ์ ํ ์ด์ ์ ์ ์งํ๊ณ go get
์ ๋ํ ์ ์ ํ ๋์ฒด๊ฐ ๋๊ธฐ ์ํด ์ค๋จํด์๋ ์ ๋ฉ๋๋ค. vgo
์ ๋์์ธ์ ์ด๊ฒ์ ์ด๋ ต๊ฒ ๋ง๋ค์ง๋ง ๋ถ๋ช
ํ ๋ถ๊ฐ๋ฅํ์ง๋ ์์ต๋๋ค. ๋ฐ๋ฉด์ ์ ์์์ _Proposal_ ์น์
์ ํ์ฌ ์ํฌํ๋ก์ ๊ฑฐ์ ํธํ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ธ ๋ฒ์งธ ์์ (์ต์ ๊ฐ์ ํ ํ์ธ)์ ์ง์ํ๋ ๋ฐ ๋์
๋๋ ์ ์ผํ ๋ฌธ์ ๋ ํฐ ๋ฌธ์ ์
๋๋ค. ๋ชจ๋ โฅv2.0.0์ ๋ํด master
์์ ํ์ธํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ ๋ค๋ ๊ฒ์
๋๋ค. master
์ด ๋ค๋ฅธ ์ฃผ์ ๋ฒ์ ์ ์์ผ๋ฏ๋ก ์ง์ ๋ ๋๋ก ์ฒดํฌ์์ํด์ผ ํ๋์ง ์ฌ๋ถ. ์ด๊ฒ์ ๋ชจ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ ์ผ๋ก master
์์ ์ฒดํฌ ์์๋๊ณ gopkg.in์ ํญ๋ชฉ์ ์ผ์นํ๋ ํ๊ทธ ๋๋ ๋ถ๊ธฐ์์ ์ฒดํฌ ์์๋๊ธฐ ๋๋ฌธ์ gopkg.in ์ด ์๋ ํ์ฌ go get
์ ๋ํ ๋์ ์ด ์๋๋๋ค. ๊ทธ๋ฌ๋ vgo
๋ ์ด ๊ตฌ๋ถ์ ํ๋ฆฌ๊ฒ ํ๊ณ gopkg.in ๋ชจ๋ธ์ ๋ชจ๋ ํจํค์ง์ ํผ๋จ๋ฆฝ๋๋ค. (๊ฒ๋ค๊ฐ ๋ถ๊ธฐ ์ผ์น๋ฅผ ์ค์งํฉ๋๋ค.) ์ฌ์ค์ ํ์คํ๊ฒ ๋งํ ์ ์๊ณ ์ง์ ๋ ์ฃผ ๋ฒ์ ์ ์ต์ ๊ฐ์ ํ์ ์ป๋ ๋ฐฉ๋ฒ์ ์ถ์ธกํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค.
๋์ณค์ ์๋ ์์ง๋ง ์ด ์๋๋ฆฌ์ค์์ vgo๋ ์ด๋ป๊ฒ ์๋ํ ๊น์?
ํ์ฌ์ ๋ฐฉ๋ฒ์ผ๋ก ๋๋ ๋ณ๊ฒฝ์ ์ํํ๊ณ ์๋น์ค A์ ์๋น์ค B๋ฅผ ์ปดํ์ผํ๊ณ lib X์ ๋ํ ๋ด $GOPATH์ ์๋ ๋ชจ๋ ๊ฒ์ ์ ํํ๊ณ ์์ ํ ๋ค์ ์ฃผ์ semver ๋ฒํ๋ก lib X๋ฅผ ํธ์ํ ๋ค์ ๋ ์๋น์ค๋ฅผ ๋ชจ๋ ํธ์ํฉ๋๋ค. A์ B๋ Gopkg.toml
์์ lib X์ ์๋ก์ด ์ ๊ณต์ ์ฌ์ฉํ๋ผ๊ณ ๋งํฉ๋๋ค.
์ด์ vgo๊ฐ ์ธ์๋๋ฉด ๋ด ์๋น์ค์ go build
๊ฐ github์์ ์กด์ฌํ์ง ์๋ ์ ๋ฒ์ ์ lib X๋ฅผ ์ฐพ์ผ๋ ค๊ณ ์๋ํ๊ณ ๋ชจ๋ ์ข
๋ฅ์ ๋ฌธ์ ๋ฅผ ์์ธกํ ์ ์์ต๋๋ค.
๊ทธ๋์, ๋ด๊ฐ ๋ช ๋ฐฑํ ๊ฒ์ ๋์น๊ณ ์์ต๋๊น?
์ด๋ฌํ ์ ํ์ ํญ๋ชฉ์ ๋ํด replace ์ง์๋ฌธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
2018๋ 4์ 30์ผ ์์์ผ, 12:15 Antoine [email protected] ์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋์ณค์ ์๋ ์์ง๋ง ์ด ์๋๋ฆฌ์ค์์ vgo๋ ์ด๋ป๊ฒ ์๋ํ ๊น์?
- ๋๋ lib X์ ๋ฐ๋ผ ์๋น์ค A์ ์๋น์ค B์์ ๋ชจ๋ ์์ ํฉ๋๋ค.
๋ ์์ )- lib X์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ํ์ํฉ๋๋ค.
ํ์ฌ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ณ๊ฒฝ ์์ ์ ์ํํ๊ณ ์๋น์ค A๋ฅผ ์ปดํ์ผํ๊ณ
์๋น์ค B, ๊ทธ๋ค์ lib X์ ๋ํ ๋ด $GOPATH์ ์๋ ๊ฒ์ ์ ํํ๊ณ , ๋๋ ๋ฌผ๊ฑด์ ๊ณ ์นฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ฃผ์ semver ๋ฒํ๋ก lib X๋ฅผ ํธ์ํ ๋ค์ ์๋น์ค A์ B๋ฅผ ๋ชจ๋ ํธ์ํฉ๋๋ค.
Gopkg.toml์์ lib X์ ์๋ก์ด ์ ๊ณต์ ์ฌ์ฉํ๋ผ๊ณ ๋งํฉ๋๋ค.์ด์ vgo๊ฐ ์ธ์๋๋ฉด ๋ด ์๋น์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ํ์ฌ ๋น๋ฅผ ์ฐพ์ผ๋ ค๊ณ ์๋ํฉ๋๋ค.
github์์ lib X์ ๊ธฐ์กด ์ ๋ฒ์ ๊ณผ ๋ชจ๋ ์ข ๋ฅ์
๊ทผ์ฌ๊ฑฐ๋ฆฌ.๊ทธ๋์, ๋ด๊ฐ ๋ช ๋ฐฑํ ๊ฒ์ ๋์น๊ณ ์์ต๋๊น?
โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/golang/go/issues/24301#issuecomment-385499702 ๋๋ ์์๊ฑฐ
์ค๋ ๋
https://github.com/notifications/unsubscribe-auth/AAuFsfnD8_kbUj8fSXvGgeN77ki6KYM6ks5tt2LLgaJpZM4Sg3bp
.
@kardianos ์, ํ์ง๋ง ์ฌ์ ํ ์๋ํ๊ธฐ ์ํด lib ๋ณ๊ฒฝ ์ฌํญ์ ํธ์ํด์ผ ํ๋ค๋ ์๋ฏธ์ธ๊ฐ์?
ํธ์ง: ๋์ฒด ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค(https://github.com/golang/go/issues/24110). ์ด๋ ์ข์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ด๊ฒ์ด ์ฌ๋ฌ ๋ฒ ์ ์ง๋ฅด๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ์์ธกํ ์๋ ์์ต๋๋ค.
go.mod.replace
๋๋ ์ด์ ์ ์ฌํ ๊ฒ๊ณผ ๊ฐ์ ์ถ๊ฐ ํ์ผ์ ์์ฑํ์ฌ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฌ์ ์๋ฅผ ์ ์ํ๊ณ gitignoreํ ์ ์๋๋ก ํ ๊ณํ์ด ์์ต๋๊น?
@primalmotion ์๋ชป๋ ์ปค๋ฐ์ ๋ฐฉ์งํ๋ ค๋ฉด ์๋ง๋ git hook์ ์ฌ์ฉํด์ผ ํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ ๋ต์ ๋๋ฌด ์์ฃผ ์ด ์์ ์ ์ํํ์ง ์๋ ๊ฒ์ ๋๋ค(๋ก์ปฌ ๊ฒฝ๋ก๋ก ๊ต์ฒด). ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋๋ฌด ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋์ด ์์ผ๋ฉด ๋ณ๋์ ์ ์ฅ์์ ์์ผ๋ฉด ์ ๋ฉ๋๋ค(๋ฐ๋ผ์ ๋์จํ๊ฒ ๊ฒฐํฉ๋ ์ฒ). ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ์๋น์ค์ ํ์ฌ ๊ตฌํ์ ๊ณ ๋ คํ์ง ์๊ณ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ , ํ ์คํธ ๋ฐ ๋ฆด๋ฆฌ์คํ ์ ์์ด์ผ ํฉ๋๋ค. ํนํ vgo๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ์๋น์ค ๋ชจ๋ ์ด์ lib ๋ฒ์ (์ด์ ์ ์ฌ์ฉํ๋)์ ๊ณ์ ์ฌ์ฉํ์ฌ ํด๋น lib์ ์ต์ ๋ฒ์ ์ผ๋ก ์๋ ์ ๋ฐ์ดํธํ ๋๊น์ง ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. 1๋ ์ ํ ๋ฒ ๋ก์ปฌ ๊ฒฝ๋ก์ ๋ํ ๊ต์ฒด๋ฅผ ๊ฐ๋ ์ปค๋ฐํ๋ ๊ฒฝ์ฐ - ํฐ ๋ฌธ์ ๋ ์๋์ง๋ง CI๊ฐ ์ด๋ฅผ ์์์ฐจ๋ฆฌ๊ณ ๋ช ๋ถ ์์ ์์ ํ ์ ์๋๋ก ๋์์ค๋๋ค.
go.mod.replace
๋ฒ์ ์ด ์๋ @primalmotion ์ ์ฌํํ ์ ์๋ ํ๋ก์ ํธ๋ฅผ ์ปค๋ฐํ ์ ์์ต๋๋ค. ๋์ go.mod
์ ๊ต์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ์ฌ์ฉํ๊ณ ํ
์คํธํ๋ ๊ฒ์ ์ ํํ ์ปค๋ฐํ ์ ์์ต๋๋ค.
๊ต์ฒด๋ก ์ปค๋ฐํ๋ ๊ฒ์ ์ค์์ผ ์ ์์ง๋ง ์ด๋ฅผ ์ธ์งํ๊ณ ์์ ํ ์ ์์ต๋๋ค.
๋๋ ์๋ฐ์ ์ผ ์ ์์ต๋๋ค. ์ ๋ ํ์ ๋ชจ๋๋ก ์ํํฉ๋๋ค. ํ๋ก์ ํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํจ๊ป ์์
ํ ๋ ๊ด์ฐฎ๊ณ ํ์ ๋ชจ๋์ ์ปค๋ฐํ๋ฉด ์ฌํํ ์ ์์ต๋๋ค. ์ ๋ ํ์ด์ฌ์์ ์์ฃผ ํ๊ณ Go์์๋ ๋์ณค์ต๋๋ค. vgo๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ๊ทธ๋ ๊ฒ ์์
ํ ์ ์์ด ๊ธฐ์ฉ๋๋ค. _(๋์ ๋์ ์์ด๋ก ํด๊ฒฐ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค, ์ฃ์กํฉ๋๋ค)._
์, ๋ฌธ์ ๋ ์ฐ๋ฆฌ๊ฐ ๊ด์ฌ์ ๊ฐ๊ธฐ๋ก ๊ฒฐ์ ํ ๋๊น์ง(์ฆ, ๋ฆด๋ฆฌ์ค๋ฅผ ์ค๋นํ ๋๊น์ง) ์ฌํ ๊ฐ๋ฅํ ๋น๋์ ๋ํด ๊ด์ฌ์ ๊ฐ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋ฐ์ดํธ๊ฐ ๋จ์ง ์ฒดํฌ์์, ์ฌ๊ตฌ์ถ, ํ ์คํธ ์คํ์ธ ๋งค์ฐ ๋ฏผ์ฒฉํ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ ์๋น์ค์ ๋ง์คํฐ ๋ธ๋์น์์ Gopkg.lock์ ์ปค๋ฐํ์ง ์๊ณ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ๊ณ ์ ๋ฒ์ ๊ณผ ์ฃผ์ ์ ์ฝ ์กฐ๊ฑด์ด ์๋ toml๋ง ์ปค๋ฐํฉ๋๋ค. ๋ฆด๋ฆฌ์ค ๋ธ๋์น๋ฅผ ์์ฑํ ๋ค์ Gopkg.lock์ ์ปค๋ฐํ ๋ค์์๋ง ์ฌํ ๊ฐ๋ฅํ ๋น๋๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค(์ด ์์ ์ ci์์ ์ํ).
Vgo๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์๋
๋์ ๊ตฌ์ถํ ๋ชจ๋ ์ํฌํ๋ก๋ฅผ ๊นจ๋จ๋ฆฝ๋๋ค. ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฝ๊ฐ์ ์ธ์ ๋๋ฒ๊น
๊ณผ ๊ฐ์ ๋ฉ์ฒญํ ๊ฒ์ ์๋ํ๊ฑฐ๋(์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ด๊ฒ์ ํ๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ง๋ง์ ํ์ง ์์ต๋๋ค. :)) ๋๋ ์ฝ๊ฐ์ ์ต์ ํ๋ฅผ ์๋ํ๋ ค๋ฉด ์์ญ ๊ฐ์ ์๋น์ค๋ฅผ ์ดํด๋ณด๊ณ replace
๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
vgo๊ฐ ์ฐ๋ฆฌ์๊ฒ ๋์์ด ๋ ์ ์๋ ๊ฒ:
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ๊ต์ฅํ๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๋ฅผ ์ํด ์๋ํ๊ธฐ๋ฅผ ์ ๋ง๋ก ์ํฉ๋๋ค.
go 1.11์์ ํ
์คํธํ ๊ฒ์ด ์์ต๋๊น(์ง๊ธ์ ์ ์ง ์ํ์
๋๋ค) ๋๋ go 1.12์์ ํ
์คํธํ ์ ์์ต๋๊น?
์ด๋ฏธ ์คํ์ฉ์ผ๋ก ํ์๋์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ ๊ฐ๋ฐ์์ ๋ ๋ง์ ์ฌ๋๋ค์ด ํ
์คํธํ ์๋ก ๋ ๊ฐ์น ์๋ ํผ๋๋ฐฑ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ฒ์ ์ด ์ง์ ๋ ํจํค์ง์ ๊ด๋ จ๋ ๋ฌธ์ ์ ๋ํด ์ฝ์์ต๋๋ค. ํ๋์ ๊ฐ๋จํ ์๋๋ฆฌ์ค์ ๊ฒฝ์ฐ foo-plist
๋ผ๋ plist ๊ตฌ๋ฌธ ๋ถ์์ dep๋ฅผ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ์
๋๋ค. ๊ตฌ๋ฌธ ๋ถ์์ ๊ฒฐ๊ณผ๋ก ํด๋น plist ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ฒด์ ์ผ๋ก ํน์ ์ ํ์ ๋
ธ์ถํฉ๋๋ค. ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ v2๋ก ์
๊ทธ๋ ์ด๋๋๊ณ ํด๋น plist ์ ํ์ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๊ฐ์ ๋ก v2๋ก ์
๊ทธ๋ ์ด๋๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด ์ ์์ ์ธ์ ํ์ ํด๋น plist ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ v1 ๋ฐ v2๋ฅผ ๋ชจ๋ ์ง์ํ๋๋ก ํ๋ ค๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ๊ฐ ์๋นํ ์ด๋ ค์ด ๊ฒ ๊ฐ์ต๋๋ค.
์๋ฅผ ๋ค์ด npm์์ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ >=1.0.0|>=2.0.0
๋ผ๊ณ ๋งํ๋ ํผ์ด ์ข
์์ฑ์ ๊ฐ๋จํ ์ง์ ํ ์ ์์ผ๋ฉฐ ์ฌ์ฉํ plist ๋ฒ์ ์ ๊ฒฐ์ ํ๋ ๊ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ foo-plist
์ ์ฌ์ฉ์๊ฐ plist
์ ์์กดํ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋ plist์ v1 ๋ฐ v2์ ๋ง์กฑํ๋ฉด ์ฌ์ฉ์๋ ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ํํ ์ง ์ ํํ ์ ์์ต๋๋ค. ์ค์ ๋ก ์์
ํฉ๋๋ค. ๋ ์ค์ํ ๊ฒ์ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋ plist ์ ํ์ ๋ด๋ณด๋ด๋ฉด ํด๋น ์ ํ์ด ์ค์ ๋ก ํธํ๋๋ค๋ ๊ฒ์
๋๋ค.
๊ทธ๋ค์ด ๋ค๋ฅธ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๊ฐ ๋๋ฉด ์ด๋ฅผ ์ง์ํ ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@itsnotvalid foo-plist.2๋ foo-plist๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ ํ ๋ณ์นญ์ ์ฌ์ฉํ์ฌ ํด๋น ์ ํ์ ๋ค์ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค. ์ด ๊ธฐ์ ์ ๋ํ ์ข์ ์ค๋ช ์ https://github.com/dtolnay/semver-trick ์์ ์ฐพ์ ์ ์์ต๋๋ค.
Aram์ ์ฌ๊ธฐ ์์ ์ด์ ๋ฆด๋ฆฌ์ค ๋ถ๊ธฐ(๋๋ ๋๋ ํ ๋ฆฌ)์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐฑํฌํ ํ๋ ๊ฒ์ด ์ด๋ ต๋ค๋ ์ ์ ์ง์ ํ์ต๋๋ค. ๋์ผํ ๋ชจ๋ ๋ด์ ์์ค์ ๋ํ "์์ฒด" ์ฐธ์กฐ์๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์ ๋ฒ์ ๋ ํฌํจ๋๊ธฐ ๋๋ฌธ์ ํจ์น๋ฅผ ์์ ํ ๊ฐ์ ธ์ค์ง ์๊ฑฐ๋ ์ค์๋ก ๋ฒ์ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ๋์ ํ ์ ์์ต๋๋ค.
์๊ฐ?
๋ถ๋ช ํ ๋ง์๋๋ฆฌ์๋ฉด, ์ ๋ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๋ชจ๋ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ์ ์ ์ ์ผ๋ก ์ต์ํฉ๋๋ค. ๋๋ Russ์ ์ฃผ์ฅ์ด ๋งค์ฐ ์ค๋๋ ฅ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ชจ๋ ๋ด ๊ฐ์ ธ์ค๊ธฐ์ ๋ํด์๋ ๋ช ํํ์ง ์์ต๋๋ค. ๋น๋์์ ์ฃผ์ด์ง ํจํค์ง์ ๋ํด ๋จ์ผ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ ๋ชฉํ๋ฅผ ์ดํดํ์ง๋ง(๊ต์ฐจ ๋ชจ๋๋ก ๊ฐ์ ธ์ค๋ ์์ฒด ๋ชจ๋ ๋ด์์ ๊ฐ์ ธ์ค๋ ์๊ด์์ด), ์ ํํด์ผ ํ๋ค๋ฉด ์ด ์์ฑ์ ์ ์งํ๋ ๊ฒ๋ณด๋ค ์๋์ ๋ฌธ์ . (๋ํ ๋น๋ ์์คํ ์ด ์ต์์ ๋ชจ๋์ ๋น๋ํ ๋ ๋ชจ๋ ํ์ผ์์ ๋ฒ์ ์ ์ฃผ์ ํ๊ณ ๋ชจ๋ ์ข ์์ฑ์ ๋ค์ด๋ก๋ํ ํ ๋ง ๊ทธ๋๋ก ์์ค์ ์ฃผ์ ํ ์ ์๋ค๊ณ ์์ํฉ๋๋ค)
@rsc ์์ผ๋ก ๋์๊ฐ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น? ๋๋ ์ด๊ฒ์ ๋ง๋ ์ค์ํ ๊ฒ์ ๋ณด์ง ๋ชปํฉ๋๋ค.
๋ด๊ฐ ์ด๊ฒ์ ๋ํด ์ฐธ์์ฑ์ด ์๋ ๊ฒ ๊ฐ๋ค๋ฉด ์ ๊ฐ์ด์ง๋ง vgo ์ง์์ ์ํด ์์ ํ๋ ๋๊ตฌ๊ฐ ์ ์ ๋ ๋ง์์ง๊ณ ์ด๋ฅผ ์ง์ฐํ ์๋ก ๋๊ตฌ ๊ด๋ฆฌ์์ธ ์ฐ๋ฆฌ์๊ฒ ์ด ๋ฌธ์ ๋ฅผ ์๋ค ๊ฐ๋ค ํ๋ ๊ฒ์ด ๋ ์๋ง์ด ๋ ๊ฒ์ ๋๋ค. .
@sdboyer ๋ ์ด๋ฒ ์ฃผ์ ์์ ์ ๊ธ์ ๊ฒ์ํ ๊ณํ ์ ๋๋ค. ๋๋ ๊ทธ๋ค์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด ๊ณตํํ๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
๋ชจ๋, ํ๋ก์ ์ง์, ๋ฒ์ ๊ด๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ ํญ๋ชฉ๋ ํฌํจํ๋ ์ ์ฒด ์ ์์ ์ฐจ๋จํ๋ ์์ธ์ด ๋์ง ์์์ผ ํ๋ ์ข ์์ฑ ๋ฒ์ ์ ์ ํํ๊ธฐ ์ํ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ค์ ์ด๋ฌํ ์ข ์์ฑ์ ๋ค์ด๋ก๋ํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ /๋ณ๊ฒฝํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ฉด ๋ค๋ฅธ ์ํฅ ์์ด ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.
๋๋ @dlsniper ์ ๋์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋๊ฒฐ ์ํ์ ์์ผ๋ฉฐ vgo ๋์์ธ์ด ๋์ ๋ ์ง ๊ฑฐ์ 3๊ฐ์์ด ์ง๋ฌ์ต๋๋ค. 1.11์ ๋ํ ์์ ์ด ๋ ์ง์ฐ๋๋ฉด 1.12๋ก ๋ค์ ๋ฐ๋ ค๋ ๊น ๊ฑฑ์ ์ ๋๋ค.
์๋ฆฌ์ฆ๊ฐ ๋ ์ฒซ ๋ฒ์งธ ๊ฒ์๋ฌผ์ด ๋๋์ด ๊ณต๊ฐ๋์์ต๋๋ค . ๊ฒ์ํ๋ ๋ฐ ์๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๊ณ ์๋ฆฌ์ฆ๊ฐ ์ข ๋ฃ๋๊ธฐ๊น์ง ๋ ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ด๋ผ๋ ์ ์ ๋ํด ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ ์ฒซ ๋ฒ์งธ ๊ฒ์๋ฌผ์ ์ ์ฒด ์๋ฆฌ์ฆ์์ ๋ค๋ฃจ๋ ค๋ ์ฃผ์ ์ ๋ํ ๊ด๋ฒ์ํ ๊ฐ์๋ฅผ ์ ๊ณตํ๋ฏ๋ก ์ฌ๋๋ค์ ์ต์ํ ๋ฒ์๋ฅผ ์ดํดํ ์ ์์ด์ผ ํฉ๋๋ค.
๊ฐ๋จํ ๋งํด์, vgo์๋ ํ๋ฅญํ ๊ฒ๋ค์ด ๋ง์ด ์์ผ๋ฉฐ, ๊ทธ ์ค ๋ง์ ๋ถ๋ถ์ด ์ปค๋ฎค๋ํฐ๋ก์ ์ค๋ซ๋์ ์ํด์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ MVS๊ฐ ๋ชฉ์ ์ ๋ถ์ ํฉํ๋ฉฐ ํ๋ก๋์ ์ ์ ํฉํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ด๋ฌํ ๋ง์ ๊ฒ๋ค์ด MVS๋ฅผ ๋๋ฌ์ธ๊ณ ์๋ค๋ ๊ฒ์ ์ ๊ฐ์ค๋ฌ์ด ์ผ์ ๋๋ค. ํนํ ๊ทธ ์ค ๊ทนํ ์ผ๋ถ๋ง MVS์ ๊ตญํ๋ ๊ฒฝ์ฐ์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ์ ๋ ๋ธ๋ก๊ทธ ์๋ฆฌ์ฆ ์ ์ฒด์์ ๋น๊ต ๋ชฉ์ ์ผ๋ก ์ฐธ์กฐ๋๋ ๋์ฒด ์ ๊ทผ ๋ฐฉ์์ ์ฐ๊ตฌ ์ค์ด๋ฉฐ ์ต์ข ๊ฒ์๋ฌผ์์ ์ค๋ช ํ ์์ ์ ๋๋ค.
๋ด๊ฐ ์์
ํ๊ณ ์๋ ๋์ฒด ํต์ฌ ์๊ณ ๋ฆฌ์ฆ์ go.mod
๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๊ฒ์ด ๋งค์ฐ ๊ฐ๋จํ๋ฏ๋ก ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ผ๋ก ์์ํ์ง ์์ต๋๋ค. ์ข
์์ฑ์ ์ ์ด์ ํ์๋ฅผ ํฌํจํ๋ ๋ณ๋์ ์ ๊ธ ํ์ผ์ด ์ถ๊ฐ๋์์ผ๋ฉฐ ๋น๋ ๋ชฉ๋ก ์๊ณ ๋ฆฌ์ฆ์ด ์๋๋ผ ์ปดํ์ผ๋ฌ๊ฐ ์ฝ๋ ๋ด์ฉ์ด ๋ฉ๋๋ค. (์ ๊ธ ํ์ผ์ ๋ํ ๋ค๋ฅธ ์ด์ ๋ ์์ง๋ง ํฌ์คํธ 5์ ์์ ์์ ์
๋๋ค.) ์ต์ํ, ๊ทธ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ํ์ถ ๋ฐธ๋ธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ MVS๊ฐ ๊ด์ฐฎ๋ค๊ณ ํ๋ฉด ์์๋ฐฉํธ์ผ๋ก๋ผ๋ ๋ค์ด๊ฐ ๊ด์ฑ์ ์ด์ ์ ์ป์ต๋๋ค. ๊ทธ ์์ ์์ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด @rsc ์ ๋ถ์ ์ ํ๋ค๋ ๊ฒ์ ์ฆ๋ช
ํด์ผ ํ๊ณ (์ฌ์ค ๊ทธ๋ ๊ทธ๊ฒ์ด ๋ณํฉ๋๊ธฐ ์ ์ ์ด๋ฏธ ํ์ค์ผ๋ก ์ค์ ํ์ง๋ง) ์ด๊ฒ์ด ํ์ฌ go get
์ ๋ํ ์ง์ ํ ์ง์ ์ด๋ผ๊ณ ๋ฏฟ์ต๋๋ค.
์ค๋๋ ๋ง์ ํ๋ก๊ทธ๋๋จธ๋ ๋๋ถ๋ถ ๋ฒ์ ๊ด๋ฆฌ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ง ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค.
์์ ๋ชจ๋ ์ฌํญ์ ๊ฐ์ํ ๋ ์ง๊ธ ์งํํ๋ฉด "์ ๋ค๋ฆญ, 2๋ผ์ด๋"๊ฐ ์์ฑ๋ ๊ฒ์ ๋๋ค. ๋จ, ์ด๋ฒ์๋ ๊ธฐ๊ณ๊ฐ ์๋๋ผ ์๋ก ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ์ ์ดํ๋ โโ๊ท์น์ ๊ดํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ MVS๊ฐ ๊ด์ฐฎ๋ค๊ณ ํ๋ฉด ์์๋ฐฉํธ์ผ๋ก๋ผ๋ ๋ค์ด๊ฐ ๊ด์ฑ์ ์ด์ ์ ์ป์ต๋๋ค.
ํ์ฌ dep์๋ ๊ด์ฑ์ ์ด์ ์ด ์์ต๋๋ค(๋ ๋ค ๋ค๋ฅธ ์ธ์ด์ ๋ฒ์ ๊ด๋ฆฌ์์ ๋์ผํ ์ ์ ์ ๊ตฌ์ถ๋๊ณ ๊ด๋ฒ์ํ ์ปค๋ฎค๋ํฐ ์ง์์ผ๋ก ๋ ์ค๋ ์กด์ฌํจ). ์ ์ด๋ ๋์๊ฒ๋ vgo ์ ์์ด ์ข์ ์ฃผ์ฅ์ ์ํด ๋ท๋ฐ์นจ๋๋ ์ข์ ๋์์ธ์ด ๋จ์ผ๋ก์จ ์ด ๊ด์ฑ์ ๊ทน๋ณตํ ์ ์์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก Go์ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์ง์ฐ๋๋๋ผ๋ ์๊ดํ์ง ์์ต๋๋ค. ๋น ๋ฅธ ๊ฒ๋ณด๋ค ์ฌ๋ฐ๋ฅธ ์ผ์ ํ๋ ๋ฐ ์ฐฌ์ฑํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ด๋ ํ์ฌ๋ก์๋ vgo๊ฐ ์ฌ์ ํ ๋์๊ฒ ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ผ๋ก ๋ณด์ ๋๋ค(๊ทธ๋ฆฌ๊ณ AIUI ์ปค๋ฎค๋ํฐ์ ๋ง์ ์ฌ๋๋ค์ ์ด๊ฒ์ ๊ธด๊ธํ ๋ฌธ์ ๋ก ์ธ์ํฉ๋๋ค).
@mvdan ์ด ๋ณ๊ฒฝ์ ์ํฅ์ด ์๋ ๊ฒ์ด ์๋๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ์ด๊ฒ์ ์ํ์ง๋ง, ํนํ ๊ทธ๋ฌํ ์์ฌ์ ์ ๊ธฐํ ์ฌ๋์ด ๋ฌธ์ ์ ๋ํด ๋ง์ ์๊ฐ์ ๋ถ๋ช ํ ํ์ ๋ ์์ฌ์ ์ ์ฌ์ฐ๊ธฐ ์ํด ์๊ฐ์ ๋ ํฌ์ํ๋ ๊ฒ์ด ํ๋ช ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
1.11
vgo
๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์ป๋ ๋ฐ ๋ฏธ์น๋ ์ํฅ๊ณผ ๋๊ฒฐ์ ๋ํ ์ธ๊ธ์ ๊ณ์ ๋ฃ์ต๋๋ค. 1.11
์ ํตํฉ๋ ์ง ์ฌ๋ถ์ ๋ํ ํ์์ ์ ๊ณต์ ๋ผ์ธ์ ๋ฌด์์
๋๊น? ์ด ๋ฌธ์ ๋ ์ ์ฌ์ ์ธ ์ํฅ์ ๊ณ ๋ คํ ๋ ๋๋ผ์ธ ์ ๋๋ก ์กฐ์ฉํ ๊ฒ ๊ฐ์ต๋๋ค.
@sdboyer MVS์ ๋ํ ๊ทํ์ ์
์ฅ์ ๊ณต์์ ์ผ๋ก _just_ ๊ณต์์ ์ผ๋ก๋ง ๋ฐํ์ ๋ ์ด๊ฒ์ด 1.11
์ ๋ณํฉ๋์ด์ผ ํ๋์ง ์ฌ๋ถ์ ๋ํ ๊ทํ์ ์
์ฅ์ ๋ฌด์์
๋๊น?
์ด๊ฒ์ด 1.11
๊ฐ ๋์ง ์์ผ๋ฉด 2019๋
2์ 1.12
์ด ๋ ๋๊น์ง ๊ณต์์ ์ผ๋ก ๋ฏธ๋ฆฌ ๋ณผ ์ ์์ผ๋ฉฐ 8์์ ์ต์ 1.13
๊น์ง ๊ณต์์ ์ผ๋ก ์ถ์๋ฉ๋๋ค. 2019. ์ด๊ฒ์ @rsc ๊ฐ ์ฒ์ ๋
ผ์๋ฅผ ์์ํ ์ง 18๊ฐ์ ํ ๊ฐ์ฅ ๋น ๋ฅธ ์ ์ฌ์ ๋ฆด๋ฆฌ์ค์
๋๋ค. ๋ฌผ๋ก ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๋ถํ์ํ๊ฒ ์๋๋ฅด๋ฉด ์ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์์์ @Merovius ๊ฐ ์ธ๊ธํ๋ฏ์ด ๋๋ฅผ ํฌํจํ ๋ง์ ์ฌ๋๋ค์ ์ข
์์ฑ ๊ด๋ฆฌ์ ๋ํ ๊ณต์์ ์ธ ๋์์ "๊ธด๊ธ" ๋ฌธ์ ๋ก ๊ฐ์ฃผํฉ๋๋ค. 18๊ฐ์์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ๋๋ฌด ๊ณผํ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์คํ dep
๊ฐ ๊ณต์์ ์ธ ์๋ต์ด ๋ ๊ฒ ๊ฐ์๊ณ ์ฐ๋ฆฌ๋ ์ ์ฅ์๋ฅผ ๋ณํํ์ต๋๋ค(๊ฒฐ๊ณผ์ ๋ง์กฑํ์ต๋๋ค). ์ด ์ ์์ ์ฅ๊ธฐ์ ์ผ๋ก dep
๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ์ง ์์ง๋ง vgo
ํตํฉ์ ์์ํ ๊ณต์์ ์ธ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์(์ ์ด๋ #25069๊ฐ ๋ณํฉ๋ ๋๊น์ง) ์ ํต ๊ธฐํ์ด ๋งค์ฐ ์ ํ๋ ๋๊ตฌ( dep
)๋ฅผ ์ฌ์ฉํ์ญ์์ค.
FWIW, ์ ๋ 1.11
vgo
๋ฅผ ํตํฉํ๊ณ 1.11
์ #25069๋ฅผ ํฌํจํ์ฌ (๊ทธ๋ฆฌ๊ณ 1.9
์ ๋ํ ํจ์น ๋ฆด๋ฆฌ์ค๋ก) ์ด๋ฅผ ์งํํด์ผ ํ๋ค๊ณ ์ ๋ ์๊ฐํฉ๋๋ค. 1.10
์ถ์ ์ 1.11
).
๋๋ ์์งํ MVS์ @sdboyer๊ฐ ๊ทธ๊ฒ์ ๋ํด ์ฐ๋ คํ๋ ๋ชจ๋ ์๋ฏธ๋ฅผ ๊ณจ๋ํ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ถ์ผ์์์ ๊ทธ์ ๊ฒฝํ์ ๊ณ ๋ คํ ๋ ์ด๋ฌํ ์ฐ๋ ค๋ ์ง์งํ๊ฒ ๊ณ ๋ คํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฆ, ๊ทธ๊ฐ 1.11
vgo
์ MVS๋ฅผ ํตํฉํ๋ ๋ฐ ์จ๋ณด๋๋ผ๋ฉด (๊ทธ์ [์์ง ์งํํ๊ณ ์๋] ์ ์์ด [ 1.12
์ ๋ํด] ์๋ฝ๋๋ค๋ฉด ๋ชจ๋์ด ์์๋์ด์๋ ์ ๋ฉ๋๋ค. ์๋ MVS์ฉ์ผ๋ก ์ค๊ณ๋จ), ์์ผ๋ก ๋์๊ฐ์ง ์์ ์ด์ ๊ฐ ์์ต๋๋ค.
๋ํ ์ด ์ ์์ ๋ํด @rsc ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. Go๊ฐ ๋ค๋ฅธ ๋๊ตฌ์ ์ ๊ทผ ๋ฐฉ์์ ๋ณต์ฌํ์ง ์๊ณ ๊ด์ฉ์ ์ผ๋ก ๋ณด์ด๋ ๋ฐฉ์์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํ๋ค๋ ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ข ์์ฑ ๊ด๋ฆฌ๊ฐ ๊ฒฐ์ฝ ์ฌ๋ฏธ์์ง๋ ์์ง๋ง, ์ด ์ ์์ ํตํด Go๋ ์ ๊ณ๋ฅผ ๋ฐ์ ์ํค๊ณ ํ์ฌ ์ต๊ณ ๋ก ๊ฐ์ฃผ๋๋ ์์คํ ์ ๋์ฝํ ์ ์๋ ์ ์ฌ๋ ฅ์ ๊ฐ์ง๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
$.02๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด MVS๋ ์ข ์์ฑ ๊ด๋ฆฌ๋ฅผ ์ํ "์ํ" ์๊ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ๋ํด ๋ง์ ์๊ฐ์ ํ์์ ๊ฐ์ฌํ์ง๋ง MVS๊ฐ ์ด๊ฒ์ด ํ์ํ ๊ณณ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
๋๋ ํนํ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ ๊ธฐํ ์์ ์ ๋์ํฉ๋๋ค. "์๋ ๋ณด์ ์์ "์ ๊ธฐ๊ปํด์ผ ํ๋ ๊ฟ์ด๊ณ ์ต์ ์ ๊ฒฝ์ฐ ์์ฒญ๋ ์์ ์์ ๋๋ค.
๋ํ @joshuarubin ๊ณผ ํจ๊ปํฉ๋๋ค. ์ข ์์ฑ ๊ด๋ฆฌ์ ๋ํ ๊ณต์์ ์ธ ๋์์ด ์๊ธํ ๋ฌธ์ ์ ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ MVS๋ก ๋์๊ฐ ์ ์๊ณ ๋์ค์ ํ์ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ์๋ฃจ์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค๊ณ ์ธ๊ธํ์ต๋๋ค. ๊ทธ๊ฒ์ด ์ ๋ง๋ก ๊ฐ๋ฅํ๋ค๋ฉด ๊ทธ๊ฒ์ด ๋ ๋์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฃผ์ ๋ฒ์ ์ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก์์ ๋ถ๋ฆฌํ ๊ฒ์ ์ ์ํฉ๋๋ค. (์ ๋ vgo-import ์์ ์ถ๋ก ์ ์ค๋ช
ํ์ผ๋ฉฐ ๊ฑฐ๊ธฐ์ ๋ช
์๋ vgo ์ฑ๊ณผ๋ฅผ ์ ํ์ํค์ง ์๋๋ค๊ณ ๋ฏฟ์ต๋๋ค.) ์ด๊ฒ์ #25069์์ Go 1.9 ๋ฐ 1.10์ go build
๊ฐ ๋ค์์ ๋ฐฐ์์ผ ํ๋ค๋ ์์ด๋์ด์์ ์๊ฐ์ ๋ฐ์์ต๋๋ค. ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก๋ฅผ ์ฐฝ์์ ์ผ๋ก ํด์(๋ฒ์ ๋ถ๋ถ ์ญ์ ) ๋ด ์ ์์์ old go build
๋ ๋ณ๊ฒฝ๋์ง ์์ง๋ง vgo
๋ ๋น์ทํ ํธ๋ฆญ์ ๋ฐฐ์๋๋ค.
๊ตฌ๋ฌธ์ ์ผ๋ก ์ ์ผํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
.go
ํ์ผ์์ $ v2
import "repo/v2/pkg"
๋ import "repo/v2/pkg"
$๋ก ์ ์ง๋์ง๋ง ๊ทธ๋ ์ง ์์ผ๋ฉด import "repo/pkg"
๊ฐ ๋ฉ๋๋ค. ์ด๊ฒ์ ํ์ฌ go get
์์ ํธํ์ฑ์ ์ ์งํฉ๋๋ค.go.mod
ํ์ผ์์ v2
ํ์ ๋๋ ํฐ๋ฆฌ์ ์์ผ๋ฉด module "repo/v2"
๊ฐ ๋์ผํ๊ฒ ์ ์ง๋์ง๋ง ์ต์์ ์์ค์ ์์ผ๋ฉด module "repo"
๊ฐ ๋ฉ๋๋ค. (์ด๊ฒ์ ํ์ค ๊ฐ์ ธ์ค๊ธฐ ์ ๋์ฌ์
๋๋ค.)go.mod
ํ์ผ์์ require repo v2.3.4 as repo2
๋ ์ธ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ .go
ํ์ผ์์ import "repo2/pkg"
(๋๋ import "repo2/v2/pkg"
v2
17$#$)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ ํ์ฌ go get
๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค( require github.com/owner/project v2.3.4 as gopkg.in/owner/project.v2
์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ์ง ์๋ ํ), ์ด๊ฒ์ ๋์ผํ ๋ชจ๋์์ ์ฌ๋ฌ ์ฃผ์ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์ข
์์ฑ์ด ์๋ ๊ฒฝ์ฐ์๋ง ํ์ํฉ๋๋ค. ์ด์จ๋ ํ์ฌ go get
์์ ์ง์ํ ์ ์๋ ํ์ ๋๋ ํ ๋ฆฌ์ ์ฃผ์ ๋ฒ์ ์ ์ ์ฅํฉ๋๋ค.๊ธฐ์ ์ ์ผ๋ก ์ด๋ ๊ฒ ํ๋ฉด go.mod
๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ธ ์ ์์ต๋๋ค.
require repo v1.0.0
require repo v1.1.1 as repo1
require repo v2.2.2 as repo2
require repo v2.3.3 as repo3
๊ทธ๋ฌ๋ ์ต์ ๋ฒ์ ์ ํ์ repo
๋ฐ repo1
๋ชจ๋ v1.1.1
๋ฐ repo2
๋ฐ repo3
์ ์ ์ฅ์๋ฅผ ์ฐธ์กฐํ๋๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. v2.3.3
. ์ด ์จ๋ฆฌ์ด์ฑ์ ํ์ฉํด์ผ ํ๋์ง ๊ธ์งํด์ผ ํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ฅ์ :
go get
, v2.0.0 ์ด์ ์๋ ํธํ๋ฉ๋๋ค. ๋ฐ๋ผ์:go get
๋ชจ๋์ ์ต์ํ์ผ๋ก ์ธ์ํ ํ์ ์์(#25069)go get
์์ ํธํ์ฑ์ ๊นจ๋จ๋ฆด ํ์๊ฐ ์์ต๋๋ค.go get
์ ๋ฒ์ ์๋ ์ํฌํ๋ก์ ๋ํ ์ง์์ ์ ์งํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค( ์ฌ๊ธฐ ๋ฐ ์์์ ์ค๋ช
๋จ).๋จ์ :
go.mod
ํ์ผ์ด ๊ณ์ ์๋ํ๋ค๋ ์ฝ์์ ์งํค๋ ๊ฒ์ด ๋ถํธํ ์ ์์ต๋๋ค(์ ๋ชจ๋ ํ์ผ์ ์ด๋ฆ์ด go.mod
์ ๋ค๋ฅด๊ฒ ์ง์ ๋์ง ์๋ ํ).์๋ฉด์ฑ:
go.mod
๋ฅผ ๋ณด์ง ์๊ณ ์ฌ์ฉํ๋ ์ฃผ์ ๋ฒ์ ์ ๋ชจ๋ฆ
๋๋ค.import "yaml"
with require gopkg.in/yaml.v2 v2.2.1 as yaml
).[1] ํ์ฌ vgo
๋ ๋ชจ๋์ ๋น๋ชจ๋ ์ ์ด ์ข
์์ฑ์ด v2.0.0 ์ดํ์ธ ๊ฒฝ์ฐ์๋ง ๋น๋ชจ๋ ์ข
์์ฑ์ ์ ์ ํ๊ฒ ์ง์ํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ๋ก์ ํธ๋ v2.0.0 ์ดํ์ ํ๋ก์ ํธ์ ๊ฐ์ ์ ์ผ๋ก ์์กดํ๋ ๋ชจ๋ ์ข
์์ฑ์ด ๋ชจ๋์ด ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.
https://github.com/rsc/corpus์ ํจํค์ง์์ ์ฐพ์ ์ ์์๋ Gopkg.toml ํ์ผ์ ๋ถ์ํ๊ณ https://github.com/zeebo/dep-analysis ์ ์์ฝ์ ์์ฑํ์ต๋๋ค . ๊ฑฐ๊ธฐ์ ์๋ ๋ฐ์ดํฐ์ ๋ฐ๋ฅด๋ฉด vgo๊ฐ ์๋ณ๋ ๊ฑฐ์ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค๋ ์ฆ๊ฑฐ๊ฐ ๋ง์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์ปค๋ฎค๋ํฐ์ ๋๋ ค์์ ์ค์ด๋ ๋ฐ ๋์์ด ๋๊ณ , ๋๊ตฌ์ ๋ํ ์ค์ ๊ฒฝํ์ ์ป๊ธฐ ์ํด ์ถ๊ฐ 6๊ฐ์์ด ์์์ ๊ธฐ์ตํ๊ณ ์ ์์ ์๋ ๊ทธ๋๋ก ์งํํด์ผ ํ๋ค๋ ํฉ์์ ์ด๋ฅด๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ์ง์ฌ์ผ๋ก ๋ฐ๋๋๋ค. ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ํ ๋ชจ๋ ๋ณ๊ฒฝ.
๋ด๊ฐ ๋น์ ์ ์ธ์ฉํ๋ฉด :
๋ชจ๋ ์ ์ฝ ์กฐ๊ฑด์ ๊ฑฐ์ ์ ๋ฐ์ ์ค์ ๋ก ์ ์ฝ ์กฐ๊ฑด์ด ์๋๋๋ค. ๋ง์คํฐ ๋ถ๊ธฐ๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
์ด๊ฒ์ ์๋ง๋ ๋ง์คํฐ๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค. ํ๊ทธ๊ฐ ์๊ฑฐ๋ "v2, v3๊ณผ ๊ฐ์ ๋ช ๋ช ๋ ๋ถ๊ธฐ"๊ฐ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ํ์ ์ฌ์ง๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋น๊ต๊ฐ ๊ณต์ ํ์ง ์์ต๋๋ค!
@mvrhov "๊ณต์ ํ์ง ์์"์ด ๋ฌด์์ ์๋ฏธํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ ์๊ฒ๋ vgo์ dep๊ฐ ๊ทธ ๊ฒฝ์ฐ๋ฅผ ์ ์ฒ๋ฆฌํ ๊ฒ ๊ฐ์ต๋๋ค. ์๋๋ฉด ๊ทธ ์ด๋ค ํ์ค์ ์ธ ๋์๋ ๊ทธ ๊ฒฝ์ฐ๋ฅผ ์ ์ฒ๋ฆฌ ํด์ผ ํ ๊ฒ์ ๋๋ค. ํนํ: ์์ง ์ถ์๋ ๋ฒ์ ์ด ์๋ ๊ฒฝ์ฐ vgo ์ธ๊ณ์์๋ v1.0/v0.x ํ๊ทธ๋ง ์ง์ ํ ์ ์์ผ๋ฉฐ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฝ๋ก(vgo์ ์ฃผ์ ํน์ง)๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
๋ด๊ฐ ๋งํ ์ ์๋ ํ, ๋ถ์์ ์์ ์ ๋ค์ํ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ธํด ๋ฐ์ํ๋ ์ค์ ๊ณ ํต์ ํ๊ฐํ๊ณ ์๋ํ๋ ๊ฒ์ ๋๋ค. ๋๋ ์ด ์ฌ๊ฑด์ด ๋๊ตฐ๊ฐ์๊ฒ ์ค์ ์ ์ธ ๊ณ ํต์ ๊ฐ์ ธ๋ค์ฃผ๋ ๋ฐฉ๋ฒ์ ์์ง ๋ชปํฉ๋๋ค.
์ด ์ ์์ 2๊ฐ์ ์ด์ ํ๋ฐํ ํ ๋ก ์ ํตํด ๊ณต๊ฐ๋์์ต๋๋ค. @rsc & @spf13 ์ ํผ๋๋ฐฑ ์ธ์ ์ ์ํํ๊ณ ์ปค๋ฎค๋ํฐ์์ ๊ท์คํ ์๊ฒฌ์ ์์งํ์ฌ ์ ์์ ์์ ํ์ต๋๋ค. @rsc ๋ ๋ํ ์ถ๊ฐ ํผ๋๋ฐฑ์ ์ป๊ธฐ ์ํด @sdboyer ์ ๋งค์ฃผ ํ์๋ฅผ ์งํํ์ต๋๋ค. ์ ์์ ๋ํ ๊ท์คํ ํผ๋๋ฐฑ์ด ์ ๊ณต๋์ด ์ถ๊ฐ ์์ ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ ์ ๋ ์ด ํผ๋๋ฐฑ์ ์ ์๋ณด๋ค๋ ์๋ฐ๋๋ ๊ตฌํ์ ๋ํ ๊ฒ์ ๋๋ค. ์๋นํ ๊ฒํ ํ์ ์ฐ๋ฆฌ๋ ์ด ์ ์์ ์๋ฝํ๊ณ Go์ ๊ด๋ฒ์ํ ๋๊ตฌ ๊ตฌํ ์ํ๊ณ๊ฐ ์ค์ํ ์กฐ์ ์ ์์ํ์ฌ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ด ๊ฐ๋ฅํ ์ต๊ณ ์ ๊ฒฝํ์ ํ ์ ์๋๋ก ํ ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ ์ด ์ ์์ ๋ํด ๋ ๊ฐ์ง ๋ฐ๋๊ฐ ์์์ต๋๋ค.
์ด๋ค์ ๊ด์ฐฐ์ ์ ํํ์ง๋ง ์๋ํ ๋๋ก ์๋ํฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ gofmt ์คํ๊ณผ ๊ฐ์ Go์ ๋ค๋ฅธ ์ธ๋ถ ์ฌํญ์ ์ ์ํ ๊ฒ์ฒ๋ผ ์ฝ๋ ์์ฑ์์ ์ฌ์ฉ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ๋ฐ ๋ฆด๋ฆฌ์ค์ ๋ํ ์ผ๋ถ ๊ดํ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ด ๋๋ก๋ ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก vgo๋ ๋นํธํ์ฑ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๊ฐ๋ฅํ ์ํฉ์ ์ฒ๋ฆฌํ ํ์๋ ์์ต๋๋ค. Russ๊ฐ ์ต๊ทผ Gophercon Singapore ์ฐ์ค์์ ์ง์ ํ๋ฏ์ด ๋นํธํ์ฑ์ ๋ํ ์ ์ผํ ์๊ตฌ์ ์ธ ํด๊ฒฐ์ฑ ์ ํจ๊ป ํ๋ ฅํ์ฌ ๋นํธํ์ฑ์ ์์ ํ๊ณ Go ํจํค์ง ์ํ๊ณ๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค. vgo ๋๋ dep์ ๊ฐ์ ๋๊ตฌ์ ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋ฐ์๊ฐ ์ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๊ฐ์ ์ค ์ ์์ ๋งํผ๋ง ์๋ํ๋ฉด ๋๋ฉฐ vgo๋ ์ด ์์ ์ ์ถฉ๋ถํ ์ํํฉ๋๋ค.
์ด ์ค์ํ ๋ฌธ์ ์ ๋ํด ๋ณด๋ด์ฃผ์ ๋ชจ๋ ํผ๋๋ฐฑ๊ณผ ์ด์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ ์์ด ์๋ฝ๋์์ต๋๋ค.
โ ๋ฐ๋์ ์์ฌ์์์ํ
๊ธฐ๋ก์ ์์ ๋ํ๊ธฐ ์ํด @sdboyer ์์ ์ฃผ๊ฐ ํ์๋ฅผ ์ง์ง๋ก ๊ฐ์ฃผํด์๋ ์ ๋ฉ๋๋ค. Sam์ ์ต๊ทผ vgo์ ๋ํด ์ข์ํ๋ ๊ฒ๊ณผ ํจ๊ป MVS์ ๋ฌธ์ ์ ๋ํด ์ฐ๊ธฐ ์์ํ์ต๋๋ค . ๊ฐ์ด ์ค์๋ ๋ถ๋ค์๊ฒ ์คํด์ ์์ง๊ฐ ์๋๋ก ํ๊ธฐ ์ํด ์ด๋ ๊ฒ ๋ง๋ถ์ ๋๋ค. ๊ทธ์ ์๊ฒฌ์ ์ํ์๋ฉด ๊ทธ์ ๊ธ์ ์ฝ์ด๋ณด์ญ์์ค. ๋ด ์๊ฐ์ ๊ทธ๊ฒ๋ค์ด ํ์ฌ ์๋๋ ์ ๊ทผ ๋ฐฉ์์ ๋ํด ์๋นํ ์ ๋์ ๋ถ์ผ์น๋ฅผ ํฌํจํ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค.
@mattfarina FWIW, ๋๋ ๊ทธ ๋ฌธ์ฅ์ "(๊ทธ๊ฐ ๊ฐ์ธ์ ์ผ๋ก ํํํ ๋๋ก) ๊ทธ์ ๋นํ์ ์๊ณ ์์ผ๋ฉฐ ์ฐ๋ฆฌ์ ์๊ฒฌ์ ๋ฐ๊พธ์ง ์์์ต๋๋ค"๋ผ๊ณ ๋ ๋ง์ด ์ฝ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ์ ์๊ฒฌ๊ณผ ์ฃผ์ฅ์ด ํ์ฌ๊น์ง ๊ณต๊ฐ๋์ง ์์ ๊ฒ์ด ์ ๊ฐ์ ๋๋ค.
์ ๊ทผ ๋ฐฉ์์ ๋ํ ๊ทผ๋ณธ์ ์ธ ์ฐ๋ ค๊ฐ ์ฌ์ ํ ๋จ์ ์๋ ์ํ์์ ์ ์์ ์๋ฝํ๋ ๊ฒ์ ๋ฌด์ฑ ์ํ๊ฒ ๋๊ปด์ง๋๋ค. ์์ฑ์์ ์ปค๋ฎค๋ํฐ ๋๋ฉ์ธ ์ ๋ฌธ๊ฐ @sdboyer ๊ฐ์ ํฉ์๋ ์ ์์ด ์๋ฝ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๊ธฐ ์ ์ ๋๋ฌํด์ผ ํ๋ ํฉ๋ฆฌ์ ์ธ ์ต์ ๊ธฐ์ค์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@merovius ์ฐ๋ฆฌ ์ค ๋ช๋ช์ ๊ณต๊ฐ์ ์ผ๋ก๋ ๊ฐ์ธ์ ์ผ๋ก ์๊ฒฌ์ ๊ณต์ ํ์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ ์ ๊ธฐ๋ ๋ฌธ์ ๊ฐ ์ถฉ๋ถํ ์๋ฃจ์ ์ ์ ๊ณตํ๊ธฐ๋ณด๋ค๋ ์คํ๋ ค (๋๋ก๋ ๋ฌด๋กํ๊ฒ) ๋ฌด๋กํ๊ฒ ๊ตด๋ฌ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ ์ค์ฉ์ ์ธ ๋ฌธ์ ๋ฅผ ๊ณต๊ฐ์ ์ผ๋ก ๊ณต์ ํ๊ธฐ ์์ํ์ฌ ์ฐ๋ฆฌ๊ฐ ํด๊ฒฐํ๋ ค๊ณ ๋ ธ๋ ฅํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ค๋์ ์ค์ ๋ฌธ์ ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ฌ๊ธฐ ์์ ๊ณต์ ํฉ๋๋ค. ์ฌ๋ฏธ์๋ ์ฐธ๊ณ ์ฌํญ์ ์ด๊ฒ์ด ์๋ฝ๋ ๊ฒ์ผ๋ก ํ์๋๋ ๋์์ ํด์ปค ๋ด์ค์ ์ฒซ ํ์ด์ง์ ์๋ค๋ ๊ฒ์ ๋๋ค.
@peterbourgon Go Dependency Management ์ค๋ฌธ์กฐ์ฌ์ ์ฐธ์ฌํ๊ณ ์ฌ๋๋ค์ด ํ์๋ก ํ๋ ์ฌํญ์ ๋ฃ๊ณ Glide์์ ์์ ํ ์ฌ๋์ผ๋ก์ (๋จ์ํ ์๊ฒฌ์ด ์๋) ์ค์ง์ ์ธ ๋ฌธ์ ๋ฅผ ๋ณด์ฌ์ค ์ ์์ต๋๋ค. ์ฆ, ์ฌ์ฉ์์ ์๊ตฌ, ์๊ตฌ ๋ฐ ๊ธฐ๋๋ฅผ ํด๋น ๋ฌธ์ ์ ๋ํ ์๋ฃจ์ ์ ๋ง์ถ ์ ์์ต๋๋ค. ๋ด ์ฐ๋ ค๋ vgo์ ํ์ฌ ๊ฒฝ๋ก์ ๋ํ ๋ถ์ผ์น์ ๋๋ค. ์ฌ๋๋ค์ด ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ์ํํ๋ ๋ฐฉ์์ ์ฐจ์ด๋ก ์ธํด ์ถฉ์กฑ๋์ง ์์ ์๊ตฌ ์ฌํญ๊ณผ ์ค์ฉ์ ์ธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ด ์ฐ๋ ค๋ฅผ ์ํํ๊ธฐ ์์ํ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ vgo๊ฐ Tim Hockins๊ฐ ๋ง์กฑํ ์ ์๋๋ก Kubernetes์์ ์๋ํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
๋ด ์ฐ๋ ค๋ฅผ ์ํํ๊ธฐ ์์ํ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ vgo๊ฐ Tim Hockins๊ฐ ๋ง์กฑํ ์ ์๋๋ก Kubernetes์์ ์๋ํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
์ค๋ vgo๋ฅผ Kubernetes์์ ์๋ํ๊ฒ ํ์๊ฒ ์ต๋๊น? ์๋๋ฉด ํฅํ ๋ช ๋ ๋์ vgo๋ฅผ Kubernetes์์ ์๋ํ๊ฒ ํ์๊ฒ ์ต๋๊น? ๋ด๊ฐ ์ดํดํ๋ ๋ฐ์ ๋ฐ๋ฅด๋ฉด vgo์ dep ์ฌ์ด์ ๊ทผ๋ณธ์ ์ธ ๋์์ธ ๋ถ์ผ์น ์ค ํ๋๋ ์ค๋๋ ์กด์ฌํ๋ ์ํ๊ณ์ ํจ๊ป ์์ ํด์ผ ํ๋์ง(dep์ ๊ฐ์ ) ๋๋ ์ปค๋ฎค๋ํฐ๋ฅผ ํ๊ทธ๊ฐ ์ง์ ๋ ๋ฆด๋ฆฌ์ค ๋ฐ ํธํ์ฑ ์ ์ง๋ก ์ ํํ ์ ์๋์ง(vgo์ ๊ฐ์ )์ ๋๋ค. .
๋ฐ๋ผ์ Go ์ปค๋ฎค๋ํฐ์ ๊ท๋ฒ์ด ๋ฐ๋ ๋๊น์ง vgo๋ Kubernetes๋ฅผ ์ฌ์ฉํ๋ ๋ค์ข ์์ฑ์์ ํ๋์ ์๋ํ์ง ์์ ์ ์์ต๋๋ค.
@mattfarina ๋ฌผ๋ก ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด๊ฒ์ "์คํ๋กค"๋ก ๊ทธ๋ฆฌ๋ ๊ฒ์ ๋งค์ฐ ์ค๋ง์ค๋ฝ์ต๋๋ค. @sdboyer ๋ ๋ช ๋ฌ ๋์ ๊ณต๊ฐ ํ ๋ก ์ ํฌ๊ฒ ๊ธฐ๊ถํ์ผ๋ฉฐ ์ฌ์ ํ ๊ทธ์ ๋ํ ์ค์ ์ ์ด๊ณ ๊ตฌ์ฒด์ ์ธ ์ฃผ์ฅ์ ์์ต๋๋ค. ๊ทธ์๊ฒ๋ ๋๋ฆ์ ์ด์ ๊ฐ ์์๊ณ ๊ทธ๊ฒ์ ์ ๋นํ์ต๋๋ค. ๊ทธ๋ฌ๋ ํฉ์์๋ ์ฌ์ ํ ํ ๋ก ์ด ํ์ํ๋ฉฐ ์ ์ด๋ ๊ณต๊ฐ ๊ธฐ๋ก์ ๊ดํ ํ, ๊ฐ์ธ์ ์ผ๋ก ์ ๊ธฐ๋๊ณ ๋ช ๋ฐฑํ๊ฒ ๋ฌด์๋ ๋ฌธ์ ์ ๋ํด ๊ฐ์ธ์ ์ผ๋ก ์ธ์ํ์ง ๋ชปํฉ๋๋ค(์์ง ๊ทํ์ ๊ฒ์๋ฌผ์ ์ฝ์ง๋ ์์์ง๋ง).
๋ด๊ฐ ์๋ ํ, ๋ชจ๋ ํ ๋ก ์ ๋น๊ณต๊ฐ๋ก ์งํ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์ชฝ์ด๋ ์ ๋ณด๊ฐ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ ์ ํ ๊ณ ๋ ค๊ฐ ์ฃผ์ด์ง ๊ฒฝ์ฐ ์์ชฝ ๋ชจ๋๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ด ๊ณต์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@bradfitz SemVer๋ ์ค๋๋ Go ํจํค์ง์์ ์ผ๋ฐ์ ์ผ๋ก PHP, node.js, Rust ๋ฐ ๊ธฐํ ์๋ง์ ์ธ์ด์์ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฝค ํํ ์ผ์ ๋๋ค. ์ด๋ฌํ ์ธ์ด์ ํจํค์ง๊ฐ SemVer ํธํ์ฑ ๋ฌธ์ ๋ก ์ธํด ์ค๋จ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋๋ก๋ ์๋์ ์ผ๋ก ๋๋ก๋ ์ฐ์ฐํ. ์ฌ๋๋ค์ด ์ค๋ฅ๋ฅผ ๋ฒํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ค๋ฅธ ๋ชจ๋ ์ธ์ด์ ์กด์ฌํ๋ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด Go๋ ๋ฌด์์ ๋ค๋ฅด๊ฒ ํ ๊ฒ์ธ๊ฐ?
ํธํ์ฑ์ด ํญ์ ์ ์ง๋๊ณ ๊ฐ๋ฐ์๊ฐ ์ด๋ฅผ ์กฐ์ ํ๊ณ ํด๋น ์ ๋ณด๋ฅผ ์ข ์์ฑ ํธ๋ฆฌ ์๋ก ์ ๋ฌํ๊ธฐ ์ํด ์ก์ธ์คํ ์ ์๋ ์์ก์ด๊ฐ ์์ด์ผ ํ๋ค๋ ์๋ชป๋ ๊ฐ์ ์ ๋ช ํํ ํ ์ ์๋ค๋ฉด.
๋ชจ๋ ์ฌ๋์ด ๋์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ์ฌ ์ข ์์ฑ ๊ด๋ฆฌ ์ํฉ์ ๋ชจ๋ ์ธ์ด/ํ๋ซํผ์์ ๋์ฐํฉ๋๋ค. @bradfitz ๊ฐ ์ถฉ๋์ ์์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ค๋ช ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. vgo๊ฐ ์ฑ๊ณตํ์ง ๋ชปํ ์๋ ์์ง๋ง ๋์๊ฒ๋ ์ฐ๋ฆฌ๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒ์ด ๋ถ๋ช ํ๋ฉฐ(Go์์๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ์ ์ผ๋ก) vgo๊ฐ ์๋ํด ๋ณผ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ ๋ณด์ ๋๋ค.
@mattfarina ์ค์ ๋ก ํธํ์ฑ์ด ์ ์ง๋๋์ง ์๋์ผ๋ก ์ ์ดํ๋ โโ์๋น์ค๋ฅผ ๊ตฌํํ๋ ค๊ณ ํฉ๋๋ค. godoc.org์ ํตํฉํ๊ณ , README์ฉ ๋ฐฐ์ง๋ฅผ ์ ๊ณตํ๊ณ , go get์ ํ๋ก์๋ก ์ฌ์ฉํฉ๋๋ค. ์ถฉ๋ถํ ์ ์๋ํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋ฌผ๋ก @sdboyer ๊ฐ API ํธํ์ฑ์ ๋ํด ์ณ๋ค๋ ๊ฒ์ ์ค์ ํธํ์ฑ์ ๋ณด์ฅํ์ง ์์ง๋ง ์ข์ ์์์ด๋ฉฐ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ถฉ๋ถํ ์ ์๋ํด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ Go ์ปค๋ฎค๋ํฐ์ ๊ท๋ฒ์ด ๋ฐ๋ ๋๊น์ง vgo๋ Kubernetes๋ฅผ ์ฌ์ฉํ๋ ๋ค์ข ์์ฑ์์ ํ๋์ ์๋ํ์ง ์์ ์ ์์ต๋๋ค.
ํฌ๋ง์ ์ ๋ต์ด ์๋๋๋ค. ํนํ ๊ธฐ์กด์ ํ๋๊ณผ ๊ธฐ๋๊ฐ ์ด๋ฏธ ์ ํ๋ฆฝ๋์ด ์๋ ๊ฒฝ์ฐ์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ 5๋ ์ ์ ์ด ๋ ผ์๋ฅผ ํ๋ค๋ฉด Go๋ ํ์ ํ ํฐ์ ์ฌ๊ธฐ์์ ์ฌ์ฉํ ์ ์์๊ณ ์ํฉ์ด ์ํฅ์ ๋ฐ๊ธฐ ๋ ์ฌ์ ์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ค๋ซ๋์ ์ด ๋ฌธ์ ๋ฅผ ๋ฌด์ํ ๊ฒฐ๊ณผ ์ง๊ธ ์ ์๋ ๋ชจ๋ ๋๊ตฌ๋ ์ฌ์ฉ์๊ฐ ์๋ ๊ณณ์์ ๋ง๋์ผ ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช ํด ๋ณด์ ๋๋ค.
์ฌ๋๋ค์ด ์ค๋ฅ๋ฅผ ๋ฒํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ค๋ฅธ ๋ชจ๋ ์ธ์ด์ ์กด์ฌํ๋ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด Go๋ ๋ฌด์์ ๋ค๋ฅด๊ฒ ํ ๊ฒ์ธ๊ฐ?
์ฐ๋ฆฌ๋ ๋ฆด๋ฆฌ์ค/ํ๊น
์ ์ฝ๊ฒ ๋ง๋ค๋ฉด์๋ API ํธํ์ฑ์ ํ์ธํ๋ ์ผ์ข
์ go release
๋ช
๋ น์ ๋ํด ๋
ผ์ํ์ต๋๋ค(์: Go ๋ฆด๋ฆฌ์ค์ฉ์ผ๋ก ์์ฑํ Go ๋ด๋ถ go tool api
๊ฒ์ฌ๊ธฐ). ๋ํ godoc.org
๋ฅผ ์ฟผ๋ฆฌํ๊ณ ํจํค์ง์ ํธ์ถ์๋ฅผ ์ฐพ๊ณ ํ๊ทธ๊ฐ ํธ์๋๊ธฐ ์ ์ ์ํํ ์๊ฐ์ ์ ๋ฒ์ ์ ๋ํด ํ
์คํธ๋ฅผ ์คํํ ์๋ ์์ต๋๋ค. ๋ฑ.
ํจํค์ง์ ํธ์ถ์๋ฅผ ์ฐพ๊ณ ํ๊ทธ๊ฐ ํธ์๋๊ธฐ ์ ์ ์ถ์ ์ ์๊ฐ์ ์ ๋ฒ์ ์ ๋ํด ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค. ๋ฑ.
์ด๊ฒ์ Google์ด ์๋ ์ฌ๋์๊ฒ๋ ์ค์ ๋ก ์ค์ฉ์ ์ด์ง ์์ต๋๋ค.
์ด๊ฒ์ Google์ด ์๋ ์ฌ๋์๊ฒ๋ ์ค์ ๋ก ์ค์ฉ์ ์ด์ง ์์ต๋๋ค.
๋ชจ๋ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๊ฐ ์๋น์ค๋ก์์ ์ปจํ ์ด๋๋ฅผ ์ด ๋จ์๋ก ์ง๋ถํ๊ธฐ ์์ํ๋ฉด์ ๋๊ตฌ๋ ์คํํ๊ณ ํ์ํ $0.57 ๋๋ $1.34๋ฅผ ์ง๋ถํ ์ ์๋ ์คํ ์์ค ๋๊ตฌ๋ก ์ด๊ฒ์ ์ ๊ณตํ์ง ๋ชปํ ์ด์ ๊ฐ ์์ต๋๋ค. ๋ช ๋ถ ๋์ ์ฌ๋ฌ ํธ์คํธ์ ๋ํด ์์ฒญ๋ ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค.
ํ ์คํธ ์คํ๊ณผ ๊ด๋ จํ์ฌ Google์ ๋น๋ฐ ์์ค๋ ๋ง์ง ์์ต๋๋ค.
๋ชจ๋ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๊ฐ ์๋น์ค๋ก์์ ์ปจํ ์ด๋๋ฅผ ์ด ๋จ์๋ก ์ง๋ถํ๊ธฐ ์์ํ๋ฉด์ ๋๊ตฌ๋ ์คํํ๊ณ ํ์ํ $0.57 ๋๋ $1.34๋ฅผ ์ง๋ถํ ์ ์๋ ์คํ ์์ค ๋๊ตฌ๋ก ์ด๊ฒ์ ์ ๊ณตํ์ง ๋ชปํ ์ด์ ๊ฐ ์์ต๋๋ค. ๋ช ๋ถ ๋์ ์ฌ๋ฌ ํธ์คํธ์ ๋ํด ์์ฒญ๋ ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค.
์ด๋ฅผ ์ํด์๋ ํน์ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด์ ๊ณ์ ์ด ํ์ํ๋ฉฐ, ํน์ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด์ ์๋น์ค ์ฝ๊ด์ ๋์ํด์ผ ํฉ๋๋ค(์ ์ธ๊ณ ๋๋ถ๋ถ์ด ์ด๋ฅผ ๋์ํ์ง ์๋ ๊ฒ์ฒ๋ผ ์ทจ๊ธํ๋๋ผ๋ ๋ฒ์ ์ด์ ๋ก ๋์ํ์ง ์์ ์๋ ์์ต๋๋ค. ๋ฌธ์ ), ํด๋ผ์ฐ๋ ์ ๊ณต์๊ฐ ์๋น์คํ๋ ์ง์ญ์ ๊ฑฐ์ฃผํด์ผ ํ๋ฉฐ(์: ๊ทํ๊ฐ ์ด๋์ ์๊ณ ํด๋ผ์ฐ๋ ์ ๊ณต์๊ฐ ๋ฏธ๊ตญ์ ์๋ ๊ฒฝ์ฐ ์์ถ๋ฒ์ผ๋ก ์ธํด ์ฌ์ฉํ์ง ๋ชปํ ์ ์์) ํด๋ผ์ฐ๋ ์ ๊ณต์์๊ฒ ์ง๋ถํ ๋์ด ์์ต๋๋ค(์๋ง๋ ๋ฆด๋ฆฌ์ค๋ฅผ ํ ๋๋ง๋ค). ๋ง์ ๋์ด ์๋ ์๋ ์์ง๋ง ๊ทธ๋ ๋ค๊ณ ํด์ ๋ชจ๋ ์ฌ๋์ด ์ง๋ถํ ์ ์๋ ๊ฒ์ ์๋๋๋ค. Go๊ฐ ํฌ๊ด์ ์ด๊ณ ๋ค์ํ ์ฒญ์ค์๊ฒ ์ฌ์ฉ๋๊ธฐ๋ฅผ ์ํ๋ค๋ฉด ์ด๊ฒ์ ์ข์ ์๋ฃจ์ ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
/2์ผํธ
@SamWhited MeteorJS๋ ํด๋ผ์ฐ๋ ๊ณต๊ธ์์์ ํ๋ก์ ํธ๋ฅผ ์คํํ๊ธฐ ์ํด ๋ด์ฅ๋ meteor publish
๋ช
๋ น์ธ Galaxy์ ํจ๊ป ์์
ํ์ต๋๋ค. ๋ด๊ฐ ์ ๊ธฐํ ๋ฌธ์ ๋ฅผ ์๋ชป ์ดํดํ๊ณ ์๋ ๊ฒ์ผ ์๋ ์์ง๋ง, ๋ฌธ์ ์ ๋ํ ๊ทธ๋ค์ ์ค์์ ๊ด์ฐฎ์ ๋ณด์์ต๋๋ค.
@bradfitz API๋ ๋ณ๊ฒฝ๋์ง ์์ง๋ง ๊ทธ ๋ค์ ๋์์ ๋ณ๊ฒฝ๋๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ๊ทธ๊ฒ์ SemVer์์ ๊นจ์ง๊ณ ๊ทธ๊ฒ์ ๊ฐ์ ธ์ค๋ ์ฌ๋๋ค์๊ฒ ์ํฅ์ ๋ฏธ์น๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ด ์ํฉ์ ์ด๋ป๊ฒ ๊ฐ์งํฉ๋๊น? ํ ๋ฒ ์ด์ ๊ฒฝํํ๊ธฐ ๋๋ฌธ์ ์ง๋ฌธํฉ๋๋ค.
๋๊ตฌ๋ ์คํํ ์ ์๊ณ $0.57 ๋๋ $1.34๋ฅผ ์ง๋ถํ ์ ์๋ ์คํ ์์ค ๋๊ตฌ๋ ๋ช ๋ถ ๋์ ์ฌ๋ฌ ํธ์คํธ์ ๋ํด ์์ฒญ๋ ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ ํ์ํฉ๋๋ค.
์ด๊ฒ์ ์ด์ ๋น์ฉ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ด๊ฒ์ ๋ฏธ๊ตญ์ ๊ธฐ์ ๋์์ ์๋ ์ฌ๋๋ค์๊ฒ๋ ๊ด์ฐฎ๊ฒ ๋๊ปด์ง ์ ์์ต๋๋ค. ์ํ๋ฆฌ์นด, ์ค์ ์๋ฉ๋ฆฌ์นด ๋๋ ์ ์ธ๊ณ์ ์ผ๋ก ๋ถํฌ๋์ด ์๋ ๊ธฐํ ์ง์ญ์ ์ฌ๋๋ค์ ์ด๋ป์ต๋๊น? ์ด๋ฌํ ๋๊ตฌ๋ "๊ธฐ์ ์๋ฆฌํธ" ์ํด ์ธ๋ถ์์ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ป๊ฒ ์ก์ธ์คํ ์ ์์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ์์ ์ ํ์ง ์๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ ์ด๋ป์ต๋๊น? ์จํ๋ ๋ฏธ์ค(๋ง์ ์ฌ๋๋ค์ด ์ํ) ๋๋ ๋ ์ ๋ฐ ์ ๋ขฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด ๋ฌผ๊ฑด์ ์ด๋ป๊ฒ ์๋ํ ๊น์? ์ฌ๋ด ๋๊ตฌ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ ์ค์ธ ์์ ํ์ ๊ณต๊ณต ์๋น์ค์ ๋์คํ๊ณ ์ถ์ง ์์ ์ ์์ต๋๋ค. GitHub์์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ๊ฐ์ ธ์์ง๋ง ์ด ์๋น์ค๋ Google์์ ์คํ๋๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ฌ๋๋ค์ด ์์กด์ฑ ํธ๋ฆฌ๋ฅผ Google์ ๋๊ฒจ๋ ๊ด์ฐฎ์ต๋๊น? ๋ฌด๋ฆฌ๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
๋ํ ํ๊ทธ๊ฐ ํธ์๋๊ธฐ ์ ์ godoc.org๋ฅผ ์ฟผ๋ฆฌํ๊ณ ํจํค์ง ํธ์ถ์๋ฅผ ์ฐพ๊ณ ์ํํ ์๊ฐ์ ์ ๋ฒ์ ์ ๋ํด ํ ์คํธ๋ฅผ ์คํํ ์๋ ์์ต๋๋ค. ๋ฑ.
Kubernetes๋ฅผ ์๋ก ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ๋๊ตฐ๊ฐ Kubernetes๋ก ๊ฐ์ ธ์จ ํจํค์ง๋ฅผ ์์ฑํฉ๋๋ค. ๋ฐ๋ผ์ ๋๊ตฌ๋ ์ด๋ฅผ ๊ฐ์ ธ์ ๋ชจ๋ ํ ์คํธ๋ฅผ ์คํํด์ผ ํฉ๋๋ค. ์ผ๋ถ๋ Windows ๋ฐ POSIX์์ ์คํ๋๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ค์ค OS/๋ค์ค ์ํคํ ์ฒ๋ฅผ ํ ์คํธํ ์ ์์ต๋๊น(Go์์ ์ฒ๋ฆฌํ๋ฏ๋ก). ๊ทธ๊ฒ์ ์ค์ ๋ก ์ด๋ป๊ฒ ์๊ฒผ์ต๋๊น (๋ฐ ๋น์ฉ)?
--
๋๋ ์ด๋ฐ ๋๊ตฌ๊ฐ ์ ์ฉํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ฌ๋๋ค์ด ๋ค๋ฅธ ์๊ฐ์ ํ๊ฒ ํ๋ ค๋ ๊ฒ์ด ์๋๋๋ค. ๋๋ ๊ทธ๋ค์ด ๋ง์ ์ฌ๋๋ค์ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์์ง ๋ชปํฉ๋๋ค. ๊ทธ๊ฒ๋ค์ ์ถฉ๋ถํ ์ค์ฉ์ ์ด์ง ์๊ฑฐ๋ ๋ชจ๋ ์ค์ ์ ๋ง์ง ์์ต๋๋ค.
์๋ ค์ง๊ณ ์ ์ด ๊ฐ๋ฅํ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก ์ํ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๋๋ค์ ์ง์ ๋ถํ๋ฏ๋ก ๋ด๊ฒฐํจ์ฑ ์๋ฃจ์ ์ด ํ์ํฉ๋๋ค.
์ค๋ ์ผ์ฐ @technosophos ๋ฅผ ์ธ์ฉํ๋ ค๋ฉด:
"๋ฒ์ ๊ด๋ฆฌ์๋ ์ค์ ๋ก ์ปดํ์ผ๋ฌ๋ ๋ง์ปค ๋ฑ์ ์ํ ๋๊ตฌ๊ฐ ์๋๋๋ค... ๋ฒ์ ๊ด๋ฆฌ์๋ ํ์ ํ๋ ์ฌ๋๋ค์ ์ํ ๊ฒ์ ๋๋ค."
๊ทธ๋งํ ๊ฐ์น๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ํ ๋ช ์ด์์ ์ข ์์ฑ ๊ด๋ฆฌ์๋ฅผ ์์ฑํ๊ณ , ๋ค๋ฅธ ์ฌ๋์ ์ฐ๊ตฌํ์ผ๋ฉฐ, ํจ์ฌ ๋ ๋ง์ด ์์ฑํ ์ฌ๋๋ค๊ณผ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด์ต๋๋ค.
์ ๊ทผ ๋ฐฉ์์ ๋ํ ๊ทผ๋ณธ์ ์ธ ์ฐ๋ ค๊ฐ ์ฌ์ ํ ๋จ์ ์๋ ์ํ์์ ์ ์์ ์๋ฝํ๋ ๊ฒ์ ๋ฌด์ฑ ์ํ๊ฒ ๋๊ปด์ง๋๋ค. ์์ฑ์์ ์ปค๋ฎค๋ํฐ ๋๋ฉ์ธ ์ ๋ฌธ๊ฐ @sdboyer ๊ฐ์ ํฉ์๋ ์ ์์ด ์๋ฝ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๊ธฐ ์ ์ ๋๋ฌํด์ผ ํ๋ ํฉ๋ฆฌ์ ์ธ ์ต์ ๊ธฐ์ค์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์ ์ฝ๊ฐ๋ง ๋ํ๋ฉด: ์ฐ๋ฆฌ๋ ๋นํ์ค ๋ฐ ์ฐจ์ ์ฑ
( go get
์ํ๊ณ)์ธ ํจํค์ง์ ๋ํ ์ญ์ฌ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. "ํ์ค" ๋๊ตฌ์์ ํธํ์ฑ์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ฌ๋๋ค์ ๋์ ๊ดํ์ผ๋ก ๋ชฐ์๊ฐ๋ ๋ ๋ค๋ฅธ go get
๋ฅผ ์ถ์ํ๋ ๊ฒ๋ณด๋ค ํ์ค ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ํฌ๊ธฐํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์
๋๋ค. ๋ฐ๋์ด ๊ณต๊ฐ๋ ์ดํ๋ก ๋ฐ๋์ ์ฌ์ฉํด ์จ ์ฌ๋์ผ๋ก์ ๋๋ ๋ฐ๋ ํ์ ๋ฆฌ๋์ญ์ด go get
( goinstall
ํ์)๋ก ๋ฒํ ์ค์์ ๋ํ ๊ตํ์ ๋ฐฐ์ฐ์ง ๋ชปํ ๊ฒ ๊ฐ์์ ์ด ๋ํ๊ฐ ๋ต๋ตํ๊ณ ๋๋ด์ค๋ฝ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
์ด ์ ์์ ๋ํด ๋ชฉ์๋ฆฌ๋ฅผ ๋ธ ํฉ๋ฆฌ์ ์ด๊ณ ์ค์ฉ์ ์ธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋จ์ํ "์๋ํ ๋๋ก ์๋ํ๋ค"๊ณ ๋งํ์ง ๋ง๊ณ ์ด๋ฅผ ํด๊ฒฐํ๋๋ก ์ ์์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. 1.11, 1.12, 1.13์์ ์ ๋๋ก ํ ์ ์๋ค๋ฉด ์ ๋๋ก ํ ์ ์์ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ์ด ์ ์์ ์ข์ ๋ฐฉ์์ด ์๋ ๋๋ถ๋ถ์ ๋ค๋ฅธ ์์คํ ๊ณผ ์๋นํ ๋ค๋ฅด๊ฒ ๋์ํ๋ ์์คํ ์ ์ ์ํฉ๋๋ค.
MVS ๋ค์ ์๋ ๋๊ธฐ ๋ถ์ฌ ์ด์ ๋ ์ ํต์ ์ธ ์ ๊ทผ ๋ฐฉ์์ด NP-Complete์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋งค์ฐ ์ด์ ํ ๋๊ธฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. NP-Complete ๋ฌธ์ ๋ฅผ ๋ค๋ฃฐ ๋ ์ฃผ์ ์ง๋ฌธ์ " ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ์ผ๋ง๋ ์์ฃผ ๋ฐ์ํฉ๋๊น?"์ ๋๋ค. ํจํค์ง ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ต์ด "๋งค์ฐ ๋๋ฌผ๊ฒ" ๋ํ๋ฉ๋๋ค. ๋ฌธ์ ์ ๋ํ NP-HARD ๋ ์ด๋ธ์ ํผํ๊ธฐ ์ํด ๋ถ์์ ํ๊ณ ๋์์ด ๋์ง ์๋ ๋ฌธ์ ๊ณต์ํ์ ๋ง์กฑํด์๋ ์ ๋ฉ๋๋ค.
๋๋ถ๋ถ์ ๊ตฌ์ฒด์ ์ธ ์์ ์ ์ด ๋ฌธ์ ์ ๋ ๊ฐ๊น์ด ๋ค๋ฅธ ์ฌ๋๋ค( @sdboyer @peterbourgon @mattfarina ๋ฑ...)์ ์ํด ํ๋ช ๋์์ต๋๋ค. ๋์ ์ฃผ๋ ๋ถ๋ง์ ์ด๋ฌํ ๊ตฌ์ฒด์ ์ธ ์ฌํญ์ด ์ ์ ํ๊ฒ ๋ค๋ฃจ์ด์ง์ง ์์์ ๋ ์ฐ๋ฆฌ๊ฐ ์ด ์ ์์ ์๋ฝํ๋ค๋ ๊ฒ์ ๋๋ค.
@SamWhited , ๊ฐ์ ๋์์ธ์ ์ ํ์ ๊ธฐ๋ฅ์ ๋ํด ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ๊ณ ์์ต๋๋ค. ํด๋ผ์ฐ๋ ์ ๊ณต์๋ฅผ ์ ๋ขฐํ์ง ์๊ฑฐ๋ ํด๋น ๊ตญ๊ฐ์ ๋ฐฉํ๋ฒฝ ๋ด์์ ํด๋ผ์ฐ๋ ์ ๊ณต์๋ฅผ ์ฌ์ฉํ ์ ์๊ฑฐ๋ ๋น์ฉ์ ์ง๋ถํ๊ณ ์ถ์ง ์์ ๊ฐ์์ ์ฌ์ฉ์๋ ๋ฐค์ ์์ ์ ์ปดํจํฐ์์ ํญ์ ํ
์คํธ(๋๋ ๊ทธ ์ผ๋ถ)๋ฅผ ์คํํ ์ ์์ต๋๋ค. ๋๋ go release
์๋ช
ํ์ธ์ ์ฌ์ฉํ๋ฉด 95% ๋ฌด๋ฃ์
๋๋ค.
@mattfarina , @SamWhited , ํ ๋ก ์ https://github.com/golang/go/issues/25483์ผ๋ก ์ด๋ํฉ์๋ค.
@mattfarina
์ด๋ฌํ ์ธ์ด์ ํจํค์ง๊ฐ SemVer ํธํ์ฑ ๋ฌธ์ ๋ก ์ธํด ์ค๋จ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋๋ก๋ ์๋์ ์ผ๋ก ๋๋ก๋ ์ฐ์ฐํ. ์ฌ๋๋ค์ด ์ค๋ฅ๋ฅผ ๋ฒํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ค๋ฅธ ๋ชจ๋ ์ธ์ด์ ์กด์ฌํ๋ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด Go๋ ๋ฌด์์ ๋ค๋ฅด๊ฒ ํ ๊ฒ์ธ๊ฐ?
vgo๊ฐ ์ด๋ฌํ ๊ฒฝ์ฐ์ dep๋ณด๋ค ์ฑ๋ฅ์ด ๋ ๋์ ๊ฒ์ผ๋ก ๊ฐ์ ๋๋ ์ด์ ๋ ์ฌ์ ํ ๋์๊ฒ ๋ช ํํ์ง ์์ต๋๋ค. ์คํ๋ ค vgo๊ฐ ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ์์ vgo ๋ชจ๋ธ์ ์คํจ์ ๋ํ ์ฆ๊ฑฐ๋ก helm์ ํน์ ๋ฌธ์ ๋ฅผ ์ธ๊ธํ์ต๋๋ค. ๊ทธ๋ฌ๋ vgo ์ธ๊ณ์๋ vgo๊ฐ grpc์ v1.4.0์ ์ฌ์ฉํ๊ธฐ๋ก ์ ํํ ๋ ๊ฐ์ง ์๋๋ฆฌ์ค๊ฐ ์์ต๋๋ค.
go.mod
grpc >= v1.4.0
๋ฅผ ์๊ตฌ ์ฌํญ์ผ๋ก ์ง์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋จ์ํ ์ด ์๊ตฌ ์ฌํญ์ ๋๋๋ ค ์์ ์๊ฒ ์ ํฉํ ์ด์ ๋ฒ์ ์ grpc
๋ก ๋กค๋ฐฑํ ์ ์์ต๋๋ค.grpc >= v1.4.0
๋ฅผ ์ง์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด ๊ฒฝ์ฐ dep๋ ์ค์นํ์ผ๋ฉฐ helm์ด grpc < v1.4.0
๋ฅผ ์ ํํ์ฌ ๋กค๋ฐฑํ๋ ค๊ณ ํ๋ฉด ์ถฉ๋ํ๋ ์๊ตฌ ์ฌํญ ๋๋ฌธ์ dep๊ฐ ์๊ฑฑ๊ฑฐ๋ ค์ผ ํฉ๋๋ค.๊ทธ๋์ ์ ์๊ฐ์๋ vgo๊ฐ ์ต์ํ dep๋งํผ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํํธ, dep ์ธ๊ณ์๋ ๋ ๋ค๋ฅธ ์ต์ ์ด ์์ต๋๋ค.
grpc >= v1.x.0
๊ฐ ํ์ํ๊ณ x < 4
$ ๊ฐ ์์๊ณ grpc
๋ v1.4.0
$๋ฅผ ๋ฆด๋ฆฌ์คํ์ผ๋ฉฐ dep๋ ๋ฌป์ง ์๊ณ ์ค์น ์ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. . ์ด ๊ฒฝ์ฐ ์กฐํ ์ฅ์น๊ฐ ๊ณ ์ฅ๋๊ณ ๋ฒ๊ทธ ์์ ๋ฆด๋ฆฌ์ค(๊ทํ์ ๊ฒ์๋ฌผ์ ์ค๋ช
๋ ๋๋ก)๋ฅผ ์ํํ๊ธฐ ์ํด ๋ชจ์ฌ๋ค์ด์ผ ํ๋ฉฐ, ์ด๋ก ์ธํด ์๊ณ ๊ฐ ๋ฐ์ํฉ๋๋ค. ํํธ vgo๋ ์ ๋ฒ์ ์ ๋ฌด์ํ๊ณ ๊ณ์ํด์ ์ ์๋ํ ๊ฒ์
๋๋ค.๋๋ ๋ถ๋ช ํ ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ ๊ฐ๊ณผํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๋๋ฒ์ slack์์ ์ด์ ๋ํ ์ค๋ช ์ ์์ฒญํ์ ๋ ๊ฐ์์ ๋ฏธ๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ๋ก ์ฐ๊ธฐ๋์์ต๋๋ค. ๋ฐ๋ผ์ ๋ด ์ข์ ๊ฐ์ vgo์์ ์์ด๋์ด๊ฐ ์ด๋์์ ์๋์ง ์ดํดํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ dep๋ณด๋ค ์ฌ๋๋ค์ด ๋ฒ์ ์ ์๋ฏธ๋ฅผ ๊นจ๋ ๋ฐ ๋ ๋ง์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ช
ํํ ํ์๋ฉด ์ด๊ฒ์ dep
์ ๋ํ ๊ฒ์ด ์๋๋๋ค. MVS(vgo)๊ฐ ๋ค๋ฅธ SAT-solver ๊ธฐ๋ฐ ํจํค์ง ๊ด๋ฆฌ ์๋ฃจ์
(dep ํฌํจ)๊ณผ ๋น๊ตํ์ฌ ์ด๋ป๊ฒ ๋์ํ๋์ง์ ๋ํ ๋ถ์์
๋๋ค.
Matt์ ๋ ๋ค๋ฅธ ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋น์ ์ app
๋ชจ๋์ ๊ฐ๋ฐ์์ด๋ฉฐ ๋ ๊ฐ์ง ์ข
์์ฑ์ด ์์ต๋๋ค.
grpc
[>= 1.8
]helm
, ๋ค์ ์ข
์์ฑ์ด ์์ต๋๋ค.grpc
[>= 1.0, < 1.4]( grpc
๊ฐ 1.4์์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋์
ํ๊ธฐ ๋๋ฌธ์).๋๋ถ๋ถ์ ์ฌ๋๋ค์ ์ดํ ์ข
์์ฑ ์๊ตฌ ์ฌํญ( helm
-> grpc
[>= 1.0, < 1.4])์ ๋ํด ์์ง ๋ชปํฉ๋๋ค helm
grpc
>= 1.4๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋๋ค์์ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ๋ํด ๊ด์ฌ์ ๊ฐ์ง๊ฑฐ๋ ๊ทธ๊ฒ์ ์กฐ์ฌํ๋ ๋ฐ ์๊ฐ๊ณผ ์๋์ง๋ฅผ ์๋นํ๋ ๊ฒ์ด ์๋๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
vgo(ํนํ MVS์ ์์กด)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์์ ์ป๊ฒ ๋ฉ๋๋ค.
helm
grpc
[>= 1.8
]์ด๊ฒ์ ์๋ชป๋ ์กฐํฉ์ด์ด์ผ ํ๋ฉฐ( helm
์๊ตฌ ์ฌํญ์ด ์ถฉ์กฑ๋์ง ์๊ธฐ ๋๋ฌธ์) ๋๋ถ๋ถ์ dep ๊ด๋ฆฌ์๋ ์ถฉ๋์ด ์๋ค๋ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค( helm
๊ฐ ์ผ๋ถ ๋ฌธ์์์ ์๊ตฌ ์ฌํญ์ ๋ช
์ํ ๊ฒฝ์ฐ). ์ฒด์ฌ).
์ด๊ฒ์ MVS์ vgo์ ๋ํ ๋นํ์ ์ค์ํ ํฌ์ธํธ์
๋๋ค. ์ ์ฒด SAT ํด๊ฒฐ์ด ํ์ํ์ง ์๋๋ก ํน์ ๋ฒ์ ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ข
์์ฑ์ด ๋ช
์๋๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค. ์์ธํ ์ค๋ช
์ MVS ๋ฌธ์ ์ Theory
๋ฐ Excluding Modules
์น์
์ ์ฐธ์กฐํ์ธ์.
MVS๋ SemVer๊ฐ ํญ์ ์กด์ค๋๊ณ ๋ฐ๋ผ์ ์ด๊ฒ์ด ํ์ํ์ง ์๋ค๋ ๊ฐ์ ํ์ ์ด ๊ฐ๋ฅ์ฑ์ ์ธ์ ํ๊ธฐ๋ฅผ ์ํ์ง ์์ต๋๋ค(๋๋ ์ ์ด๋ ํ์ฌ ๋ชจ๋์ ์ง์ํ๋ ๊ธฐ๋ฅ์ ์ ํํ๊ธฐ๋ฅผ ์ํจ). ์ค์ ๋ก ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค. ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๊ณ ์ํ๋ ๊ฒ์ด ์ด๋ ต๊ณ ๊ฐ์ ๋ก vgo ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋น์ค์ฉ์ ์ธ ์ด์ ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๋ํ ๊ทํ์ ๊ธฐ์ฌ๋ฅผ ์ฐธ์กฐํ ๊ฒ์ ๋๋ค.
MVS ์๋ฃจ์ ์ ๋ชจ๋ ๊ฐ๋ฐ์ ์๊ฒ ์ด๋ฌํ ๋นํธํ์ฑ์ ๋ํด ์ข ์์ฑ ์์ฑ์๊ฐ ๊ณต์ ํ ์ ์๋ ์ง์์ ๋ฌด์ํ๊ณ ์ ์ธํ ๋ฒ์ ์ ์ง์ ํ๋๋ก ์์ฒญํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๋๋ถ๋ถ์ dep ๊ด๋ฆฌ์๊ฐ ์ด๋ค ๋ฒ์ ์ ์ข ์์ฑ์ด ์๋ก ํธํ๋๋์ง(์ฆ, SAT ํด๊ฒฐ) ํ์ ํ๊ธฐ ์ํด ๊ฑฐ์ณ์ผ ํ๋ ๋ณต์กํ ๋ ผ๋ฆฌ๋ฅผ ์๊ณ ์ํํด์ผ ํ๋ ์ฑ ์์ ๊ฐ๋ฐ์์๊ฒ ์ ๊ฐํฉ๋๋ค.
์ฌ๋๋ค์ด ๋ง๋ฒ์ฒ๋ผ SemVer๋ฅผ ๋ฐ๋ฅด๊ธฐ ์์ํ์ง ์๋ ํ, vgo๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋์ ๊ฐ์ ธ์จ ํ ํธํ๋์ง ์๋ ๋ฒ์ ๋ชฉ๋ก์ ๋ณต์ฌํ๊ธฐ ์ํด README ํ์ผ์ ํ์ธํด์ผ ํ๋ ๊ดด์ํ ์ฐ์ต์ผ๋ก ๋ณํํ ๋ ์ข
์์ฑ์ ์ค์นํ๋ ๊ฒ์ ์์ํ ์ ์์ต๋๋ค. go.mod
ํ์ผ์ ์์ต๋๋ค. exclude
๋ฌธ์ ํ์ฌ ํ๋์ ๋ฒ์ ๋ง ์ฌ์ฉํฉ๋๋ค.
@๋ฉ๋ก๋น์ฐ์ค
@mattfarina ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ์๋์ ์ผ๋ก grpc v1.4.0์ผ๋ก ์
๊ทธ๋ ์ด๋ํ๋ Helm์ ์ค๋ช
ํฉ๋๋ค. ์ฆ, go.mod
๋ฅผ ์
๋ฐ์ดํธํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๋ dep ๋๋ vgo๊ฐ ์ด ๋ฌธ์ ๋ฅผ ํผํ๋ ๋ฐฉ๋ฒ์ด ์๋๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ ์ด ๋ฌธ์ ์์ ๋ณต๊ตฌํ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ์
๋๋ค. dep์ ๊ฒฝ์ฐ grpc<v1.4.0
์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ํจ์น๋ฅผ ๋ฆด๋ฆฌ์คํ ์ ์์ต๋๋ค. grpc์ ๋ํ ๋ค๋ฅธ ์ข
์์ฑ์ด ์๋ ์ฌ์ฉ์์ ๊ฒฝ์ฐ ์ด๊ฒ์ด ์๋ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ด๋ฏธ ์ต์ ๋ฒ์ ์ helm์ผ๋ก ์
๋ฐ์ดํธํ๊ณ grpc>=v1.4.0
์ ๋ํ ๋ ๋ค๋ฅธ ์ข
์์ฑ์ด ์๋ ๊ฒฝ์ฐ ์ด ์ ์ฝ ์กฐ๊ฑด์ผ๋ก ์ธํด ๋น๋๊ฐ ์คํจํฉ๋๋ค. ์ด์์ ์ด์ง๋ ์์ง๋ง ๋ฏธ๋ฌํ๊ฒ ๊นจ์ง ๋ฐํ์ ๋์๋ณด๋ค ๋ซ์ต๋๋ค.
vgo
๋ฅผ ์ฌ์ฉํ๋ฉด Helm ์ ์ง ๊ด๋ฆฌ์๊ฐ ์ด์ ์์ํ๋ ์ต์
์ ์ฌ์ฉํ ์ ์์ต๋๊น? ์ฌ์ฉ์๊ฐ ์ด๋ค ์ด์ ๋ก๋ grpc๋ฅผ v1.4.0์ผ๋ก ์
๊ทธ๋ ์ด๋ํ๋ค๋ฉด MVS๋ ํญ์ [email protected] ์ ์ ํํ๊ณ , Helm์ ์ค๋จ๋๋ฉฐ Helm ์ ์ง ๊ด๋ฆฌ์๊ฐ ์ด์ ๋ํด ํ ์ ์๋ ์ผ์ ์์ต๋๋ค(๋ณ๊ฒฝ๋ ๋์์ ๋ํ ์กฐ์ ์ ์ธ, ์ข
์ข
์๊ฐ ์๋ชจ). @mattfarina ์ ๋ํด ๋งํ ์๋ ์์ง๋ง ์ ๊ธฐ๋ ์ฐ๋ ค ์ฌํญ์ ์ฝ๊ณ ๊ณต์ ํ๋ ๋ด์ฉ์
๋๋ค. dep
๋ฐ ์ด์ ์ ์ฌํ ์์คํ
์ ์ฌ์ฉํ๋ฉด ์ค๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ํ ์ ์ฝ ์กฐ๊ฑด์ด ์๋ ํธํ์ฑ ์๋ฐ์ ๋ฐฉ์ดํ ์ ์์ต๋๋ค(๋๋ ๋ ์์ฃผ ๋ณต๊ตฌํ ์ ์์).
@ibraho @mattfarina
GopherconSG ํ ํฌ์์ Russ์ ์ ์ค ํ๋๊ฐ ๋งค์ฐ ์ ์ฌํ(๋์ผํ?) ์๋๋ฆฌ์ค๋ฅผ ๋ค๋ฃจ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์์ ๊ฒ์๋ฌผ์์ helm์ด "grpc [>= 1.0, < 1.4]"์ ์์กดํ๋ค๊ณ ๋งํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์๊ฒฉํ๊ฒ ์ ํํ์ง ์์ต๋๋ค. ๋น์ ์ด ์๋ฏธํ๋ ๋ฐ๋ ์ผ๋ถ ํน์ ๋ฒ์ ์ helm์ด "grpc [>= 1.0, < 1.4]"์ ์์กดํ๋ค๋ ๊ฒ์ ๋๋ค. helm ๋ฒ์ ์ด 2.1.3์ด๋ผ๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์๋ง๋ ์ด ๋ฒ์ ์ helm์ grpc 1.4 ์ดํ์ ์ถ์๋์์ ๊ฒ์ ๋๋ค(๊ทธ๋ ์ง ์์ผ๋ฉด grpc 1.4์ ํธํ๋์ง ์๋ ๊ฒ์ผ๋ก ํ์๋์ง ์์์ ๊ฒ์ ๋๋ค). ๊ทธ ์ด์ผ๊ธฐ์์ Russ์ ์์ ์ helm์ ์ด์ ๋ฒ์ (์: 2.1.2)์ ์๋ง๋ (์์ง) grpc 1.4์ ํธํ๋์ง ์๋ ๊ฒ์ผ๋ก ํ์ํ์ง ์์์ ๊ฒ์ ๋๋ค.
๋ค์ ๋งํด, ๋ง์กฑ์ค๋ฌ์ด ํ ๋น(dep์ ๋ฐ๋ผ)์ helm = 2.1.2, grpc = 1.8์ผ ๊ฒ์ ๋๋ค. Dep๋ ์ฃผ์ด์ง ๋ฒ์ ์์ ๋ชจ๋ ์ ์ฝ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ฏ๋ก ์ค๋ฅ ์์ด ์ด ๋ฒ์ ํ ๋น์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ํํ ์ ์์ต๋๋ค.
@balasanjay
Helm์ ๋ฒ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. [email protected] ๋ [email protected] ์ ๋ํ ์ข ์์ฑ์ ์ ์ธํ ์ ์๊ณ helm ์ฌ์ฉ์๋ ์ง์ ๋๋ ๋ค๋ฅธ ํจํค์ง๋ฅผ ํตํด [email protected] ์ ๋ํ ์ข ์์ฑ์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด ์๋๋ฆฌ์ค์์ MVS๋ ์คํจํ๊ณ [email protected] ๋ฐ [email protected]์ ์ค์นํฉ๋๋ค. ๊ฒ๋ค๊ฐ, ์ด ์์ ๋ ๋ฌธ์ ๊ฐ ๋ฐํ์ง๊ธฐ ์ ์ ์ฌ์ฉ์๊ฐ ์๋์ ์ผ๋ก [email protected] (๋ฐ๋ผ์ [email protected]) ๋ฐ ์๋ง๋ [email protected] , [email protected] ๋ฑ์ผ๋ก ์ ๋ฐ์ดํธํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
MVS๋ ์ด๋ก ์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ์๋์ ์ผ๋ก ์ค๊ฐ ์ข ์์ฑ์์ ์ ์ธ๋ฅผ ํ์ฉํ์ง ์์ต๋๋ค.
๋ถ์ ์ ์ธ ์๋ฏธ(X โ ยฌ Y, ๋๋ฑํ๊ฒ ยฌ X โจ ยฌ Y: X๊ฐ ์ค์น๋ ๊ฒฝ์ฐ Y๊ฐ ์ค์น๋์ง ์์์ผ ํจ)๋ ์ถ๊ฐํ ์ ์์ต๋๋ค...
์ด ์์์๋ X= helm>= 2.1.3
๊ฐ ์ค์น๋์ด ์์ผ๋ฉด Y= grpc>=1.4.0
๊ฐ ์ค์น๋์ง ์์์ผ ํ๋ค๋ ํํ์ด ํ์ํ๋ฉฐ ์ด๋ ์๋์ ์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
์ค์ ๋ก ์ต์์ ํจํค์ง(์์์ ์์ ํ์ฌ)์ ์ตํ์ ์์ค ์ฌ์ฉ์(์๋์ผ๋ก ์ ์ธ๋ฅผ ์ถ๊ฐํ์ฌ)๋ง์ด ํธํ์ฑ ๊ท์น์ด ๊นจ์ก์ ๋ ์ด๋ค ์๋จ๋ ๊ฐ์ง ์ ์์ต๋๋ค. Helm๊ณผ ๊ฐ์ ์ค๊ฐ์ฒด๋ ๋ชจ๋ ์ข ์์ฑ์ ๋ชจ๋ ํฅํ ๋ฒ์ ๊ณผ ํจ๊ป ์๋ํด์ผ ํ๋ฉฐ, ์ด๋ ๋์๊ฒ ๊ทธ๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์น ์ ์์ ํฌ๊ฒ ๊ฐ์์ํต๋๋ค.
์๋ง๋ ์ด๋ grpc ๋ฐ aws-sdk-go์ ๊ฐ์ด ๋ง์ด ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ ๋์ ๋์์ ์ฅ๋ คํ ๊ฒ์ ๋๋ค. ๋ชจ๋ ์์์ด ๋ชจ๋ ๋น์ฌ์์๊ฒ ๋๊ปด์ง๊ณ ํด๊ฒฐํ๊ธฐ ๋ ์ด๋ ค์ธ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ํญ์ ๊ทธ๋ ๊ฒ ์ฌ์ด ๊ฒ์ ์๋๋๋ค. "ํ์"์ด ์ค์ ๋ก ํ์์ด ์๋๋ผ ์ผ๋ถ ์ฌ์ฉ์์๊ฒ๋ ์๋ํ์ง ์์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค์ง๋ง ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ๋ ๋์์ด ๋๋ ํฉ๋ฒ์ ์ธ ํ๋ ๋ณํ๋ผ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ๊ทธ๋ฌํ ์ ํ์ ์ผ์ ๋๋ฌธ ์ผ์ด ์๋๋ฉฐ ์ ์คํธ๋ฆผ ์์ฑ์๋ ํด๋น ์๋๋ฆฌ์ค์์ ๋ณ๊ฒฝ ์ฌํญ์ ๋๋๋ฆฌ๋ ๊ฒ์ ์ฃผ์ ํ ๊ฒ์ ๋๋ค.
๋๋ Russ๋งํผ ๋ช ํํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค์ ์๋ํ๊ฒ ์ต๋๋ค.
์ฒ์์ deps์ ์ํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํฌ๊ตฌ 2.1.2: grpc >= 1.0
๊ทธ๋ฐ ๋ค์ grpc 1.4๊ฐ ๋ฆด๋ฆฌ์ค๋ฉ๋๋ค. Helm ๊ฐ๋ฐ์๋ ๋นํธํ์ฑ์ด ์์์ ๊นจ๋ซ๊ณ ์ ๋ฒ์ ์ Helm์ ํธ์ํฉ๋๋ค.
ํฌ๊ตฌ 2.1.3: grpc >= 1.0, < 1.4
๋๋ Helm๊ณผ grpc์ ๋ช ๊ฐ์ง ์๋ก์ด ๊ธฐ๋ฅ์ ์์กดํ๋ ์ ์ฑ์ ์์ํฉ๋๋ค(์ธ์๋ฅผ ์ํด). ๋๋ ๋ค์๊ณผ ๊ฐ์ deps๋ฅผ ๋์ดํฉ๋๋ค.
ํฌ๊ตฌ >= 2.0.0
grpc >= 1.4
์์ ์ฃผ์ฅ์ dep๊ฐ ๋ด์ฌ๋ ์ถฉ๋์ ์ธ์งํ๊ณ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ Russ๋ ์ถฉ๋์ด ์๋ ๋ฒ์ ํ ๋น์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ์ค์ด ์๋๋ผ๊ณ ์ง์ ํ์ต๋๋ค. ํนํ dep๋ helm 2.1.2 ๋ฐ grpc 1.4๋ฅผ ์ฌ์ฉํ๋๋ก ์ ํํ ์ ์์ต๋๋ค. dep์ ๋ฐ๋ฅด๋ฉด, ์ด๊ฒ์ helm 2.1.1์ด๊ธฐ ๋๋ฌธ์ ์ ํจํ ํ ๋น์ ๋๋ค. 3 ์ grpc 1.4์ ํธํ๋์ง ์๋ ๋ฐ๋ฉด 2.1์ ํธํ๋์ง ์์ต๋๋ค. 2 ๋ ๋ชจ๋ grpc >= 1.0๊ณผ ํธํ๋ฉ๋๋ค.
๋ค์ ๋งํด, dep๋ ์์ง ์ถฉ๋์ ๊ธฐ๋กํ์ง ์์ ๋ฒ์ ์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋ํ์ฌ ์ถฉ๋์ "์์ "ํ๋๋ก _์ ํจํ๊ฒ_ ์ ํํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝํ ์ ์๋ ๋ฒ์ ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ ๋ถ๊ฐํผํด ๋ณด์ ๋๋ค. ๋ฐ๋ผ์ dep๋ https://codeengineered.com/blog/2018/golang-vgo-broken-dep-tree/๋ฅผ ์๋ชป ์ฒ๋ฆฌํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@balasanjay ๋ฌผ๋ก ์ ๋๋ค. ํ์ง๋ง ๊ฒฐ๊ตญ Helm์ ์ํ๋ ๊น๋ํ ์ ๊ธฐ๋ฅ์ด ํฌํจ๋ 2.2.0์ ๋ด๋๊ณ ์ ๊ทธ๋ ์ด๋ํ๋ ค๊ณ ํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
(์ ๋ vgo๊ฐ MVS ๊ฒฐ๊ณผ์ ์ด ํ์์ "์ถฉ๋"์ด ์์์ ์๋ฆฌ๊ธฐ ์ํด ์ ์ค๊ณ๋ UX๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ์ด๊ฒ์ด ์ ๋ ๊ฒ์ด๋ผ๊ณ ์กฐ์ฌ์ค๋ฝ๊ฒ ๋๊ดํฉ๋๋ค. ํญ์ ๋ง์ ๊ฒฝ๊ณ ์ ํจ๊ป OK๊ฐ ์๋ ๋ฌธ์ .)
dep๊ฐ ์ถฉ๋์ ๊ฐ์งํ๋ ์ํฉ์ด ์๋ค๋ ๋ฐ์๋ ํ์คํ ๋์ํ์ง๋ง, ํด๋น ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ ์๋ ๊ฒ์ด _์๋๋๋ค_(์ ์ด๋ ํ์ฌ ์ ์๋ ๋ฒ์ ์๊ตฌ ์ฌํญ์ด ์๋).
๊ทธ๋ฆฌ๊ณ FWIW, ์ถฉ๋์ ๋น๊ต์ ๊ฐ๋จํ ์๋ฅผ ์๋ฐํ๋ ๊ฒฝ์ฐ ๋ณดํธ ์ฅ์น์ ํจ๊ณผ์ ์๋ฌธ์ ์ ๊ธฐํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ธฐ๋ก์ ์ํด ๋๋ Russ์ ์๋ฅผ ์ถ์ ํ์ต๋๋ค(์ด๊ฒ์ ์ธ์์ ์ธ ์ ๋๋ก ์ด๊ฒ๊ณผ ๊ฑฐ์ ๋์ผํฉ๋๋ค): https://youtu.be/F8nrpe0XWRg?t=31m28s
Re: ์ต์ ๋ฒ์ ์ ํ, ๋ค์ ์ํฉ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ ์ง ๋ชจ๋์ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ํด ๋ณด์ญ์์ค. ์๋ฅผ ๋ค์ด v1.2.3์ด ๋ณ๊ฒฝ ์์ด 1๋
๋๊ฒ ๋์๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. ๋ค๋ฅธ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด์ ์์กดํฉ๋๋ค.
๊ฐ๋ฐ์๊ฐ ์์ v1.2.3์์ ๋ง๋๋ ์๋ ์ต์ ํ๋ฅผ ์คํํฉ๋๋ค. API ๋ณ๊ฒฝ ์์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํต์ฌ ๊ธฐ๋ฅ ์๋๋ฅผ 10๋ฐฐ๊น์ง ๋์
๋๋ค! ์ด๊ฒ์ v1.3.0์ผ๋ก ์ถ์๋์์ต๋๋ค. ๋ค์ ํด์๋ ์ด ํจํค์ง์์ ๋ ์ด์ ๋ฒ๊ทธ๊ฐ ๋ฐ๊ฒฌ๋์ง ์์ต๋๋ค.
์์กดํ๋ ์ฌ๋๋ค์ ์ด๋ป๊ฒ ์ด ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๊น? ๊ทธ๋ค์ v1.2.3์์ ์๋ ํ ์ ์์ง๋ง v1.3.0์ด ๋ถ๋ช ํ ๋ ์ข์ต๋๋ค.
@daurnimator
์์กดํ๋ ์ฌ๋๋ค์ ์ด๋ป๊ฒ ์ด ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๊น?
๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ต์ ๋ฒ์ ์ผ๋ก 1.3.0์ ์ค์ ํด์ผ ํฉ๋๋ค.
๊ธ์, ์ค๋์ ์ผ๋ง๋ ์ด๋ฆฌ์์ ๋ ์ธ๊ฐ! ๐
์ด ์ ์์ 2๊ฐ์ ๋๊ฒ ํ๋ฐํ ๋ ผ์์ ํจ๊ป ๊ณต๊ฐ๋์์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์๋ ๋์ ์ด๋ ค ์์๊ณ ์ด ๋ชจ๋ ๊ฒ์ ๋ํด ์ค์ ๋ ํ์๋ผ์ธ rsc๋ ๋ชจ๋ ๊ฒ์ ๊ณ ๋ คํ์ ๋ ์ธ์์ ์ผ๋ก ๋งค์ฐ ์งง์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ ์ด ์ ์์ ๋ํด ๋ ๊ฐ์ง ๋ฐ๋๊ฐ ์์์ต๋๋ค.
- ์ ์์ ๋นํธํ์ฑ๊ณผ ๊ด๋ จํ์ฌ ๋ฐ์ํ ์ ์๋ ๋ชจ๋ ๊ฐ๋ฅํ ์๋๋ฆฌ์ค์ ๋ํ ๊ธฐ์ ์๋ฃจ์ ์ ์ ๊ณตํ์ง ๋ชปํฉ๋๋ค.
์ด๊ฒ์ด ๋ด๊ฐ Russ์๊ฒ ์ค๋ช ํ ์ ์ฅ์ ๋ํ ์์๋ผ๋ฉด ์คํด์ ์์ง๊ฐ ์๋ ์บ๋ฆฌ์ปค์ฒ์ ๋๋ค. ์ด ์ฃผ์ ์ ๋ํ ๋ด ์๊ฐ์ ์ ๋ฆฌํ๋ ๋ฐ ๊ทธ๋ ๊ฒ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ ํ ๊ฐ์ง ์ด์ ๋ ์๋ชป๋ ์ฃผ์ฅ๊ณผ ์ง์ ์ ๋ฐ๋ณต์ ์ธ ์ฌ์ฉ์ด...์์งํ ๋ถ์์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ง ๊ทธ๋๋ก ๋ชจ๋ ๊ฐ๋ฅํ ์๋๋ฆฌ์ค๋ฅผ ๋ค๋ฃฐ ์ ์๋ค๊ณ ์๊ฐํ๋ ์ฌ๋์ ์์ต๋๋ค. ๋ฌธ์ ๋ MVS๊ฐ _์ค์์ ์ธ_ ๋ฌธ์ (SAT๋ฅผ ํผํจ)๋ง ํด๊ฒฐํ๊ณ , ์ค์ ๋ก ํจ์ฌ ๋ ์ค์ํ _new_ ๋ฌธ์ ๋ฅผ ๋์ ์์ฑํ๋ฉฐ, ํฉ๋ฆฌ์ ์ผ๋ก ์๋ํ ์ ์๋ ์ค๊ฐ ๊ณ์ธต์ผ๋ก ํจ๊ณผ์ ์ผ๋ก ๊ธฐ๋ฅํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ค์ ๊ด์ฐฐ์ ์ ํํ์ง๋ง ์๋ํ ๋๋ก ์๋ํฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ gofmt ์คํ๊ณผ ๊ฐ์ Go์ ๋ค๋ฅธ ์ธ๋ถ ์ฌํญ์ ์ ์ํ ๊ฒ์ฒ๋ผ ์ฝ๋ ์์ฑ์์ ์ฌ์ฉ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ๋ฐ ๋ฆด๋ฆฌ์ค์ ๋ํ ์ผ๋ถ ๊ดํ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์์ ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ๋๋ฅผ gofmt ์คํ๊ณผ ๋น๊ตํจ์ผ๋ก์จ ์๋ฌด ๋์๋ ๋์ง ์์ต๋๋ค. ์๋ง๋ Go ๊ฐ๋ฐ์๋ก์ ์ํํ๋ ๊ฐ์ฅ ๋ฌด๋ชจํ ํ๋์ผ ๊ฒ์ ๋๋ค.
Russ๊ฐ ์ต๊ทผ Gophercon Singapore ์ฐ์ค์์ ์ง์ ํ๋ฏ์ด ๋นํธํ์ฑ์ ๋ํ ์ ์ผํ ์๊ตฌ์ ์ธ ํด๊ฒฐ์ฑ ์ ํจ๊ป ํ๋ ฅํ์ฌ ๋นํธํ์ฑ์ ์์ ํ๊ณ Go ํจํค์ง ์ํ๊ณ๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค. vgo ๋๋ dep์ ๊ฐ์ ๋๊ตฌ์ ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋ฐ์๊ฐ ์ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๊ฐ์ ์ค ์ ์์ ๋งํผ๋ง ์๋ํ๋ฉด ๋๋ฉฐ vgo๋ ์ด ์์ ์ ์ถฉ๋ถํ ์ํํฉ๋๋ค.
์ค์ํ ๊ฒ์ _์ปค๋ฎค๋ํฐ_์ ๋๋ค. ์ฐ๋ฆฌ๋ฅผ. ์ํํธ์จ์ด ์ํ๊ณ๋ฅผ ๋ง๋๋ ์ฌ๋๋ค. ์ฐ๋ฆฌ๋ ์ ํ๋ ํ ํฐ์ ์ ์ฉํ ํ์ ์ ์ฌ์ฉํ๋ ๋ฐ ๋์์ด ๋๋ ๋๊ตฌ๋ฅผ ๋ง๋ค์ด ๋ ๋์ ์ํ๊ณ์ ๋๋ฌํฉ๋๋ค.
@๋ฉ๋ก๋น์ฐ์ค :
๋๋ ๊ฐ์์ ๋ฏธ๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ๋ก ์ฐ๊ธฐ๋์์ต๋๋ค. ๋ฐ๋ผ์ ๋ด ์ข์ ๊ฐ์ vgo์์ ์์ด๋์ด๊ฐ ์ด๋์์ ์๋์ง ์ดํดํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ dep๋ณด๋ค ์ฌ๋๋ค์ด ๋ฒ์ ์ ์๋ฏธ๋ฅผ ๊นจ๋ ๋ฐ ๋ ๋ง์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ด ๋ชจ๋ ์ฃผ์ฅ์ ํ๋๋ก ๋ชจ์ผ๋ ๋ฐ๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ ์ผ์์ด ์๋๋๋ค. ์ค๋ ๋ฐค์ ๋๋ด๋ ค๊ณ ํ๋๋ฐ ์์ง ์ต์ข ํธ์ง ๋จ๊ณ์ ์์ต๋๋ค. ๐ข๋ด์ผ ์์นจ...? ์๋ฌด๊ฒ๋ ๊ณ ์ ๋์ด ์์ง ์์ต๋๋ค!
๋ฌธ์ ๋ MVS๊ฐ (SAT๋ฅผ ํผํ๋) ํ์์ ๋ฌธ์ ๋ง ํด๊ฒฐํ๋ค๋ ๊ฒ์ ๋๋ค.
์ ์คํ๊ฒ, IMHO SAT ์๋ฃจ์ ์ ์๋ฃจ์ ์ด ์๋๋ฏ๋ก ์ ์๊ฒ MVS๋ ๋งค์ฐ ์ค์ ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
IMHO SAT ์๋ฃจ์ ์ ์๋ฃจ์ ์ด ์๋๋ฏ๋ก ๋์๊ฒ MVS๋ ๋งค์ฐ ์ค์ ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
๊ฐ๋ฅํ๋ค๋ฉด ๊ทธ ์ด์ ๋ฅผ ์๊ณ ์ถ์ต๋๊น?
์ด ๋ฌธ์ ๋ ์๋ ๋์ ์ด๋ ค ์์๊ณ ์ด ๋ชจ๋ ๊ฒ์ ๋ํด ์ค์ ๋ ํ์๋ผ์ธ rsc๋ ๋ชจ๋ ๊ฒ์ ๊ณ ๋ คํ์ ๋ ์ธ์์ ์ผ๋ก ๋งค์ฐ ์งง์์ต๋๋ค.
์ฌ๊ธฐ์์ ๋ถ๋ช ํ ์์ถฉ๋๋ ๋ ๊ฐ์ง ์์ด๋์ด๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ค๋ฌธ ์กฐ์ฌ๋ ์ข ์์ฑ ๊ด๋ฆฌ์ ์กฐ๋ง๊ฐ ์๋ฃจ์ ์ด ํ์ํ๋ค๋ ๊ฒ์ ๋ฐ๋ณตํด์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ๊ทธ๋ฌ๋ 6๊ฐ์์ด๋ผ๋ ์ผ์ ์ ์ ์์ ๊ฒํ ํ๊ณ ์น์ธํ๊ธฐ์ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ๊ตฌํํ ์ฒซ ๋ฒ์งธ ์๋ฃจ์ ์ ์ ํํด์๋ ์๋๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ์๊ฐ์ ์์ธ ์ค ํ๋์ ๋๋ค. vgo์ ๋ํ ๋ฐ๋ ์ ์์ ์์ง ์ ์ ์๋์ง ์์์ผ๋ฉฐ ์คํ๋๋ ค๋ฉด ๋ช ๋ ์ด ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค. ๋๋ Go 1.14์ ๋งค์ฐ ๋ฉ์ง SAT ๊ธฐ๋ฐ ์๋ฃจ์ ๋ณด๋ค Go 1.11์ vgo๋ฅผ ์ ํํ๊ณ ์ถ์ต๋๋ค.
์ด๊ฒ์ ๋ํ vgo ๊ตฌํ์ด ๊ณ ์ ๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์๋ ํ vgo๋ 1.12 ๋ฐ 1.13 ๊ธฐ๊ฐ ๋์ ์๋นํ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
๊ฐ๋ฅํ๋ค๋ฉด ๊ทธ ์ด์ ๋ฅผ ์๊ณ ์ถ์ต๋๊น?
PCRE๋ณด๋ค Go์ ์ ๊ท ํํ์์ ์ ํธํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ ผ๋ฆฌ์ ๋๋ค. ํ๋ก๊ทธ๋จ์ด 2์ฐจ/์ง์ ์ต์ ์ ๋ณต์ก๋๋ฅผ ๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ์ ์์กดํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค.
์ฐ๋ฆฌ๋ vgo
๊ฐ go get
๋ฅผ ๋์ฒดํ ๋ฟ์์ ๋ช
์ฌํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ vgo
go get
vgo
๋ฅผ ๋น๊ตํด์ผ ํ๋ฉฐ ์กด์ฌํ์ง ์๋ ๊ฒ๊ณผ ๋น๊ตํด์ผ ํฉ๋๋ค. "๋์ ๊ฒ์ด ๋ ์ข๋ค"! ์ด์ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ์ง์คํ๊ฒ ์ต๋๋ค.
FWIW, IMO๋ ์์ ํ SAT ์๋ฒ ์์ด ์ํ์ ๋์ ํ๋ ๊ฒ์ด ์์ ํ ๊ฐ๋ฅํฉ๋๋ค. ์์ฑ๋ ์๋ฃจ์ ์ด ์ต์ ์ด ๋๋๋ก ํ๊ฑฐ๋ ๊ธฐ์กด ์๋ฃจ์ ์ด ๋ฐ๊ฒฌ๋ ๊ฒ์ด๋ผ๊ณ ๋ณด์ฅํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด MVS(๋ณ๋ฆฌํ์ ๋ฐํ์์ด ์๋ ๊ฐ๋จํ ์๊ณ ๋ฆฌ์ฆ)์ ์ด์ ์ ์ป์ ์ ์์ด ๋นํธํ์ฑ์ ํ์ํ๊ณ ์ด๋ฅผ ์ ์ ์ผ๋ก ๊ฐ์งํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ์ ์งํ์ง๋ง ์กด์ฌํ๋ ๊ฒฝ์ฐ ํญ์ ์๋ฃจ์ ์ ์ฐพ์ ์ ์๋ค๋ ๋ณด์ฅ์ ํฌ๊ธฐํ๊ฒ ๋ฉ๋๋ค. ๋ ผ์์ ์ฌ์ง๊ฐ ์์ง๋ง, ๋น์ ์ด ์ฐพ์ ์๋ฃจ์ ์ ์ค์ ๋ก ์๋ฃจ์ ์ด ์๋๋๋ค. ์๋ํ๋ฉด ๋นํธํ์ฑ์ด ์ฌ์ ํ ์กด์ฌํ๊ณ ์๊ณ ๋ฆฌ์ฆ์ ์๋ ค์ง์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋์ ์ ์ด๋ ๋์๊ฒ๋ MVS์ ์ํ์ ์ ์ป๊ธฐ ์ํด ์ด๋ค ์์ผ๋ก๋ ๊ฐ์กฐํ๋ ๊ฒ์ด ์๋ฒฝํ๊ฒ ๊ฐ๋ฅํ ๊ฒ์ฒ๋ผ ๋ณด์ผ ๊ฒ์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์ค์ ๋ก ํ์ํ๋ค๋ ๊ฒ์ ์ฌ์ ํ ํ์ ํ์ง ๋ชปํ์ง๋ง, ๊ทธ๊ฒ์ด ์ฌ์ค๋ก ๋ฐํ์ง๋ฉด ๋์ค์ ์ธ์ ๋ ์ง ์ถ๊ฐํ ์ ์์ต๋๋ค. "MVS๋ ๊ทผ๋ณธ์ ์ผ๋ก ๋ถ์ ํฉํ๋ค"๋ ์ฃผ์ฅ์ ๋ฌธ์ ๋ก ๋ง๋๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ฌ์ ํ ๋ฌธ์ ๋ฅผ ์คํดํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋ ์ ๋ณด์ฌ์ฃผ๋ ์คํจ ์๋๋ฆฌ์ค๊ฐ ์์ ์ ์์ต๋๊น?
@sdboyer ๊ฑฑ์ ๋ง์ธ์. ๋ด๊ฐ ๋งํ๋ฏ์ด, ๋๋ ์ด๊ฒ์ด ๋น์ ์ ์ผ์์ด ์๋๋ผ๋ ๊ฒ์ ์์ ํ ์ดํดํ๊ณ ์ฐธ์ฌํ๋ ๋ฐ ์๊ฐ์ ํ ์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ฌ์ ํ "๋ ผ์ฆ์ ๋ชจ๋ฅด๋ฉด ๋ ผํ ์ ์๋ค"๋ ํ์ค์ ์ธ ๋ฌธ์ ๋ค. ๋๋ ๋น์ ์ด ๋๋งํผ ์ ์ฒด ์ํฉ์ ์ข์ ๊ฐ์ ๋๊ผ์ ๊ฒ์ด๋ผ๊ณ ์์ํ ์ ์์ต๋๋ค. :)
PCRE๋ณด๋ค Go์ ์ ๊ท ํํ์์ ์ ํธํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ ผ๋ฆฌ์ ๋๋ค. ํ๋ก๊ทธ๋จ์ด 2์ฐจ/์ง์ ์ต์ ์ ๋ณต์ก๋๋ฅผ ๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ์ ์์กดํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค.
@cznic ์ ๋ ์ข ์์ฑ ๊ด๋ฆฌ๊ฐ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์ฌํ์ ์ ์ฝ ๋ฐ ๊ณ ๋ ค ์ฌํญ๊ณผ ์ฝํ ์๋ค๋ ์๊ฒฌ์ ๋๋ค. ๋ฐ๋ผ์ ์ ๊ท์๊ณผ ๋น๊ตํ๊ณ (์์ ํ ๊ธฐ์ ์ ์ธ ๊ตฌํ ๋ฌธ์ ) ์๊ฐ ๋ณต์ก์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ ํธํ๋ ๊ฒ์ด ๊ณต์ ํ ์ ๊ทผ ๋ฐฉ์์ธ์ง ํ์ ํ ์ ์์ต๋๋ค.
MVS๊ฐ ๋ ๊ฐ๋จํ๊ณ ์ถ๋ก ํ๊ธฐ ์ฝ๊ณ ๋น๋ฉดํ ๋ฌธ์ ์ ๋ค๋ฅธ ์ธก๋ฉด์ ํด๊ฒฐ ํ๋ค๋ฉด ์ดํดํ ์ ์๋ ๊ณ ๋ ค ์ฌํญ์ด๊ธฐ ๋๋ฌธ์ MVS๋ฅผ ์ ํธํ๋ ์ฌ๋๋ค์ด ์์ต๋๋ค.
์ฌ๋๋ค์ด SAT ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ๋ณด๋ค ์ ํธํ๋ ๋ค๋ฅธ ์ด์ ๊ฐ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
์ฌ๋๋ค์ด SAT ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ๋ณด๋ค ์ ํธํ๋ ๋ค๋ฅธ ์ด์ ๊ฐ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
@ibrasho MVS์๋ ์ ๊ธ ํ์ผ์ด ํ์ํ์ง ์์ต๋๋ค.
์ฌ๋๋ค์ด SAT ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ๋ณด๋ค ์ ํธํ๋ ๋ค๋ฅธ ์ด์ ๊ฐ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ด์ ๋
ํนํ ์ด ๋ง์ง๋ง ๋ถ๋ถ์ ์ข ์์ด๋ฌ๋ํ๋ค. ์ด ์ ํํ ํ์ง์ @sdboyer ์ ์ง๋ ๊ฒ์๋ฌผ์์ ๋งค์ฐ ์ค์ํ๊ฒ ๊ทธ๋ ค์ก๊ธฐ ๋๋ฌธ์ - ๊ทธ๋ฌ๋ ์ด ์์ ์์ ๋๋ ์ฌ์ ํ vgo๊ฐ ์ด ์ ์์ ์ ํต์ ์ธ ์ ๊ทผ ๋ฐฉ์๋ณด๋ค ์๊ฒฉํ๊ฒ ๋ ๋ซ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
@๋ฉ๋ก๋น์ฐ์ค
"์ ๊ธ ํ์ผ๊ณผ ๋งค๋ํ์คํธ๋ฅผ ํ๋์ ํ์ผ๋ก ํตํฉํฉ๋๋ค."
@docmerlin ๋ด๊ฐ "๋งค๋ํ์คํธ"๋ผ๊ณ ๋งํ์ ๋, ๋๋ ๋น์ ์ด ์์กดํ๊ณ ์๋ ๋ชจ๋ ๋ชจ๋์ ์ ์ ํ ๋ฒ์ ๊ณผ ํจ๊ป ๋์ดํ๋ ํ์ผ์ ์๋ฏธํ์ต๋๋ค(ํนํ, ์ฌ๊ธฐ์๋ import ๋ฌธ๋ณด๋ค ์๊ฒฉํ๊ฒ ๋ ๋ง์ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ์ํ์ง ์์ ๊ฒ์
๋๋ค). vgo์ ๊ฒฝ์ฐ go.mod
, dep ์ ๊ฒฝ์ฐ Gopkg.toml
์
๋๋ค. ์ข
์์ฑ ์๋ฒ์ ๋ํ ๊ตฌ์ฑ ํ์ผ์ ํธ์ถํ ์๋ ์์ต๋๋ค. ๋ค๋ฅธ ์ฉ์ด๊ฐ ๋ ์ ์ ํ๋ค๊ณ ์๊ฐ๋๋ฉด ๋ด ์๊ฒฌ์ ์ฝ์ ๋ ๋งค๋ํ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๋์ฒดํ์ญ์์ค.
ํ์ผ๋น ๋ชจ๋ ์ข ์์ฑ์ ๋์ดํ๋ ํ์ผ๊ณผ ๋ช ์์ ๊ฐ์ ธ์ค๊ธฐ ๋ชฉ๋ก(์ ์ฌ์ ์ผ๋ก ์ข ์์ฑ์ ์ ์ฌ์ ์ผ๋ก ์๊ฒฉํ ํ์ ์งํฉ์)์ด ๋ชจ๋ ์๋ ๊ฒ์ ๋งค์ฐ ์ ์์ ์ ๋๋ค. ํนํ ๋ด๊ฐ ์๊ณ ์๋ ๋ชจ๋ Go ์ข ์์ฑ ๊ด๋ฆฌ์๋ ๊ทธ๋ ๊ฒ ํฉ๋๋ค. ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ๋ํ ์ฌํ ๊ฐ๋ฅํ ๋น๋๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ ํน์ ํ๊ณ ์ ํํ ๋ฒ์ ์ ์ค๋ช ํ๋ ์ ๊ธ ํ์ผ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ์ธ๊ธํ MVS์ ๊ตฌ๋ณ๋๋ ๊ธฐ๋ฅ์ ์ด ํ์ผ์ด manifest/dependency-solver-config/go.mod ํ์ผ์์ ๊ณ ์ ํ๊ฒ ํ์๋ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ํ์ง ์๋ค๋ ๊ฒ์ ๋๋ค.
(๋ด ๊ฐ์ธ ๊ณ์ ์์ ์ญ์ + ๋ค์ ๊ฒ์)
@cznic MVC์ ๋ณต์ก์ฑ ํด๋์ค์ SAT ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ ์ด์น์ ๋ง์ง ์์ต๋๋ค. ์ด๋ฆ/์๋ณ).
vgo์ ๋ํ ๋ช ๊ฐ์ง ์ฐ๋ ค ์ฌํญ์ ํด๊ฒฐํ๊ธฐ ์ํ #25483์ @bradfitz ์ ์(์ฒ์์๋ ๋ฏธ์น ๊ฒ ๊ฐ์ง๋ง ์๋ง๋ ํ๋ฅญํ ์ค์ฉ์ ์ธ ์๋ฃจ์ ์ผ ์ ์์)์๋ ๋ฆด๋ฆฌ์ค ์ ์ API์ ์์ ์ฌ์ฉ์๋ก๋ถํฐ ํ ์คํธ๋ฅผ ์คํํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค. ์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก NP-์์ ํ ๋ฌธ์ ์ด์ง๋ง ์ค์ ๋ก๋ gps2์ ๊ฐ์ ํ๋ฅญํ ์๋ฃจ์ ์ด ๋ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ํํธ์ผ๋ก๋ SAT ๊ธฐ๋ฐ ํจํค์ง ๊ด๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ด ์๊ณ ๋ค๋ฅธ ํํธ์ผ๋ก๋ ๋์ค์ NP ์๋ฃ ์์ ์ ์ํํ๋๋ก ๊ฐ์ ํ๋ NL ์๊ณ ๋ฆฌ์ฆ์ด ์์ต๋๋ค(๋๋ ์ค์ SAT ์๋ฒ๊ฐ ์ํํ๋ ์๊ฐ ์ด๊ณผ). ์ ๋์ ์ ๊ธ ํ์ผ์ ๊ฒฝ์ฐ).
MVC์ ๋ณต์ก์ฑ ํด๋์ค์ SAT ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ ๋ํ ๊ฐ๋ณ์ ์ธ ์ด์ ์ ์ด์น์ ๋ง์ง ์์ต๋๋ค ...
'์ง์ค'์ด๋ผ๋ ์ฉ์ด๊ฐ ์ด๋์์ ์ ๋ํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด ์๋ ๊ฒฝ์ฐ ํ๋์ ์ต์ ์ ๊ฒฝ์ฐ๋ 2์ฐจ ๋๋ ๋ ๋์จ์ด๊ณ ๋ค๋ฅธ ํ๋๋ ์ ํ od ๋ ๋์ ๊ฒฝ์ฐ ํ์๋ฅผ ์ ํํ๊ณ ์ ์๋ฅผ ํผํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ด์ ์ด ์๋๋ผ ์์น์ด๋ผ๊ณ ๋ถ๋ฅด๊ณ ์ถ๋ค.
... vgo์ ๋ํ ๋ช ๊ฐ์ง ์ฐ๋ ค ์ฌํญ์ ํด๊ฒฐํ๊ธฐ ์ํ #25483์ ์ ์ ...
๋ฌธ์ #25483์ vgo์ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ค์?
์ฌ์ฉ ๊ฐ๋ฅํ ๋ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด ์๋ ๊ฒฝ์ฐ ํ๋์ ์ต์ ์ ๊ฒฝ์ฐ๋ 2์ฐจ ์ดํ์ด๊ณ ๋ค๋ฅธ ํ๋๋ ์ ํ ์ด์์ธ ๊ฒฝ์ฐ ํ์๋ฅผ ์ ํํ๊ณ ์ ์๋ฅผ ํผํฉ๋๋ค.
@cznic ํ์คํ, ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ด ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ๋ ๊ฒฝ์ฐ ๋ณต์ก์ฑ์ด ๋ฎ์ ์๊ณ ๋ฆฌ์ฆ์ ์ํฉ๋๋ค(ํญ์ ๊ทธ๋ ๊ฒ ์๋ฆฌ๊ณ ๊ฑด์กฐํ ๊ฒ์ ์๋์ง๋ง Python์ ๋ณต์ก์ฑ ๊ฒฝ๊ณ๊ฐ ๋ ๋์จ์๋ ๋ถ๊ตฌํ๊ณ ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ ์์ ์ ๋ ฅ์ ๋ํด ์ฝ์ ์ ๋ ฌ ์ ์ฌ์ฉํฉ๋๋ค. ์์ + ๋ฐํ์๊น์ง).
์ด ๊ฒฝ์ฐ(MVS vs. SAT ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ) ๊ฒฐ๊ณผ๋ ๋ชฉ์ ์ ๋ฐ๋ผ ๋ค๋ฅด๋ฉฐ ๊ด๋ฒ์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณ์ต๋๋ค. ์ด ๋๋ฌธ์ ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก์ฑ์ ๋น๊ตํ ์ ์์ผ๋ฉฐ ๋ ๊ด๋ฒ์ํ ์ํฅ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๋ฌธ์ #25483์ด vgo์ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํด๋น ๋ฌธ์ ์ ์ฒซ ๋ฒ์งธ ์ค์ ์ด ๋ฌธ์ ์ ๋ํ Brad์ ์๊ฒฌ์ ๋ํ ๋งํฌ์ ๋๋ค. https://github.com/golang/go/issues/24301#issuecomment -390788506 . ์ด ๋๊ตฌ๋ vgo ์ธ๋ถ์์ ์ ์ฉํ ๊ฒ์ด์ง๋ง MVS์ ์ผ๋ถ ๋จ์ ์ ์ํํ๊ธฐ ์ํด ์ฃผ๋ก ๊ณ ๋ ค๋๋ ๊ฒ ๊ฐ์ต๋๋ค(๋ด ์๊ฒฌ/์ดํด).
๊ทธ๋ ๊ตฐ์ ๋๊ธ์ด ๋ง๋ค์. ๋์์ด ๋๋๋ก ๋ช ๊ฐ์ง ์ธ๋ถ ์ ๋ณด์ ๊ธฐ๋ก์ ์ถ๊ฐํ๋ ค๊ณ ํฉ๋๋ค.
๋ช ๋ ์ ๋ง ํด๋ ๋ค์ํ ์ข ์์ฑ ๊ด๋ฆฌ ์๋ฃจ์ (์: godep, glide ๋ฑ)์ด ์์์ต๋๋ค. ์์ผ๋ก์ ๊ฒฝ๋ก๋ฅผ ํ์ ํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ผ์ด ๋ฐ์ํ์ต๋๋ค.
์ค๋ฌธ ์กฐ์ฌ ๋ฐ ์ธํฐ๋ทฐ ๋ฐ์ดํฐ๋ ๋ชจ๋ ์์ํ์ ํผ๋๋ฐฑ๋์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ดํด๋ณด๊ณ ํ ๋ก ํ ํ ๊ทธ๋ค์ ์ฐ๋ฆฌ๊ฐ ํน์ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์๋ฃจ์ ์ด ํ์ํ๋ค๊ณ ๊ฒฐ์ ํ๊ณ ์ฌ์ ์ ๋ง๋ค์์ต๋๋ค. ๊ทธ ํ dep์ ๊ฐ๋ฐ์ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๊ธฐ ์์ํ์ต๋๋ค.
์๋ Gophercon์์ ์ข ์์ฑ ๊ด๋ฆฌ์ ํฌ์ํ ์ฌ๋๋ค์ด ์ด์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ธฐ๊ณ ์ ํ์ ๊ฐ ์์์ต๋๋ค. ๋ํ๊ฐ ๋๋๊ฐ ๋ฌด๋ ต Russ๊ฐ ํ ์ด๋ธ๋ก ๋ค๊ฐ์ ์ด๋ ๊ฒ ๋งํ์ต๋๋ค. ๊ทธ๋ ๊ทธ๋ ๊ฒ ํ๊ณ vgo๋ฅผ ์๊ฐํด ๋์ต๋๋ค. ์ปค๋ฎค๋ํฐ์ ๋ณ๋๋ก ์งํ๋์์ต๋๋ค.
vgo๋ ์ค๋ฌธ์กฐ์ฌ์ ์ธํฐ๋ทฐ์์ ์ฌ๋๋ค์ด ํํํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๊น? ๋ด๊ฐ Russ์๊ฒ์ ์์งํ ๊ฒ์์ ๊ทธ๋ ๊ฒฐ๊ณผ๋ฅผ ์ฝ์ง ์์์ง๋ง ๊ทธ๋ ๊ทธ ๊ณผ์ ์ ๋นํํ์ต๋๋ค. ๋๊ตฐ๊ฐ ๋งคํ์ ํ ๊ฐ์น๊ฐ ์์ ์ ์์ต๋๋ค.
์ค, ํ๋ด์์ Russ๋ ๊ทธ ๋น์ SAT ํด๊ฒฐ์ฌ๋ฅผ ์ข์ํ์ง ์์๋ ์ด์ ์ค ํ๋๋ฅผ ๊ณต์ ํ์ต๋๋ค. ๊ทธ๋ ๋ง์ ์ฝ๋๋ฅผ ์ ์ง ๊ด๋ฆฌํด์ผ ํ๋ Google์ Go ํ์ ์ํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ฝ๋ ์ค ์๊ฐ ์ ์ ์๋ฃจ์ ์ ์ํ์ต๋๋ค. ์ฐจ์ด์ ์ ๋ ์ ์ดํดํ๊ธฐ ์ํด dep, glide ๋ฐ ๊ธฐํ ๋๊ตฌ ๊ฐ์ LOC ๋น๊ต๋ฅผ ์ํํ๊ธฐ ๋๋ฌธ์ ํนํ ๊ธฐ์ตํฉ๋๋ค.
Go๋ Google์ด ์์ ํ๊ณ ์ด์ํ๋ ํ๋ก์ ํธ์ ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฆฌ์์ค ์ค ํ๋๋ผ๋ฉด Go๋ ์ฌ๋จ ์๋ ์์ด์ผ ํ๊ณ ๋ค๋ฅธ ์กฐ์ง์ ์ฌ๋๋ค์ด ์์ ๊ถ์ ์ฐธ์ฌํด์ผ ํฉ๋๊น? ์ด๋ ๋๊ตฌ ์ฒด์ธ์ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค.
์๋์, #25483์ vgo์ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ฐ์์ go release
๋์ฐ๋ฏธ ๋ช
๋ น์ด ์ํํ ์ ์๋ ๋ ๋ค๋ฅธ ์ข
๋ฅ์ ๊ฒ์ผ๋ก ๊ทธ๋ฅ ๋์ดํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ธ์ ๋ ์ง ์ ์ฉํ ๊ฒ์
๋๋ค.
๋ด ์ฃผ์ ์์ ์ Go๊ฐ Go ํจํค์ง ๋ฆด๋ฆฌ์ค๋ฅผ ๋งค์ฐ ์ฝ๊ฒ ๋ง๋ค์ง ์์๋ค๋ ๊ฒ์ ๋๋ค. ์ ์์ Perl CPAN ํจํค์ง์ ๋ฆด๋ฆฌ์ค๋ฅผ ์๋ํํ๊ธฐ ์ํด http://search.cpan.org/dist/ShipIt/ ์ ์์ฑํ์ผ๋ฉฐ ์ด๋ฌํ ์์ ์ ๋๊ตฌ๋ก ์ฌ์ฉํ ๋์ ์์ผ๋ก ์ํํ ๋ ํฐ ์ฐจ์ด๋ฅผ ๋ง๋ค์์ต๋๋ค.
๋๋ ์ธ๊ฐ์ด ์ค์ํ์ง ์๋๋ก ๋๊ธฐ ์ํด Go๊ฐ ๋ค๋ฅด๊ฒ ํ ์ ์๋ ์ผ์ ๋ฌผ์ ๊ธฐ ๋๋ฌธ์ ๊ฐ์์ go release
์ ๋ํด์๋ง ์ธ๊ธํ์ต๋๋ค.
vgo์์ ๋ณผ ์ ์๋ ์ค์ ๋ฌธ์ ๋ ํด๊ฒฐํ๊ธฐ๊ฐ ์ฝ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.... ์ต๋ ๋ฒ์ ๋ฌธ์ ์ ๋๋ค. ํ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ dep์ v1.7๋ก ์ค๋จ๋๋ ๊ฒฝ์ฐ ์ ์ธํ๋ ๊ฒ ์ธ์๋ ์ง์ ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด๋ v1.8์ด ๋์ฌ ๋๊น์ง๋ง ๋์์ด ๋๋ฉฐ ์ฌ์ ํ ๋๊ฐ์ ๋ฐฉ์์ผ๋ก ์ค๋จ๋ ์ ์์ต๋๋ค.
vgo๊ฐ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํธํ๋์ง ์์ ๋ ๊ฒฐ์ ํ๋ ๋ฐ ๋์์ด ๋๋ ๋ฐฉ๋ฒ์ผ๋ก vgo์ ์ต๋ ๋ฒ์ ์ ์ถ๊ฐํ๋ ๊ฒ์ ์ฌ์ํ ์ผ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ต์ v1.7์ด ํ์ํ๊ณ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ์ํ๋ค๊ณ ํ์๋๋ ๊ฒฝ์ฐ ์ด๊ฒ์ด ์์ผ๋ฉด vgo๋ 1.7๋ง ์ฌ์ฉํ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๊ฐ ์ค๋จ๋ฉ๋๋ค. ์ด์ด ์ข๋ค๋ฉด ์ปดํ์ผ๋ฌ ์ค๋ฅ๊ฐ ์์ต๋๋ค. ๊ธธ์ ๊ฐ ๋๊น์ง ์์์ฐจ๋ฆฌ์ง ๋ชปํ ์ ์๋ ๋ฏธ๋ฌํ ๋์ ๋ฒ๊ทธ๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ด ๋ ํฝ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ตํํ ๊ฒ์ ์๋ง๋ ์ง์ ํธ์ถํ์ง๋ ์๋ ์ ์ด์ ์ข
์์ฑ์ผ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
@natefinch ์ต๋ ๋ฒ์ ์ ํ์ MVS๋ฅผ ๋งค์ฐ ์๋ฆฌํ ํํผ SMT ์๋ฒ ์์ญ์์ ๋ฐ์ด๋ ๋๋ค.
@natefinch ๋ ์ต์ข ํ์ธ/ํํฐ๋ก์ ์ต๋ ๋ฒ์ ์ ์๋ฏธํ๋ค๊ณ ์๊ฐํฉ๋๋ค. MVS๊ฐ ์์ ์ ์๋ฃํ๋ฉด ์ด๋ฌํ ์ต๋ ๋ฒ์ ์ ํ ์ค ํ๋๋ผ๋ ์ถฉ์กฑ๋์ง ์์ผ๋ฉด vgo์์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ ํ โโ์ฐ๋ฆฌ๋ฅผ SAT ์๋ฒ ์์ญ์ผ๋ก ๋ฐ๋ ค๊ฐ์ง ์์ต๋๋ค.
์ ํํ. ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. "vgo๋ 1.7์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ณ๋ค๊ณ ๋งํ์ง๋ง ๋ชจ๋ X๋ ํด๋น ๋ฒ์ ์์ ์๋ํ์ง ์๋๋ค๊ณ ๋งํฉ๋๋ค"๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ์ด๋ฏธ require foo 1.7
๋ผ๊ณ ํ๋ ๊ฒ์ด ์๊ณ ๋ ๋์ foo ๋ฒ์ ์ด ์์ผ๋ฉด exclude foo 1.7
๋ผ๊ณ ํ๋ ๊ฒ์ด ์์ผ๋ฉด vgo์์ ์ค๋ ์ผ์ด๋ ์ ์๋ ์ผ์
๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
๊ธฐ๊ณ์ ํด๊ฒฐ์ฑ ์ด ์๊ธฐ ๋๋ฌธ์ ํด๊ฒฐ์ฑ ์ ์ฐพ๊ธฐ ์ํด ์ธ๊ฐ์ ๋๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํธํ๋์ง ์๋ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํ๋ค๊ณ ๋ช ์ํ ๋ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค. A๋ 1.6์ผ๋ก ๊นจ์ง๊ณ B๋ 1.7๋ก ๊นจ์ง๋๋ค. ๋.
์ข ์์ฑ ์์ฑ์์๊ฒ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋๋ก ์ค๋ํ๊ฑฐ๋(๋ฒ๊ทธ์ธ ๊ฒฝ์ฐ) ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์ ์ค ํ ๋ช ์ด ์ ์ข ์์ฑ ๋ฒ์ ๊ณผ ํธํ๋๋ ์ ๋ฒ์ ์ ์ถ์ํ๋๋ก ์ค๋ํ๊ฑฐ๋, ๋ง์ ํญ๋ชฉ์ ๋ถ๊ธฐํ์ฌ ์ง์ ์์ ํด์ผ ํฉ๋๋ค. .
์ข์ ๋๋ต์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋๊ตฌ๋ ์ธ์์ ์์ต๋๋ค.
@sdboyer
๋ฌธ์ ๋ MVS๊ฐ (SAT๋ฅผ ํผํ๋) ํ์์ ๋ฌธ์ ๋ง ํด๊ฒฐํ๋ค๋ ๊ฒ์ ๋๋ค.
๋๋ Russ์์ ์ฌ์ ์ธ ๋ํ์ ๋ํด ๋งํ ์ ์์ง๋ง "SAT๋ฅผ ํผํ๋ ๊ฒ"์ ๋์๊ฒ ํก์ค์์คํ ๋ ผ์์ฒ๋ผ ๋ณด์ ๋๋ค. "SAT๋ฅผ ํผํ๋ ๊ฒ"์ "SAT๋ฅผ ์ฌ์ฉํ๋ ๊ฒ"๋ณด๋ค ๋ ์ด์ ๋ชฉํ๊ฐ ์๋๋๋ค. ๋ ๋ค ์ฌ์ฉ์์๊ฒ ๊ตฌ์ฒด์ ์ธ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค.
๋ด๊ฐ ๋ณด๊ธฐ์ MVS๊ฐ ํด๊ฒฐํ๋ ๊ตฌ์ฒด์ ์ธ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ ํ๋ ํ ํฐ์ ์ ์ฉํ ํ์ ์ ์ฌ์ฉํ๋ ๋ฐ ๋์์ด ๋๋ ๋๊ตฌ๋ฅผ ๋ง๋ค์ด ๋ ๋์ ์ํ๊ณ์ ๋๋ฌํฉ๋๋ค.
๋๋ ๋์ํ๋ค. ๊ทธ๋ฌ๋ ๊ทํ์ ๊ฐ์ ์ ์์ธํ ์ดํด๋ณด๊ณ ์ถ์ต๋๋ค. ์ด๋ค ๋๊ตฌ๊ฐ ์ฐธ์ฌ๋ฅผ "๋ฒ"ํ๊ณ ๊ทธ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ฒ์๋ฌผ์์ ์ ๊ณตํ ์ ์ค ํ๋๋ "์ฐ๋ฆฌ ํ๋ก์ ํธ๋ ํ์ฌ [email protected]
์ ์์กดํ์ง๋ง [email protected]
์ด์์์๋ ์๋ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ข์ ์๋ฏผ์ ์ํ๊ณ ์ ์ํ๊ธฐ๋ฅผ ์ํ์ง๋ง ์ง๊ธ์ ๋์ญํญ์ด ์์ต๋๋ค.โ
์ฒซ ๋ฒ์งธ(์์์ ) ๊ฐ์ ์ ๊ทํ(๋๋ ๊ทํ์ ์ฌ์ฉ์)๊ฐ ์ข ์์ฑ์ ๋ชจ๋ ๋ฆด๋ฆฌ์ค์ ๋ํด ์ฒ ์ ํ๊ฒ ํ๋ก์ ํธ๋ฅผ ํ ์คํธํ ์๊ฐ๊ณผ ๋์ญํญ์ด ์๋ค๋ ๊ฒ์ ๋๋ค.ยน ์ผ๋ถ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๊ทธ ๊ฐ์ ์์ฒด๊ฐ ์ฑ๋ฆฝํ์ง ์์ ์ ์์ต๋๋ค. : ๋ชจ๋ ์ฌ๋์ด ๋นํธํ์ฑ์ ๋ฐ๊ฒฌํ ๋ ์ํ์ ์ ํ๊ทธ๋ฅผ ์ง์ ํ๋ค๋ ๊ธฐ๋์น๋ฅผ ์ค์ ํ๋ฉด ์ ์ฌ์ ์ผ๋ก ๋ชจ๋ ๋ฆด๋ฆฌ์ค์์ ํ๊ท ๋ฐ ์ ๋ฐ์ดํธ ๊ฒฝ๊ณ๋ฅผ ํ ์คํธํ ๋์ญํญ์ด ์๋ ์ ์ง ๊ด๋ฆฌ์๋ฅผ "์ฒ๋ฒ"ํ๊ฒ ๋ฉ๋๋ค.
๋์กฐ์ ์ผ๋ก, MVS์์ ์ ์ง ๊ด๋ฆฌ์๋ " [email protected]
์ ๋ํด ์ฒ ์ ํ ํ
์คํธํ์ผ๋ฉฐ ์๋ํ์ต๋๋ค."๋ผ๋ ํ ๊ฐ์ง๋ง ์ ์ธํด์ผ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ด๋ฅผ ๋ฐฉํดํ๊ธฐ ์ํด ์๋ฌด ๊ฒ๋ ํ์ง ์์ผ๋ฉด [email protected]
์ ๋ํด ๋น๋ํ๊ณ ๋ชจ๋ ๊ฒ์ด ์ด์ ๊ณผ ๊ฐ์ด ๊ณ์ ์๋ํฉ๋๋ค.
MVS์์ _breakage๋ ๋ช
์์ ์
๊ทธ๋ ์ด๋ ์์๋ง ๋ฐ์ํฉ๋๋ค._ ์ด๋ ์๋นํ ์ด์ ์
๋๋ค. ์ฌ์ฉ์๊ฐ [email protected]
๋ฅผ ๊ฐ์ ธ์ค๊ณ ํจํค์ง ์ฌ์ฉ์ ์ค๋จํ๋๋ก ๋ค๋ฅธ ์ข
์์ฑ์ ์
๊ทธ๋ ์ด๋ํ๋ฉด ๊ฐ๋จํ ํ ์ ์์ต๋๋ค. ์์ ํ ์๊ฐ์ด ์์ ๋๊น์ง ๋๋ X
์ ์ ์ง ๊ด๋ฆฌ์๊ฐ ๋นํธํ์ฑ์ ์์ ํ ์๊ฐ์ด ์์ ๋๊น์ง ํด๋น ์
๊ทธ๋ ์ด๋๋ฅผ ์ทจ์ํฉ๋๋ค._ ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฐ๋ฅธ ๊ธฐ๋์น๋ฅผ ๊ฐ์ํ ๋ ํ์๊ฐ ์ ์๋ณด๋ค ํจ์ฌ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. $# [email protected]
[email protected]
๊ฐ ๋ถํ์ํ ๋ฐ์ ์์
์ด ๋ ์ ์์ต๋๋ค.
๋ ๋ฒ์งธ ๊ฐ์ ์ ๋ชจ๋์ _๋ชจ๋ ๋ถ๋ถ_์ ์ํฅ์ ๋ฏธ์น๋ ๋ชจ๋ ๋นํธํ์ฑ์ด ๋ชจ๋์ _๋ชจ๋ ์ฌ์ฉ์_์ ์ํฅ์ ๋ฏธ์น๋ค๋ ๊ฒ์
๋๋ค. ํจํค์ง์์ [email protected]
์๋๋ก ๋ถ๋ฅ๋๋ ๋ถ๋ถ์ด ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๋ ๊ธฐ๋ฅ์ด๋ผ๋ฉด ์ฌ์ฉ์๊ฐ ํธ์ถํ์ง๋ ์๋ ํ๋ก๊ทธ๋จ์์ X
๋ฅผ ์
๊ทธ๋ ์ด๋ํ์ง ๋ชปํ๊ฒ ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
๋ชจ๋์ ์ผ๋ถ๊ฐ ๋ค๋ฅธ ๋ถ๋ถ์ ์์กดํ์ง ์๋๋ค๋ฉด ๋ณ๋์ ๋ชจ๋์ด์ด์ผ ํ๋ค๊ณ ์ฃผ์ฅํ ์ ์์ง๋ง, ์ด๋ ๋ค์ ํจํค์ง ๊ด๋ฆฌ์์๊ฒ ์ถ๊ฐ ์์ ์ ๊ฐ์ํฉ๋๋ค. ์ฃผ๊ธฐ์ ์ผ๋ก ํ ์คํธํ๊ณ ์ ๊ทธ๋ ์ด๋ํ ๋์ญํญ๋ง ์๋ค๋ฉด ์ธ๋ถํ๋ ์ข ์์ฑ์ด ์๋ ์ธ๋ถํ๋ ๋ชจ๋ ์ ์ฒด๊ฐ ์๋๋ผ ํ๋์ ๋ชจ๋์ ์ ์งํ๊ธฐ ์ํ ๋์ญํญ์ ๋๋ค.
ยน ์ผ๋ฐ์ ์ผ๋ก ์ข
์์ฑ๊ณผ์ ๋นํธํ์ฑ์ ๊ฐ์งํ๋ ค๋ฉด ํด๋น ์ข
์์ฑ์ _๋ชจ๋ ๋ฆด๋ฆฌ์ค์ ์ธ์ _์ ๋ํด ํ
์คํธํด์ผ ํฉ๋๋ค. [email protected]
์ ํน์ ์ฌ์ฉ์ ๊ด์ฐฎ์ง๋ง ์์กดํ๋ ์ผ๋ถ ๋ค๋ฅธ ํจํค์ง์ ๊ฒฐํฉํ๋ฉด ์ค๋จ๋ ์ ์์ต๋๋ค. ์ผ์ง. ์๋ฅผ ๋ค์ด, ๊ทํ์ ๊ทํ์ ์ข
์์ฑ์ด ๊ธ๋ก๋ฒ ๊ตฌ์ฑ์์ ํธํ๋์ง ์๋ ์ต์
์ ์๊ตฌํ ์ ์์ต๋๋ค.
๊ทธ๋ค์ ๋จ์ํ ๊ทธ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ทจ์ํ ์ ์์ต๋๋ค
์ด๋ ์ปดํ์ผ๋ฌ ์ค๋ฅ ๋๋ ์ด์ ์ ์ฌํ๊ฒ ๋์ ์ ๋๋ ๊ฒ์ผ๋ก ๊ฐ์ ํฉ๋๋ค. ์ฆ๊ฐ์ ์ผ๋ก ๋๋ฌ๋์ง ์๋ ๋ฏธ๋ฌํ ํ๋ ๋ฒ๊ทธ์ผ ๊ฐ๋ฅ์ฑ์ด ํจ์ฌ ๋ ๋์ต๋๋ค. ์ ๋ฐ์ดํธํ๊ณ ํ ์คํธ๋ฅผ ์คํํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ข์ ๋ณด์ ๋๋ค. 10์ด์๋ ํ์์์์ด ์ด์ 30์ด ๋์์ ์๋ ์๊ณ , ๋ก๋ ์ํ์ผ ๋ ์คํ์ ๋๋จธ์ง ๋ถ๋ถ์์ ํ์์์์ด ๋ฐ์ํฉ๋๋ค. ํ๋ก๋์ ํ๊ฒฝ์์ ์คํ๋ ๋๊น์ง ๋์น์ฑ์ง ๋ชปํ ๊ฒ์ ๋๋ค(๋ช ๋ ์ mgo ๋ณ๊ฒฝ์ผ๋ก ์ ์ฌํ ์ผ์ด ๋ฐ์ํ์ต๋๋ค).
[email protected] ์์ ๊นจ์ง๋ ํจํค์ง ๋ถ๋ถ์ด ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๋ ๊ธฐ๋ฅ์ด๋ผ๋ฉด ์ฌ์ฉ์๊ฐ X๋ฅผ ํธ์ถํ์ง๋ ์๋ ํ๋ก๊ทธ๋จ์์ X๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ ์ ๋ณด๋ฅํฉ๋๊น?
์ ์ด ์ข ์์ฑ์ธ ๊ฒฝ์ฐ ํด๋น ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์๊ณ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ๋ ์ผ๋ถ ์ฌ์ฉ๋์ง ์๋ ์ฝ๋ ๊ฒฝ๋ก๊ฐ ๊ฐ์๊ธฐ ํ์ฑํ๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋๊ฐ ๋งํ ์ ์์ต๋๊น? ๊ทธ๋์ ๊นจ์ง ํจ์๊ฐ ์ด์ ํธ์ถ๋ฉ๋๋ค. ์์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ดํดํ๋ ๋ฐ ์ ๋ฌธ๊ฐ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ์๋ฅผ ์ ๋ขฐํ๋ ๊ฒ์ด ํจ์ฌ ๋ซ์ต๋๋ค. 1.7์์ ์๋ํ์ง ์๋๋ค๊ณ ๋งํ๋ฉด 1.7๋ก ๋น๋ํ์ง ์๋ ๊ฒ์ ๋๋ค.
์ด๋ ์ปดํ์ผ๋ฌ ์ค๋ฅ ๋๋ ์ด์ ์ ์ฌํ๊ฒ ๋์ ์ ๋๋ ๊ฒ์ผ๋ก ๊ฐ์ ํฉ๋๋ค. ์ฆ๊ฐ์ ์ผ๋ก ๋๋ฌ๋์ง ์๋ ๋ฏธ๋ฌํ ํ๋ ๋ฒ๊ทธ์ผ ๊ฐ๋ฅ์ฑ์ด ํจ์ฌ ๋ ๋์ต๋๋ค.
๊ฑฐ์ ๋ชจ๋ ์ํํธ์จ์ด ํจํค์ง์ ๊ฑฐ์ ๋ชจ๋ ๋ฒ์ ์๋ ๋ฏธ๋ฌํ ๋ฒ๊ทธ๊ฐ ์จ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ฌํ ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ๋ค๊ณ ํด์ ๋ฆด๋ฆฌ์ค๋ฅผ ์์ ํ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ผ๋ก ํ์ํ์ง ์์ต๋๋ค. ๋์ ์ดํ์ ํฌ์ธํธ ๋ฆด๋ฆฌ์ค์์ ์์ ํฉ๋๋ค.
์ด ํน์ ํด๋์ค์ ๋ฒ๊ทธ๋ฅผ ํน๋ณํ๊ฒ ๋ง๋๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ๋ ์ผ๋ถ ์ฌ์ฉ๋์ง ์๋ ์ฝ๋ ๊ฒฝ๋ก๊ฐ ๊ฐ์๊ธฐ ํ์ฑํ๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋๊ฐ ๋งํ ์ ์์ต๋๊น?
์ด๊ฒ์ด ๋ฐ๋ก MVS ์ธ์์ ๋๋ค. ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด _ํด๋น ๊ฐ์ ํ์์_ ์์์ ๊ฐ์งํ๊ณ ํด๋น ๊ฐ์ ํ์์๋ ๋ฒ์ ์ ์ฝ ์กฐ๊ฑด์ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
์ด๋ ์ฌ์ฉ์๋ก์ ์ข ์์ฑ์ ์ผ๊ด์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ๋ณด๋ค ํ ๋ฒ์ ํ๋์ฉ ์ข ์์ฑ์ ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒฝ์ฐ ์คํจ๋ฅผ ์๋ถํ๋ ๊ฒ์ด ๋ ์ฝ๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๋ณ๊ฒฝ ์ฌํญ์ด ์ฌ์ค์ ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ด ์์์๋ก ๋ ์ ํํ๊ฒ ํ ์ ์์ต๋๋ค. ์ฝ๋ ๋๋ ์ข ์์ฑ ๋ณ๊ฒฝ ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ด๋ฑ๋ถํฉ๋๋ค.
์ด ํน์ ํด๋์ค์ ๋ฒ๊ทธ๋ฅผ ํน๋ณํ๊ฒ ๋ง๋๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
๊ทธ๋ฅ ๋ฒ๊ทธ๊ฐ ์๋๋๋ค. ๊ทธ๊ฒ๋ณด๋ค ๋ ํฝ๋๋ค. ๊ทธ๋ค์ ์ฝ๋์ ๋ํ ์ต๊ณ ์ ์ ๋ฌธ๊ฐ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๋ "์ผ, X ๋ฒ์ 1.7์ด ๋ด ์๋ฃ๋ฅผ ๋๋ฌด ๋์ ๋ฐฉ์์ผ๋ก ๋ง๊ฐ๋จ๋ ธ์ด. ๊ทธ๊ฑธ๋ก ๋น๋์กฐ์ฐจ ํ์ง ๋ง๋ผ"๊ณ ๋งํ๋ค.
๋ถ๋ช ํ ์ปดํ์ผ๋ฌ ์ค๋ฅ๊ฐ ์๋ ํ ํ๋จ ์์ฒญ์ ๋๋ค. 99๊ฐ์ ๊ธฐ๋ฅ์ด ํจ๋์ ์ผ์ผํค์ง๋ง ํ๋๋ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ... ๊ทธ๋ฅ ๋ฒ๊ทธ์ธ๊ฐ์? ์๋๋ฉด ์์ ํ ๋นํธํ์ฑ์ ๋๊น? ๋นํฉํ๋ ๊ธฐ๋ฅ์ด ํ๋๋ฟ์ด๋ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
์ธ์ ๊ฐ๋ ์ธ๊ฐ์ด ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํฉ๋๋ค. ์ ๋ ์ ์ธ๋์ง ์์ ์ฃผ์ ๋ฌธ์ ๊ฐ ํ๋ก๋์ ํ๊ฒฝ์ผ๋ก ๋ค์ด๊ฐ๋ ๊ฒ์ ๋ํด ๊ฑฑ์ ํ๋ ๊ฒ๋ณด๋ค ๋น๋ ์ ๋ฐ์ํ๋ ์ฌ์ ์ ์ธ๋ ๋นํธํ์ฑ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ํจ์ฌ ๋ซ์ต๋๋ค.
๊ทธ๋ฅ ๋ฒ๊ทธ๊ฐ ์๋๋๋ค. ๊ทธ๊ฒ๋ณด๋ค ๋ ํฝ๋๋ค. ๊ทธ๋ค์ ์ฝ๋์ ๋ํ ์ต๊ณ ์ ์ ๋ฌธ๊ฐ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๋ "์ผ, X ๋ฒ์ 1.7์ด ๋ด ์๋ฃ๋ฅผ ๋๋ฌด ๋์ ๋ฐฉ์์ผ๋ก ๋ง๊ฐ๋จ๋ ธ์ด. ๊ทธ๊ฑธ๋ก ๋น๋์กฐ์ฐจ ํ์ง ๋ง๋ผ"๊ณ ๋งํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ ์ด๊ฒ์ ํํํ ์ ์๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ํธํ๋์ง ์๋ X ๋ฒ์ ๊ณผ ํจ๊ป ์ฌ์ฉํ ๋ ์คํจํ๋ ํ ์คํธ๋ฅผ ์์ฑํฉ๋๋ค. ์ด๋ X๊ฐ ๊ณ ์ ๋ฒ์ ์ ๋ฆด๋ฆฌ์คํ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์๊ณ ๋ฏธ๋์ ํ๊ท.
ํธํ๋์ง ์๋ ๋ฒ์ ์ X์ ํจ๊ป ์ฌ์ฉํ ๋ ์คํจํ๋ ํ ์คํธ๋ฅผ ์์ฑํ์ญ์์ค.
๋ค, ์๊ฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์ต์์ ๋ฐ์ด๋๋ฆฌ์ ๋ชจ๋ ์ ์ด์ ์ข ์์ฑ์ ๋ํ ๋ชจ๋ ํ ์คํธ๋ฅผ ์คํํ๋๋ก ์์ฒญํ๊ณ ์์ต๋๋ค. ๋ชจ๋ ํ ์คํธ ์ค์ํธ๊ฐ 100% ๊ฒฉ๋ฆฌ๋ ๊ฒ์ ์๋๋๋ค.
go test ./...
๊ฐ ๊ณต๊ธ์
์ฒด ๋๋ ํ ๋ฆฌ์์ ํ
์คํธ๋ฅผ ์คํํ์ง ์๋ ์ด์ ๊ฐ ์์ต๋๋ค.
์์ฝํ์๋ฉด (์๋ง๋ ํํธ์๊ฒ ์ง๋ง) vgo์ ๋ํ ์ฃผ์ ๊ธฐ์ ๋ ผ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ฒด ์ข ์์ฑ์ ๋ํด ์ ์ญ์ ์ผ๋ก ์กด์ค๋๋ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ธํ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค.
GPS2๊ฐ vgo ์์ธก์ด ์ข์ํ๋ ๋ถ๋ถ์ ์ด๋ป๊ฒ ๋ง์ ์ ์๋์ง ํ๊ตฌํ๋ ๊ฒฝ์ ์ ์์ ์น์ธํ๋ ๋ฐ ์์ธก์ด ๋์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ทธ๋ฐ ๋ค์ vgo๊ฐ ๋ฉ์ธ ๋ผ์ธ์ ๋ณํฉํ๊ธฐ ์ ์ ๊ทธ ๋์ vgo ์คํ์ ๋ณํฉํ๊ณ GPS2 ์ ์์ ๋ค์ ๋ฐฉ๋ฌธํ์๊ฒ ์ต๋๊น?
๊ณผ๊ฑฐ์ ๋ง์ ์ข ์์ฑ ๋๊ตฌ๋ก ์ด๋ ค์์ ๊ฒช์๋ ์ฌ๋์ผ๋ก์ ์ ๋ vgo์ ๋ํด ํฅ๋ถํฉ๋๋ค. FWIW๋ "์ปค๋ฎค๋ํฐ" ํ์์ผ๋ก์ ์ง๊ธ๊น์ง vgo ์๋ฃจ์ ์ผ๋ก ์ ๋ํ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ์ญ ๋ฒ์ ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ๋ฐ ์ฐฌ์ฑํ๋ ์ฃผ์ฅ์ ๊ณ ๋ คํ๋ ๋ฐ ์ด๋ ค ์์ผ๋ฉฐ ํด๋น ์ฃผ์ฅ์ด ๋ ๋ฐ์ ํ๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค.
์ด๊ฒ์ ๋ฐ์ผ๋ก ๋์ง๋ฉด:
์ด๋ ์ปดํ์ผ๋ฌ ์ค๋ฅ ๋๋ ์ด์ ์ ์ฌํ๊ฒ ๋์ ์ ๋๋ ๊ฒ์ผ๋ก ๊ฐ์ ํฉ๋๋ค. ์ฆ๊ฐ์ ์ผ๋ก ๋๋ฌ๋์ง ์๋ ๋ฏธ๋ฌํ ํ๋ ๋ฒ๊ทธ์ผ ๊ฐ๋ฅ์ฑ์ด ํจ์ฌ ๋ ๋์ต๋๋ค. ์ ๋ฐ์ดํธํ๊ณ ํ ์คํธ๋ฅผ ์คํํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ข์ ๋ณด์ ๋๋ค. 10์ด์๋ ํ์์์์ด ์ด์ 30์ด ๋์์ ์๋ ์๊ณ , ๋ก๋ ์ํ์ผ ๋ ์คํ์ ๋๋จธ์ง ๋ถ๋ถ์์ ํ์์์์ด ๋ฐ์ํฉ๋๋ค.
์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ์ํํธ์จ์ด์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋๋ค. NPM(๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ฅ ์น์ํ ๋ค๋ฅธ ๋ฒ์ ๋๊ตฌ)์ semver๋ฅผ ๊ฐ๋ ฅํ๊ฒ ์์ฉํ ์ปค๋ฎค๋ํฐ์ ๊ฒฐํฉ๋ SAT ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ด ๋ฌธ์ ๋ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค.
์ ์ด์ ์ข ์์ฑ์ ๋ํ ๋ ผ์๊ฐ ์๋ ํ ํ์ค์ ๋ง์ ์งํก์ด๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ์์ ์์ ๊ฐ๋ฐ์๋ ์์ ์ด ์ฌ์ฉํ๋ ์ข ์์ฑ์ ์ธ์ํ๊ณ ๊ถ๊ทน์ ์ผ๋ก ์ฑ ์์ด ์๋ ์ฝ๋๋ฅผ ์ ์ ํ๊ฒ ํ ์คํธํ ์๊ฐ์ ํฌ์ํด์ผ ํฉ๋๋ค. ๋ฒ์ ๋ฐ ๊ธฐํ ์ด์ ๋ก ์ดํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๋นํํด์ผ ํ๋ ์ ์ผํ ๊ณ ์ฉ์ฃผ๋ ์๋๋๋ค.
์์งํ ์ ๋์๋ vgo์ ๋ํ ๋ถ๋ง์ด '์๋ฒฝํ์ง ์์์ ์ ๋๋ค'๋ ๊ฒ ๊ฐ์์. ์๋ฒฝํ ์๋ฃจ์ ์ด ํ์์๋ ์ข์ ์๋ฃจ์ ์ ๊ตฌํํ๋ ๋ฐ ์คํจํ์ง ๋ง์๋ค.
์ ์๊ฐ์๋ ํต์ฌ ํ์ด ๋๋ถ๋ถ์ ์ํฉ์์ ์ข์ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๊ณ ๋ ๋ฐ์ ๋ ํน์ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋๋ก ์ปค๋ฎค๋ํฐ์ ๋งก๊ธฐ๋ ๊ฒ์ด ์ ๋ฐ์ ์ธ Go ์ฒ ํ๊ณผ ๋งค์ฐ ์ผ์นํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@malexdev ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ฅ์ ์กํฐ์๊ฒ ๋ฌธ์ ๊ฐ ์์ ์ ์์ต๋๋ค.
์๋ฒฝํ ์๋ฃจ์ ์ด ํ์์๋ ์ข์ ์๋ฃจ์ ์ ๊ตฌํํ๋ ๋ฐ ์คํจํ์ง ๋ง์๋ค.
dep๋ ์ค๋๋ ์ข์ ์๋ฃจ์ ์ ๋๋ค. ์ปค๋ฎค๋ํฐ๊ฐ ํจ๊ป ์์ ํ์ฌ ๋ง๋ ๊ฒ์ ๋๋ค. vgo๋ ์์ ์์ํ ๊ฒ์ฒ๋ผ ๋ช ๊ฐ์ง ๊ฐ์ ์ ํฉ๋๋ค.
vgo๋ "์๋ฒฝํ ์ธ๊ณ"์์ "์๋ฒฝํ ์๋ฃจ์ "์ ๋ ๊ธฐ๋ฐ์ ๋๊ณ ์๋ ๋ฐ๋ฉด dep๋ ๋ด๊ฒฐํจ์ฑ์ ์ ์งํ๋ฉด์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ํ๊ณ์์ ์ด๋ฏธ ์๋ํ๋ ๊ฒ์ ๋ฐ๋ผ ์ค๋๋ ์๋ํฉ๋๋ค.
์ด๊ฒ์ ๋ด๊ฐ ๋ฐฉ๊ธ ์์ฑํ ํจํค์ง ๊ด๋ฆฌ ๋ฌธ์ ๊ณต๊ฐ์ ์ญ์ฌ ์์ ๋ณผ ์ ์์ต๋๋ค.
์์ฝํ์๋ฉด (์๋ง๋ ํํธ์๊ฒ ์ง๋ง) vgo์ ๋ํ ์ฃผ์ ๊ธฐ์ ๋ ผ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ฒด ์ข ์์ฑ์ ๋ํด ์ ์ญ์ ์ผ๋ก ์กด์ค๋๋ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ธํ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด ์์ฝ์ ๋์ํฉ๋๋ค.
GPS2๊ฐ vgo ์์ธก์ด ์ข์ํ๋ ๋ถ๋ถ์ ์ด๋ป๊ฒ ๋ง์ ์ ์๋์ง ํ๊ตฌํ๋ ๊ฒฝ์ ์ ์์ ์น์ธํ๋ ๋ฐ ์์ธก์ด ๋์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ด ์์ ์์ ๋๋ GPS2๊ฐ ํ์ํ๊ฑฐ๋ ์ฌ์ง์ด ์ข์ ์์ด๋์ด๋ผ๋ ํ์ ์ด ์์ต๋๋ค. ์์ ๋์ดํ ๊ธฐ๋ฅ์ MVS( ์ด๊ฒ ๋๋ ์ด๊ฒ ์ฒ๋ผ) ์์ vgo๋ก ๊ฐ์กฐ๋ ์ ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก @sdboyer ์ ๋ค์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ MVS ์์ฒด์ ๋ํ ์ข์ ์ฃผ์ฅ์ด ํฌํจ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ ๋น์ฅ์ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ, ํนํ vgo์ ์๋นํ UX ์ด์ ์ ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ์ด์ ๋ฅผ ์ ํ ์ ์ ์์ต๋๋ค.
ํ์ง๋ง, ๊ณต์ ํ๊ฒ ๋งํ์๋ฉด, ๋๋ ๋ํ ๊ทธ๊ฒ์ ์คํํ๋ ๊ฒ์ ๋ํด ์ด๋ค ์ด์ ๋ ๋ณด์ง ๋ชปํฉ๋๋ค.
dep๋ ์ค๋๋ ์ข์ ์๋ฃจ์ ์ ๋๋ค.
๋์ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ง์ ์ฌ์ฉํ์ง ์์์ง๋ง SAT ํด๊ฒฐ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ง์ ์ถ์ ๊ฐ๋ฅํ ๋ฌธ์ ์ ๋ํด ์ฌ๋ฌ ์ฌ๋๋ค์ด ๋ถํํ๋ ๊ณณ์์ ์ฌ์ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ deps ์ ์ฒด ๋์์ธ์ ๋ํด ๋งค์ฐ ๋ถํํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค(์ข ์์ฑ ์๋ฒ ์์ฒด์ ๋ํ ์ง๋ฌธ์ ์ ์ธํ๊ณ ์ผ๋ฐ์ ์ธ ์ํฌํ๋ก ๋ฐ UX).
- ์๋ฌด๋ ์ฐ์ฐํ๋ผ๋ semver์์ ํค์ด์ง์ง ์๋๋ก
์ฃ์กํฉ๋๋ค๋ง, ์ด ์ง์ ์ ๋ํ ์ ๋น์ฑ์ ์์ฐจ๋ก ์์ฒญํ์ง๋ง ๋ฐ์ง ๋ชปํ์ต๋๋ค. vgo๊ฐ ์ด๋ค ์์ผ๋ก๋ dep ์ด์์ ํํ ๋๋ ํํ๋ก ์ด๊ฒ์ ๊ฐ์ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋๋ ์ด ๋ง์ ๊ทผ๋ณธ์ ์ผ๋ก ๋์ํ์ง ์๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ช ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ฐ์ ์ ๋๋ค. ๋ง์น dep์ ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ช ํ๋ ๊ฒ์ฒ๋ผ ์๋ฏธ๋ก ์ ๋ฒ์ ์ ๋ด์ฅ๋ ๊ฐ์ ์ ์ค๋ช ํฉ๋๋ค. ์ต์ ์ ๊ฒฝ์ฐ ์ด๋ฌํ ์๋ฏธ ์ฒด๊ณ๋ฅผ ์ค์ํ์ง ์์ผ๋ฉด ๋์ผํ ์์์ด ๋ํ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ๋ ๋ด์ฉ์ ์๋ก ๋ค๋ฅธ ๋ถ๋ถ์ ๊ตฌ๋ณํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ถ๋ง ์ค ์ผ๋ถ๋ SIV, ์ผ๋ถ MVS ๋ฐ ์ผ๋ถ ์ผ๋ฐ vgo-shell์ ๊ดํ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, MVS๊ฐ ์์ ๋ฒ์ ๊ฒฝ๊ณ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒ์ ์ฌ์ค์ด์ง๋ง vgo๊ฐ ์์ ๋ฒ์ ๊ฒฝ๊ณ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค. SIV๋ (import ๋ฌธ์ ๋ค์ ์์ฑํ์ฌ) ๋ง์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ์ง๋ง, ๋ค์ ๋งํ์ง๋ง ์ด๊ฒ์ด vgo๊ฐ ๋ฐ๋์ ํ์ํ๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค. ๋ถ๋ช ํ ๋งํ์ง๋ง, ๋๋ ๋ํ ์ฐ๋ฆฌ๊ฐ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋ ํ ๊ทธ๋ ๊ฒ ํฐ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ AFAICT.
๋ฐฉ๊ธ @rsc ์ GopherConSG๊ฐ ๋ฒ์ ๊ด๋ฆฌ์ ๋ํ ๊ธฐ์กฐ ์ฐ์ค ์ ์์ํ๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ๊ทธ๋ ์ข ์์ฑ์ด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ ํ๋ ์๋๋ฆฌ์ค๋ฅผ ๋ค๋ฃจ์๊ณ vgo์ dep๊ฐ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋น๊ตํ๋๋ฐ, ์ด๊ฒ์ด ์ฌ๊ธฐ์ ์ฃผ์ ๊ด์ฌ์ฌ์ธ ๊ฒ ๊ฐ์ต๋๋ค. (ํ๋ฅญํ ์๊ณ์ ๋๋ค.)
๊ทธ์ ์์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด ์๋ชป๋ ๋ฒ์ ์ ํผํ๊ธฐ ์ํด ์ต๋ ๋ฒ์ ์ ํ์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ dep๋ ๋น๋๋ฅผ ์ค๋จํ ์ ์์ต๋๋ค . ๋๋ ์ด ์ ์์ vgo๊ฐ dep์ ๋ฏธ์น์ง ๋ชปํ๋ค๊ณ ์ฐ๋ คํ๋ ์ฌ๋๋ค์ด ์ด ์ ์ ์ธ๊ธํ๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค.
@willfaught ์ฐ๋ฆฌ์๊ฒ ๋์ ๋ฒ์ ์ ํผํ๊ธฐ ์ํด ์ต๋ ๋ฒ์ ์ ํ์ด ์ฌ์ฉ๋ ๋ ๋น๋๋ฅผ ๊นจ๋ ๊ฒ์ ์ฑ๊ณต์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค! ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ผ์
๋๋ค. Russ๋ ์ด ๋ฌธ์ ๊ฐ ์๋์ผ๋ก ํด๊ฒฐ๋์ง ์๋๋ค๋ ์ ์ ์ ํํ ์ง์ ํฉ๋๋ค. Helm>2.0.0
์ ๋ํ ์ ์ฝ ์กฐ๊ฑด์ ์ฌ์ฉ์๋ฅผ ์๋์ผ๋ก " [email protected] "๋ก ์
๊ทธ๋ ์ด๋ํ์ง ์์ง๋ง ์ฌ์ฉ์๊ฐ ๋ช
์์ ์ผ๋ก "Helm ==2.1.4". ๊ฐ์ธ์ ์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๊ฐ์ฅ ๋จผ์ ์๋ํ๋ ๊ฒ์ ๊ฐ์ ๋ก ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธํ๋ ๊ฒ์
๋๋ค. Dep๋ฅผ ์ฌ์ฉํ๋ฉด GRPC 1.4.0์์ ๋ฐ์ํ ์ค๋ฅ๋ฅผ ์๋ ค์ค๋๋ค. vgo
๋ฅผ ์ฌ์ฉํ๋ฉด Helm์ด ์ด๋ฅผ ๋์๊ฒ ์ ๋ฌํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋ฌธ์๋ฅผ ํตํด์์
๋๋ค.
๊ณ์ํด์ ์ดํด๋์ง ์๊ธฐ ๋๋ฌธ์ ์์ ์ ๋ฐ๋ณตํฉ๋๋ค. dep
๋ vgo
๋ชจ๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ฑฐ๋ ์๋ฒฝํ ์๋ฃจ์
์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์คํ๋ ค dep
๋ฅผ ์ฌ์ฉํ๋ฉด Helm์ด ๋ฌธ์ ๊ฐ ์์์ ์๋ฆด ์ ์์ง๋ง vgo
๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
์์ฝํ์๋ฉด (์๋ง๋ ํํธ์๊ฒ ์ง๋ง) vgo์ ๋ํ ์ฃผ์ ๊ธฐ์ ๋ ผ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ฒด ์ข ์์ฑ์ ๋ํด ์ ์ญ์ ์ผ๋ก ์กด์ค๋๋ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ธํ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค.
ํธํ์ฑ ๊ท์น์ ์๋ฐํ๋ ๋ถํํ ๊ฒฝ๋ก๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ด๋ฌํ ์ ์ฝ ์กฐ๊ฑด์ด ํ์ํ๋ค๋ ์ ์์ ์ด ์์ฝ์ ์์์ ์ถ๊ฐํฉ๋๋ค. vgo
๋ ๊ฐ์ ธ์ค๊ธฐ ํธํ์ฑ ๊ท์น์ ์ค์ ํ ๋ค์ ํญ์ ๊ท์น์ ๋ฐ๋ฅธ๋ค๋ ๊ฐ์ ํ์ ์๋ฃจ์
๊ฐ๋ฐ์ ์งํํฉ๋๋ค. ์ด ์ด์ํ๋ ์ธ๊ณ์์ ์ํ์ ์ ๋ํ ํ์์ฑ์ ์ ํ์ ์ด๊ฑฐ๋ ์์ ์กด์ฌํ์ง ์์ต๋๋ค. ํ์ค ์ธ๊ณ์์๋ ์ด๋ฐ ์ผ์ด ์ผ์ด๋์ง ์์ ๊ฒ์
๋๋ค. ๊ฐ๋ฐ์๋ ์๋์ ์ผ๋ก๋ ๊ทธ๋ ์ง ์๋ ํธํ์ฑ์ ๊นจ๋ ์
๋ฐ์ดํธ๋ฅผ ์ถ์ํ ๊ฒ์
๋๋ค.
@Merovius ๊ฐ ์คํ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. MVS๋ ์ง์ ๋ ๋๋ก ์งํ๋๊ณ ํด๊ฒฐ์ด ์๋ฃ๋ ํ vgo๋ ํด๊ฒฐ๋ ๊ฐ ํจํค์ง์์ ์ ์ธ๋ฅผ ํ์ธํฉ๋๋ค. ๋ฐ๊ฒฌ๋ ๊ฒฝ์ฐ ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ณด๊ณ ๋๋ฉฐ, ์ต์ข ์ฌ์ฉ์๋ ์ด๋ฌํ ์ ์ฝ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋๋ก ์ข ์์ฑ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ ์ฝ ์กฐ๊ฑด์ ๋ฌด์ํ๊ณ ๋ฌด์ํ๋๋ก ์ ํํ ์ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ๋ฐ๋ํธ์ ์์๊ณ ๋๋ก๋ ๊ด๋ฆฌ์๋ณด๋ค ๋ ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋น์ ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด ์๋ํ๋ฉฐ ๊ทธ๊ฒ์ด ๋น์ ์ด ๊ฑฑ์ ํ๋ ์ ๋ถ์ ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ค๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ต์ข ์ฌ์ฉ์์๊ฒ ๋นํธํ์ฑ์ ์ ๋ฌํ ์ ์๋ ๊ฒฝ๋ก๊ฐ ๋ณต์๋ฉ๋๋ค. helm ์์ ๋ฅผ ๋ค์ ๋ฐ๋ณตํ๋ ค๋ฉด:
[email protected] : Helm @2.1.2
ํฌ๋ฆ @2.1.2 : GRPC @1.3.5
==> ์ฌ์ฉ์๊ฐ ์๋์ ์ผ๋ก [email protected] ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํฉ๋๋ค.
์ฌ์ฉ์: Helm @2.1.3, [email protected] ("Helm์ด ์
๋ฐ์ดํธ๋์ด ๋ง์นจ๋ด grpc 1.4๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค!")
ํฌ๊ตฌ: GRPC @1.4.0
==> ๋ฒ๊ทธ๊ฐ ๊ฐ์ง๋์์ต๋๋ค! ์ฌ์ฉ์์๊ฒ Helm์ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ผ๋ฏ๋ก ์ ๋ฒ์ ์ ํ์ธํ์ญ์์ค.
์ฌ์ฉ์: [email protected] , [email protected]
ํฌ๊ตฌ: GRPC @1.3.5, ์ฝํ GRPC <1.4.0
์ฌ์ฉ์์๊ฒ GRPC 1.4.0์ด [email protected] ์ค์น์ ์ํด ๊ฑฐ๋ถ๋์๋ค๋ ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค. Helm์ด ๊ณ ์ฅ๋ฌ๊ณ ์ด๊ฒ์ด ์ ๊ฐ ์์ ํ๋ ค๊ณ ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ GRPC 1.4.0(์ฌํ๊ฒ๋ ์ผ๋ถ ์ ์ฉํ ๊ธฐ๋ฅ์ ์์)์ ๋ํ ์ข ์์ฑ์ ์ ๊ฑฐํ๊ณ MVS๋ฅผ ๋ค์ ์คํํฉ๋๋ค. ์ด๋ฒ์๋ MVS๊ฐ GRPC๋ฅผ 1.3.5๋ก, Helm์ 2.1.4๋ก ํ์ธํ๊ณ ๋ชจ๋ ์ฝํ ์ ์ฝ ์กฐ๊ฑด์ ๋ค์ ํ์ธํ์ฌ ํด๋น ์ ์ฝ ์กฐ๊ฑด์ด ์ ์ง๋๋์ง ํ์ธํ๋ฉด ์๋ฃ๋ฉ๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ง์ ์ฒ๋ผ ํด๊ฒฐํ ์ ์๋ ๋๊ตฌ๋ ์์ง๋ง ๋ฏธ๋ค์จ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ด๋ ์ ๋ ์์กดํ ์ ์์ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค. ๋ด๊ฐ ๋งํ ์ ์๋ ํ vgo
์ ์ ์ผํ ์ต์
์ ์ด๋ฌํ ์ข
์์ฑ๊ณผ์ ํธํ์ฑ ๋ฌธ์ ๋ก๋ถํฐ ์ฌ์ฉ์๋ฅผ ๋ณดํธํ๋ ค๋ ๊ฒฝ์ฐ ๋ชจ๋ ์
์คํธ๋ฆผ ์ข
์์ฑ์ ๋ถ๊ธฐํ๊ณ ์ด๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์
๋๋ค(๋๋ ๋๋ฑํ๊ฒ ์ด๋ฅผ ๋ด ํ๋ก์ ํธ์ ๋ณต์ฌ). ๋๋ ๊ทธ๊ฒ์ ์ํ๋ ์ฌ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@willfaught ์ฐ๋ฆฌ์๊ฒ ๋์ ๋ฒ์ ์ ํผํ๊ธฐ ์ํด ์ต๋ ๋ฒ์ ์ ํ์ด ์ฌ์ฉ๋ ๋ ๋น๋๋ฅผ ๊นจ๋ ๊ฒ์ ์ฑ๊ณต์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค! ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ผ์ ๋๋ค.
์ด์ผ๊ธฐ์์ ์์ ์ ์ด ์๋๋ฆฌ์ค์์ vgo๊ฐ dep๋ณด๋ค ๋์์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ์ ์ ์์ ๋น๋๋ dep๊ฐ ์๋ฃจ์ ์ ์ฐพ์ ์ ์๋ค๋ ์๋ฏธ์์ ์์๋์ง ์์์ต๋๋ค. dep ๊ฐ ์๋ฃจ์ ์ ์ฐพ๊ณ ํด๋น ์๋ฃจ์ ์ ์๋ชป๋ ๋ฒ์ ์ด ํฌํจ๋์ด ์์ด ์ฐ๋ฆฌ๊ฐ ํผํ๊ณ ์ถ์๋ ๊ฒ๊ณผ ๋์ผํ ๋์ ์ํฉ์ด ๋ฐ์ํ๋ค๋ ์ ์์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํ๋ฅญํ ์๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋น๋์ค๋ฅผ ์ค์ ๋ก ๋ณด์์ผ ํ์ง๋ง ์ดํด/๊ธฐ์ตํ๋ ์์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ต๋ ๋ฒ์ ์ ์ธ๋ฅผ ์ถ๊ฐํ์๋ ์ ์์ ๋๋ถ๋ถ ๋์ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๊ฑฑ์ ์ด ์์ต๋๋ค. ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ "gRPC >1.4, <1.8 ์ฌ์ฉ"์ ๋ฃ์ ๋ค์ gRPC 1.9์์ ์์ฑ์๊ฐ "์๋ค์ํผ, Helm์ ๋ง์ต๋๋ค. 1.8์์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ์ผ๋ฉฐ 1.9.0์์ ์ด์ ๋์์ผ๋ก ๋๋๋ฆฌ๊ณ ์์ต๋๋ค." ์ด์ Helm+gRPC๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ ์ฌ๋๋ค์ Helm์ด "1.8.0, 1.8.1, 1.8.2๋ฅผ ์ ์ธํ๊ณ gRPC >1.4๋ฅผ ์ฌ์ฉํ์ง๋ง 1.9+๋ ๋ฉ์ง๋ค"๋ผ๋ ๋ฒ์ ์ ์ถ์ํ ๋๊น์ง 1.9๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฆ, gRPC 1.9๊ฐ ๊ฒ์๋ ๋๊น์ง ํธํ๋์ง ์๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์๊ธฐ ๋๋ฌธ์ exclude grpc 1.8
์ด๋ฉด ์ถฉ๋ถํฉ๋๋ค. ์ด ์์ ์์ Helm์ ์ ์ธ ๋ชฉ๋ก์ ์ถ๊ฐํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
๋๋ ๋ณธ์ง์ ์ผ๋ก ์ด ๊ณต๊ฐ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅธ๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์์ ํ ๋ก ์ ์ฝ์ผ๋ฉด ๊ฐ์ฅ ํฐ ๋ถ์ผ์น๊ฐ ์๋ชป๋ ์ฌ๋ก๋ฅผ ๊ฐ์งํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ท๊ฒฐ๋๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ์ฆ, MVS(vgo)์ SAT(dep)๋ ๋ชจ๋ ์ ์์ ์ธ ์ํฉ์ ์ด๋ ์ ๋ ์ ์ฒ๋ฆฌํฉ๋๋ค. ๋์ผํ์ง๋ ์์ง๋ง ์ถฉ๋ถํ ์ ์ฒ๋ฆฌํฉ๋๋ค.
SAT๋ MVS๊ฐ ์ ๊ณตํ์ง ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. SAT๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจํค์ง P1์ ์์ฑ์๋ "P1์๋ P2๊ฐ ํ์ํ๊ณ P2Version > 1.1 ๋ฐ P2Version < 1.4์์ ์๋ํฉ๋๋ค"๋ผ๊ณ ์ ์ธํ ์ ์์ต๋๋ค. MVS๋ "P1์๋ P2๊ฐ ํ์ํ๊ณ P2Version > 1.1์์ ์๋"๋ง ์ ์ธํ ์ ์์ผ๋ฉฐ "P2Version < 1.4" ์ ํ์ ํํํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์๋ ์ค์ํ์ง ์์ต๋๋ค. ์ผ๋ถ ์์ ์ด P2๋ฅผ ๋ฒ์ 1.4๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ค๋ ๊ฒฝ์ฐ์๋ง ์ค์ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ SAT๋ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํ์ง๋ง MVS๋ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํ์ง ์์ต๋๋ค. MVS๋ฅผ ์ฌ์ฉํ ๋ ๋นํธํ์ฑ์ด ์ปดํ์ผ ์ค๋ฅ๊ฐ ์๋ ๊ฒฝ์ฐ ์ค๋ ์๊ฐ์ด ์ง๋ ํ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์์ฌ์ ์ฌ์ง ์์ด SAT ์ง์ง์๋ค์ MVS์ ๋ค๋ฅธ ์ฃผ์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ์์ง๋ง ์ง๊ธ๊น์ง๋ ์ด๊ฒ์ด ์ ๊ฐ ์ดํดํ๋ ๋ฌธ์ ์ ๋๋ค.
์ ํ ํํ์ ์์ฒด์ ๋ฒ์ ์ด ์ง์ ๋์ด ์๋ ๊ฒฝ์ฐ(ํน์ P1 ๋ฆด๋ฆฌ์ค์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ) ์ ์์ ์ธ ์ด๋ฒคํธ ๊ณผ์ ์์ P2 ๋ฒ์ 1.4๊ฐ ๋ฆด๋ฆฌ์ค๋๊ธฐ ์ ์ P1 ๋ฒ์ 2.2๊ฐ "P2Version > 1.1". P2 ๋ฒ์ 1.4๊ฐ ๋ฆด๋ฆฌ์ค๋ ๊ฒฝ์ฐ์๋ง P1 ์์ฑ์๊ฐ "P2Version > 1.1 ๋ฐ P2Version < 1.4"์ ํจ๊ป ๋นํธํ์ฑ๊ณผ ๋ฆด๋ฆฌ์ค P1 ๋ฒ์ 2.3์ ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ P1 ๋ฒ์ 2.2๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ SAT๋ MVS ๋ชจ๋ P2๋ฅผ ๋ฒ์ 1.4๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๋ณด๊ณ ํ์ง ์์ต๋๋ค.
์ฆ, P1 ๋ฆด๋ฆฌ์ค๊ฐ P2์ ์ต์ ํธํ ๋ฒ์ ์ ๋์ดํ๋ ๊ฒ์ด ์๋ฒฝํ์ง๋ง ๋ฆด๋ฆฌ์ค๊ฐ P2์ ์ต์ ๋ฒ์ ๊ณผ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ค๋ฉด ๋ฆด๋ฆฌ์ค์์ ์ต๋ ํธํ ๋ฒ์ ์ ๋์ดํ๋ ๊ฒ์ ์ด์น์ ๋ง์ง ์์ต๋๋ค. . ์ต๋ ํธํ ๋ฒ์ ์ ๋ณด์์ ์ด์ด์ ๋ ์๋กญ๊ณ ๋ ๋์ ๋ฒ์ ์ P2๊ฐ ๋ฑ์ฅํจ์ ๋ฐ๋ผ ์ ์ ๋ ์๋ชป๋๊ฑฐ๋, P2๊ฐ ๋ฏธ๋์ ํธํ๋์ง ์๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ๋๋ฉด ๋ฆด๋ฆฌ์ค ์์ ์์ ์๊ตฌ ์ฌํญ์ ์ง์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ํด๋น ์๊ตฌ ์ฌํญ์ ์ง์ ํ์ง ๋ชปํ ๊ฒ์ ๋๋ค. ์กด์ฌํฉ๋๋ค.
๋ฐ๋ผ์ ์ต์ ๋ฒ์ ์๊ตฌ ์ฌํญ ์ด์ธ์ ๋ค๋ฅธ ๊ฒ์ ์ ์ํ๋ ์์คํ ์ ๊ฐ๊ณ ์ถ๋ค๋ฉด ํด๋น ์๊ตฌ ์ฌํญ์ ํน์ ๋ฆด๋ฆฌ์ค์ ์ผ๋ถ๊ฐ ์๋์ด์ผ ํ๋ฉฐ ๋์ ํจํค์ง์ ๊ด๋ จ๋ ์ผ์ข ์ ๋ฉํ๋ฐ์ดํฐ์ ์ผ๋ถ์ฌ์ผ ํฉ๋๋ค. ํจํค์ง ์์ฒด๋ฅผ ์ ๋ฐ์ดํธํ์ง ์๊ณ ์ธ์ ๋ ์ง. ์ฆ, "์ด ํจํค์ง ์ ๋ฐ์ดํธ" ์์ ์ "ํ์ฌ ํจํค์ง ๋ฒ์ ์ด ํธํ๋๋์ง ํ์ธ" ์์ ๊ณผ ๋ถ๋ฆฌ๋์ด์ผ ํฉ๋๋ค.
๋๋ ์ถ๊ฐ๋ก ์ฃผ์ฅํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์์ ๊ฒ๋ณด๋ค ํ์คํ ๋ ๋ฏธ์ฝํฉ๋๋ค. "ํ์ฌ ํจํค์ง ๋ฒ์ ์ด ํธํ๋๋์ง ํ์ธ"์ด ์คํจํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๋๊ตฌ๋ ์ ๋ขฐํ์ง ์๋ ๊ฒ์ด ํ๋ช ํ์ง ๋ชปํฉ๋๋ค. "๋ชจ๋ ๊ด๋ จ ํจํค์ง๋ฅผ ํ์ฌ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋"ํ๋ ๊ฐ๋จํ ์์ ์ผ๋ก ํธํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค๋ฉด ์๊ฐ์ด ํ์ํฉ๋๋ค. ๋๊ตฌ๋ ๊ทธ๋ฌํ ์๊ฐ์ ์๋ดํ ์ ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๊ฒ์ ๋์ฒดํ ์๋ ์์ต๋๋ค. ํนํ ๋๊ตฌ๊ฐ ์๋์ผ๋ก ํจํค์ง ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ์์ํ๋ ๊ฒ์ ๋งค์ฐ ํ๋ช ํ์ง ๋ชปํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ์ธก๋ฉด์์ ์๊ฐํ๋ฉด
๊ทธ๋ฌ๋ฉด MVS์ SAT์ ์ฃผ์ ์ฐจ์ด์ ์ค ์ผ๋ถ๊ฐ ๋ ์ค์ํด์ง๋๋ค.
Ian๋ ์ข์ ๋ง์ ๊ฐ์ฌํฉ๋๋ค. ํ์ ์กฐ์น๋ฅผ ์ํด ์ผ๋จ ๋ฒ์ ๊ณผ vgo๊ฐ ์ค์ ๋๋ฉด go ๋ช ๋ น์ด ์ฐธ์กฐํ ์ ์๋ ์ ๋ณด์ธ ํจํค์ง์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๋ ์๋ก์ด godoc.org(๋ค๋ฅธ ์ด๋ฆ์ผ ์๋ ์์)๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ ๋ณด ์ค ์ผ๋ถ๋ go ๋ช ๋ น์ด ํน์ ๋น๋์์ ๊ฒฝ๊ณ ๋๋ ์ค๋ฅ๋ก ๋ณด๊ณ ํ ์ ์๋ ์๋ณ ๋นํธํ์ฑ์ผ ์ ์์ต๋๋ค(์ฆ, ํผํด๋ฅผ ๋ณด๊ณ ํ๊ณ ํด๊ฒฐํ์ฌ ์จ๊ธฐ๋ ค๊ณ ํ์ง ์์). ๊ทธ๋ฌ๋ ํต์ฌ ๋๊ตฌ ์ฒด์ธ์ ๋ชจ๋ ๋ฒ์ ์ ๋ณด์ ํ๋ ๊ฒ์ด ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ด๋ฉฐ, ์ต์ํ์ ๋ฒ์ ์๊ตฌ ์ฌํญ ๋ฐ ์๋ฏธ๋ก ์ ๊ฐ์ ธ์ค๊ธฐ ๋ฒ์ ๊ด๋ฆฌ์ ํจ๊ป ์ด ๋ฌธ์ ๊ฐ ์น์ธ๋์์ต๋๋ค.
์ต๋ํ ์ํํ๊ฒ ์ฐฉ๋ฅํ ์ ์๋๋ก ์ต์ ์ ๋คํ๊ณ ์์ต๋๋ค. ์ด๋ฅผ ์ํด์๋ ๊ธฐ์กด ํจํค์ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ถ๊ฐ ๋๊ตฌ, ๋ ๋ง์ ๊ต์ก ์ง์ ๋ฐ PR์ด ํ์ํฉ๋๋ค. ์ด ์ ์์ ์๋ฝํ ๋ ๋ชจ๋ ๊ฒ์ด ์ฐจ๋จ๋์์ต๋๋ค. ์ ์ฒด ์ ๊ทผ ๋ฐฉ์์ด ์๋ฝ๋์ง ์๊ณ ์งํํ๋ ๊ฒ์ด ์ฃผ์ ๋์ ๊ฒ์ฒ๋ผ ๋ณด์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ์ ์์ด ๋ฐ์๋ค์ฌ์ง๊ณ ๋ถํ์ค์ฑ์ด ๋๋ ์ง๊ธ ์์ ์ ๋์ฑ ์ ๊ทน์ ์ผ๋ก ์ฐฉ๋ฅํ ๊ฒ์ ๋๋ค.
๋ฒ์ ํธํ์ฑ์ ๋ํ ์ธ๋ถ ์ ๋ณด์ ๋ํด์๋ ๊ฐ์ ์๊ฐ์ ํ์ต๋๋ค... ๋ฒ์ ํธํ์ฑ์ ์ ์ฒด์ ๊ฑธ์ณ ์ผ์ ํด์ผ ํ๋ฏ๋ก ์์ค ์ ์ด์ ์์ ํ์๊ฐ ์์ต๋๋ค(์ฌ์ค ์์ค ์ ์ด์ ์๋ค๋ ๊ฒ์ ์์์ ์ธ๊ธํ ๋ฐ์ ๊ฐ์ด ํ์คํ ๋จ์ ์ ๋๋ค). ์ ์๋ ๋๋ก MVS์ ํ ๊ฐ์ง ์ฃผ์ ๋ฌธ์ ์ธ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํ ์ ์๋ ์๋ฃจ์ ์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
ํ ๋ก ์ด ์ด๋ฌํ ๋ฐฉํฅ์ผ๋ก ์ ๊ธฐ์ ์ผ๋ก ์งํ๋๋ ๊ฒ์ ๋ณด๋ ๊ฒ์ ๊ต์ฅํฉ๋๋ค. ๊ทธ๊ฒ์ ๋ด ๊ด์ฌ์ฌ์ ์ค์ฌ์ ์ธ ์ถ์ง๋ ฅ์ด์์ผ๋ฉฐ ์ฌ๋๋ค์ด ์ด๋ฏธ ๋๋ถ๋ถ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ ๋ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ฅผ ํจ์ฌ ์ฝ๊ฒ ์ค๋ช ํ ์ ์๊ฒ ํด์ค๋๋ค.
@ianlancetaylor , ์ด๋ฏธ ๋ฆด๋ฆฌ์ค๋ ๋ฒ์ ์ ์ ์ฝ ์กฐ๊ฑด ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ ์ ์์ด์ผ ํ๋ค๋ ์ ์ ๋ํด ์ด ๊ด์ฐฐ์ ์ ๋๋ก ์ดํดํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. @rsc ๊ฐ ์ง์ ํ๋ฏ์ด ๊ทธ๋ฌํ ์๋น์ค๋ ์ฐ๋ฆฌ๊ฐ ํ์์์ ๋ ผ์ํ/์ ๊ฐ ์ ์ํ ๊ฒ์ ๋๋ค. godoc.org๋ ๋ค๋ฅธ ๊ฒ์ผ๋ก ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ค์ ๋ก๋ ๋ณ๋์ ์๋น์ค๊ฐ ํ์ํ์ง ์๊ณ , ์๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๊ธ์์ผ์ ๋ฐํํ ๊ธ ์์ ์ด์ ๋ํ ๋น ๋ฅธ ์ฐธ์กฐ๋ฅผ ๋ง๋ค์์ต๋๋ค. ์๋น์ค์๋ ๋นํธํ์ฑ ์ ์ธ์ด ๋๊ตฌ์ ๊ฒฝ๊ณ ์ ํ์๋์ด์ผ ํ๋์ง์ ๋ํด ๋๋ตํด์ผ ํ๋ ์ง๋ฌธ์ด ์์ต๋๋ค. ์ด๋ ID ์ฒ๋ฆฌ๋ฅผ ์๋ฏธํ๋ฉฐ ์ ์ธ์ ๋ฒ์๋ฅผ depgraph์ ํน์ ์ํฉ์ผ๋ก ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ฉํ๋ฐ์ดํฐ ํ์ผ ๋ด๋ถ์ ์ ์ธ์ ์ ์งํ๋ค๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ํ์ ๋ ์์ธํ ์ค๋ช ํฉ๋๋ค.
์ฌ๊ธฐ์์ ์ ๋ง ์ค์ํ ๊ฒ์ ์๋ํ ๋ฐฉ์์ด ์๋ ์๋ ์์ง๋ง ์ด ์ ์ ๋๋ค.
MVS์ SAT์ ์ฃผ์ ์ฐจ์ด์ ์ค ์ผ๋ถ๋ ๋ ์ค์ํด์ง๋๋ค.
์ฌ๋๋ค์ด ์๋ณํ๊ณ ์๋ ๋ฌธ์ ์ ๋ํ ์๋ฃจ์ ์ผ๋ก ์ด ๊ฒ์์ ์ํํ๋ ๋ฉํ ๋๊ตฌ(์, SAT ๊ฒ์)๋ฅผ ์ ์ํฉ๋๋ค. MVS๊ฐ ์ค๋ช ๋ ๋๋ก ์งํ๋๋ ๊ฒฝ์ฐ dep๋ฅผ ๋ณํํด์ผ ํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ฃผ๋ชฉํด์ผ ํ ์ฒซ ๋ฒ์งธ ์ฌํญ์ ๊ฒ์ ๋๊ตฌ์ ๋ํด ์ด์ผ๊ธฐํ ์ ๋๋ก ์ด๋ฌํ ๋นํธํ์ฑ์ ๋ํด ๋๋ฌด ์ฐ๋ คํ๊ณ ์๋ค๋ฉด ์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ ๋งํ๋ ๊ฒ์ MVS๊ฐ ๋ ํฐ ์๊ณ ๋ฆฌ์ฆ์ ํ ๋จ๊ณ์ ๋ถ๊ณผํ๋ค๋ ๊ฒ์ ๋๋ค. grokkability ์ด์ ์ ์ฐฝ ๋ฐ์ผ๋ก ๋ฐ๋ก ์ด๋ํฉ๋๋ค.
์ต์ ๋ฒ์ ๊ณผ ํ์ฌ ๋ฒ์ ์ ํจ๊ป ์์ถํ ๋ ๋ฐ์ํ๋ ๊ธฐ๋ณธ ์ ๋ณด ์์ค ๋ฌธ์ ๋ฅผ ๋ฉํ ๋๊ตฌ๋ก ํด๊ฒฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๊ฒ์ ํฐ ๊ฒฐ๊ณผ๋ ๊ณ๋จ์ ๋กค๋ฐฑ ์ ๋๋ค. ์ฆ, ์ค์ ๋ก ์ด ๋ชฉ๋ก์ ๋นํธํ์ฑ์ ์์ ํ๋ ค๊ณ ์๋ํ๋ฉด ๋ฌธ์ ์ ๋ถํ์ํ๊ฒ ๊ด๋ จ๋์ง ์์ ์ข ์์ฑ ๊ทธ๋ํ์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ค๋ก ๋์ง ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ ํด๋กญ์ง ์์ ์ ๋ฐ์ดํธ ์ ๋ต์ ๋ฐ๋ฅผ ์ ์์ต๋๋ค. . (์ค, ๊ทธ๋ฆฌ๊ณ ํฌํ ๊ท์น ์ด์ง๋ง ์ผ๋ฐ์ ์ผ๋ก MVS ๋ถ์์ฉ์ผ ๋ฟ์ ๋๋ค).
์ด๊ฒ์ด ๋ด๊ฐ MVS๊ฐ "๋ชฉ์ ์ ์ ํฉํ์ง ์์"๊ณผ ๊ฐ์ ๊ณ ์ฐจ์ ๋๊ตฌ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ ํฉํ์ง ์์ ์ค๊ฐ ๊ณ์ธต์ด๋ผ๊ณ ์ฃผ์ฅํ ์ด์ ์ ๋๋ค. ์ฌ๋๋ค์ ์ด๋ฌํ ๋นํธํ์ฑ์ด ๋ฐ์ํ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ๊ณ ์์ผ๋ฏ๋ก MVS๋ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๋ ์ด๋ ต๊ฒ ๋ง๋ค๊ณ ์์ต๋๋ค.
๋์ "๋นํธํ์ฑ ์๋น์ค" ๋ฌธ์ ๋ฅผ ๋ฉํ๋ฐ์ดํฐ ํ์ผ๋ก ๋ค์ ํตํฉํ๋ฉด ๊ฐ๋จํ ์๋ณ ์ ์ธ ์ธํธ๋ง ์ฌ์ฉํ์ฌ ๋์ผํ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค . (์ด๊ฒ์ ๊ฐ๋ ์ ์ด์์ด์ง๋ง ์ ์ ๋ ๋ถ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค)
์ด๋ MVS์ ์ผ๋ถ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ์๋ฐํ์ง๋ง MVS๋ ์ฌ์ ํ ๊ฑฐ๊ธฐ์ ์ธ์ฝ๋ฉ๋ ์ ๋ณด ์์์ ์คํ๋ ์ ์์ต๋๋ค. ๋นํธํ์ฑ์ด ์ง์ ์ผ๋ก ๋ฌธ์ ๊ฐ ๋๊ณ ๋ชจ๋ ๊ฒ์ ํผํ๋ ค๋ ๊ฒฝ์ฐ์ ๋๋ถ๋ถ ์ ์ฉํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ๋ณธ ์๊ณ ๋ฆฌ์ฆ์ MVS์ฒ๋ผ ๋ณด์ด๋ ๊ธฐ์ค์ ์์ ์์ํ ๋ค์ ํฐ๋ฌด๋์์ด ์ค๋๋ ๋ฒ์ ์ผ๋ก ์ด๋ํ ๊ฐ๋ฅ์ฑ ์์ด ๋ ๊ด๋ฒ์ํ ๊ฒ์์ผ๋ก ์ ํํฉ๋๋ค(๋ถ๋ช ํ MVS ์์ฒด๋ ์ฌ์ ํ ๊ฒ์์ผ๋ก ๊ฐ์ฃผ๋์ด์ผ ํจ).
(์ฐธ๊ณ ๋ก ์ ๋ ์ด๋ฒ ์ฃผ์ ํด๊ฐ๋ฅผ ๊ฐ๋ฏ๋ก ๋ค์ ์ฃผ๋ง๊น์ง ๋ต์ฅ์ ๋ณด๋ด์ง ์์ต๋๋ค.)
@sdboyer
์ด ๊ฒ์์ ์ํํ๋ ๋ฉํ ๋๊ตฌ์ ์ ์ - ์, SAT ๊ฒ์์ ๋๋ค.
๋ ์์ธํ๊ฒ ์๊ธฐํด ์ฃผ ์๊ฒ ์ด์? ์ธ์ฉํ์ ๋ฌธ์ฅ์ Ian ์ด ์ ํํ ๋ฒ์ ์ด ํธํ๋๋์ง ์ฌ๋ถ ๋ฅผ ๋ณด๊ณ ํ๋ ๋๊ตฌ๋ฅผ ์ ์ํ ์งํ์ ๋๋ค. ์ ๊ฐ ์๋ ํ, ์ด๊ฒ์ด ์ฌ๊ธฐ์์ ์ ์๋ ์ฃผ์ ๋์์ ๋๋ค(์์์ ์๋ํ ๊ฒ์ ๋๋ค). ๊ทธ ๋ฌธ์ ๋ ๊ฐ์ฅ ํ์คํ ๊ฒ์์ด ์๋๋ฉฐ ์ฌ์ํ๊ณ SAT๋ฅผ ํ ํ์๊ฐ ์์ต๋๋ค(์ด๋ ์ฃผ์ด์ง ๊ฐ ์งํฉ์ ๋ํ ๋ถ์ธ ๊ณต์์ ํ๊ฐํ ๋ฟ์ด๋ฉฐ ๋ง์กฑํ๋ ๊ฐ์ ์ฐพ์ผ๋ ค๊ณ ํ์ง ์์ต๋๋ค).
๋ง์ต๋๋ค. ๊ณต์์ ํธํ๋์ง ์๋ ๊ฒ์ผ๋ก ์๋ ค์ง ๊ฐ์ด ์๋ค๊ณ ๋ณด๊ณ ํ๋ ๊ฒ๋ง์ผ๋ก๋ SAT๋ฅผ ํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌํ ๊ฐ์ด ์๋ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๋ ํ๋ก์ธ์ค๋ฅผ ์ง์ํ๋ ๋๊ตฌ์ ๊ฐ์ด ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์กฐ์น๋ฅผ ์ทจํ๋ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ๊ทธ ๋ฌธ์ฅ์ ์ธ์ฉํ ์ด์ ๋ ์ฌ๋๋ค์ด ์์์ ํญ์ ํ์ํ๋ค๊ณ ๋ฐ์๋ค์๊ธฐ ๋๋ฌธ์ด ์๋๋ผ ๊ทธ๋ฌํ ์กฐ๊ฑด์ ๋ณด๊ณ ํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ๋ฏฟ๋๋ค๋ฉด ๊ทธ๋ฌํ ์๋๋ฆฌ์ค์ ์ง๋ฉดํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๊ณ ๋ฏฟ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฌธ์ ๋ ์ผ๋จ ํด๋น ์ฌ๋ก๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ํ๋น์ฑ๊ณผ ์ค์์ฑ์ด ํ๋ฆฝ๋๋ฉด ์ฌ๋๋ค์ด "MVS ์์์ ๋ชจ๋ ๊ฒ์ ์์ ์ ์ํํ ์ ์์ผ๋ฉฐ ๊ด์ฐฎ์ ๊ฒ"์ด๋ผ๊ณ ์๋ชป๋ ์ ํ๋ฅผ ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ์ฐ๋ฆฌ๋ ํ ์ ์์ง๋ง MVS๊ฐ ์๋์ ์ผ๋ก ์ฐจ๋จํ๋ ์ ์ฉํ ๊ฐ๋ฅํ ๊ฒฝ๋ก ๋๋ฌธ์ ๊ทธ๋ฌํ ์๋๋ฅผ ์ฒ๋ฆฌํ๊ธฐ๊ฐ ํจ์ฌ ๋ ๊น๋ค๋ก์์ง๋๋ค.
2018๋ 5์ 28์ผ ์คํ 4:02:13 EDT, Axel Wagner [email protected] ์ด ๊ธ:
@sdboyer
์ด ๊ฒ์์ ์ํํ๋ ๋ฉํ ๋๊ตฌ์ ์ ์ - ๊ทธ๋ ์ต๋๋ค.
์๋ฅ ๊ฒ์๋ ์์ธํ๊ฒ ์๊ธฐํด ์ฃผ ์๊ฒ ์ด์? ์ธ์ฉํ์ ๋ฌธ์ฅ์ Ian ๋ฐ๋ก ๋ค์ ์์ต๋๋ค.
์ ํํ ๋ฒ์ ์ด ๋ค์๊ณผ ๊ฐ์์ง ๋ณด๊ณ ํ๋ ๋๊ตฌ ์ ์ํธํ ๊ฐ๋ฅ - ๋ด๊ฐ ์๋ ํ, ๊ทธ๊ฒ์ด ์ฃผ์
์ฌ๊ธฐ์ ์ ์๋ ๋์์ด ์์ต๋๋ค(ํ์คํ ์์์ ์๋ํ ๊ฒ์ ๋๋ค).
๊ทธ ๋ฌธ์ ๋ ๊ฐ์ฅ ํ์คํ ๊ฒ์์ด ์๋๋ฉฐ ์ฌ์ํ๊ณ
SAT๋ฅผ ํ ํ์๊ฐ ์์ต๋๋ค(๋จ์ง ๋ถ์ธ ๊ณต์์ ํ๊ฐํ ๋ฟ์ ๋๋ค.
์ฃผ์ด์ง ๊ฐ ์งํฉ์ ๋ํด ๋ง์กฑํ๋ ๊ฐ์ ์ฐพ์ผ๋ ค๊ณ ํ์ง ์์).--
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/golang/go/issues/24301#issuecomment -392595150
๋ด๊ฐ ๊ทธ ๋ฌธ์ฅ์ ์ธ์ฉํ ์ด์ ๋ ์ฌ๋๋ค์ด ์์์ ํญ์ ํ์ํ๋ค๊ณ ๋ฐ์๋ค์๊ธฐ ๋๋ฌธ์ด ์๋๋ผ ๊ทธ๋ฌํ ์กฐ๊ฑด์ ๋ณด๊ณ ํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ๋ฏฟ๋๋ค๋ฉด ๊ทธ๋ฌํ ์๋๋ฆฌ์ค์ ์ง๋ฉดํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๊ณ ๋ฏฟ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ช ํํ ํ๊ธฐ ์ํด: ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ํ์ ์ ๊ฐ์กฐํ์๋ ์ ์์ ์ ๊ธฐ๋ ์ฐ๋ ค์ ์์ ํ ๋ฐ์ํ๊ณ ๊ทธ๊ฒ์ด ์ํ๋ ์ ์์์ ๋ณด์ฌ์ค๋๋ค(MVS๊ฐ ๊ทผ๋ณธ์ ์ผ๋ก ๋ชฉ์ ์ ๋ถ์ ํฉํ๋ค๋ ์ฃผ์ฅ์ ๋นํ์ ์ผ๋ก ์ง๋ฌธํ๊ธฐ ์ํด). ๊ทธ ์๋ณด์ ๊ธฐ๊บผ์ด ํํํ๋ ค๋ ์์ง๋ฅผ ์ฐ๋ฆฌ๊ฐ ๋น์ ์ด ์ณ์๋ค๊ณ ์๊ฐํ๋ค๋ ์ฆ๊ฑฐ๋ก ๋ฐ์๋ค์ด๋ ๊ฒ์ ์ฝ๊ฐ ๋ถ๊ณตํํด ๋ณด์ ๋๋ค.
๋์๊ฒ ๊ทธ ์ฃผ์ฅ(MVS๋ ๋ถ์ ํฉํ๊ณ ๋ณธ์ง์ ์ผ๋ก ์๋ชป๋ ๋ฐฉํฅ์ผ๋ก ๋์ดํฌ ์ ์๋ ๋จ๊ณ)์ ๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก ๋์ ํ๋ ๊ฒ์ด๊ณ ๋ด๊ฐ ๋น์ ์ ์ฃผ์ฅ์ ์ฝ๊ณ ์๋ ๋ ์ฆ์ ๋๋ค. ์ด๋ฌํ ์ฃผ์ฅ ์ค ํ๋๋ ๋นํธํ์ฑ์ ์ ์ธํ ์ ์๊ณ ๋ฒ์ ์ ํ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฐ์ํ ๋ ์คํจํ๋๋ก ํ ์ ์๋ ๊ธฐ๋ฅ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋ ๋ค๋ฅธ ๊ณต์ ํ ์ฃผ์ฅ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๊ณ ๋ฆฌ์ฆ์ด ์ฐ๋ฆฌ๋ฅผ ์ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ฒ ํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค(์ค์ ๋ก SAT ์๋ฒ๊ฐ ํ์ํจ).
๊ทธ๋ฌ๋ ๋๋ ๊ทธ๊ฒ์ด ํ๋นํ๊ณ ๊ณต์ ํ ์ฐ๋ ค๋ผ๊ณ ์๊ฐํ์ง๋ง MVS๊ฐ ๊ทผ๋ณธ์ ์ผ๋ก ๋ถ์ ํฉํ๋ค๋ ๊ฒ์ ์ฆ๋ช
ํ๋ ๊ธฐ์ค์ ํต๊ณผํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋๋ ์ฌ์ ํ MVS๋ฅผ ์ถ๋ฐ์ ์ผ๋ก ์ผ์ ํ๋ฅญํ๊ณ ์ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๊ณ ๋ฏฟ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์ฐ๋ ค๊ฐ ์ค์ ๋ก ์๋นํ ๊ณ ํต์ ์ผ๊ธฐํ๋ ๊ฒ์ผ๋ก ํ๋ช
๋๋ฉด ์์ํ ์คํจ๋ก ์ํ์ ์ถ๊ฐํ๋ ๊ฒ( go.mod
์ ์ผ๋ถ๋ก ๋๋ ๋ณ๋์ ์๋น์ค๋ก)์ ์ถ๊ฐํ๋ ๊ฒ๋ถํฐ ๋ฐ๋ณตํ ์ ์๋ ๋ง์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด๋ ์์ ์์ ์ ์ฒด SAT ์๋ฒ ๋ฐ ์ ๊ธ ํ์ผ์ ์ถ๊ฐํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ฆ, ๋๋ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋์ํ์ง๋ง a) ๊ทธ๊ฒ์ด ๋น์ ์ด ์์ํ๋ ๊ฒ๋งํผ ๊ณ ํต์ ์ผ์ผํค์ง ์์ ๊ฒ์ด๋ผ๊ณ (์๋ง๋ ์์งํ๊ฒ) ๋๊ด์ ์ด๋ฉฐ b) ์ฐ๋ฆฌ๊ฐ MVS๋ก ์์ํ ๋๋ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์
๋๋ค.
ํธํ์ฑ์ ๊ฒฐ์ ํ๋ ์์ค ์ ์ด ์ธ๋ถ์ ๋ฌด์ธ๊ฐ๊ฐ MVS ์์คํ ์ ๊ฒฐ์ ์ฑ์ ๋ณ๊ฒฝํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ foo >= 1.5.0์ด ์ ์ฝ ์กฐ๊ฑด์ผ๋ก ์๊ณ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ foo >= 1.6.0์ด ์๋ ๊ฒฝ์ฐ. ๊ทธ๋ฐ ๋ค์ ์ด ๋ ๊ฐ๋ฅผ ๋ฐ์ด๋๋ฆฌ์ ๋ฃ๊ณ 1.6.0์ ์ ํํฉ๋๋ค. MVS์์๋ ์ด๊ฒ์ด ๋ฐ๋ณต ๊ฐ๋ฅํ ๋น๋์ ํ์ํ ์ ๋ถ์ ๋๋ค. ํญ์ 1.6์ ์ ํํฉ๋๋ค
๊ทธ๋ฌ๋ ์ธ๋ถ ํธํ์ฑ์ ๋ฏน์ค์ ์ถ๊ฐํ๋ฉด ์ฒซ ๋ฒ์งธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ 1.6๊ณผ ํธํ๋์ง ์๋๋ค๊ณ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋์ง ์์์์๋ ์๊ณ ๋ฆฌ์ฆ์ด 1.7์ ์ ํํฉ๋๋ค... ์ฆ, ๋ค์์ด ํ์ํฉ๋๋ค. ํ์ผ์ ๋ค์ ์ ๊ธ๋๋ค.
์ฐธ๊ณ ๋ก ๋ฝํ์ผ์ ๋์์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋น๋ํด์ผ ํ๋ ์ ํํ ๋ชฉ๋ก์ด ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น ๋ฅด๊ฒ ํด์ผ ํฉ๋๋ค. ๋ง๋ฒ์ ๋ ผ๋ฆฌ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
@natefinch ์ธ๋ถ ํธํ์ฑ ๋๊ตฌ๊ฐ v1.6.0์ด ํธํ๋์ง ์๋ ๊ฒ์ผ๋ก ํ์๋์ด ์์ฉ ํ๋ก๊ทธ๋จ์ go.mod ํ์ผ์ด v1.7.0์ด ํ์ํ๋๋ก ์ ๋ฐ์ดํธ๋ ๊ฒฝ์ฐ ์ ๊ธ ํ์ผ์ด ํ์ํ์ง ์์ต๋๋ค. go.mod ํ์ผ์ v1.7.0์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์์ฑ์๋ v1.7.0์ด ์ฌ์ฉ๋๋ ์ด์ ์ ํด๋น ์ ๋ณด๊ฐ ๋ ์์๊ฒ ์ ์ฉํ๋ค๋ ์ค๋ช ์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
@leighmcculloch , ์ฑ์ ํ์ผ์ด ์ ๋ฐ์ดํธ๋๋ฉด ๋ค๋ฅธ ๋น๋์ด๋ฉฐ "lockfile ์์ด ์ฌํ ๊ฐ๋ฅํ ๋น๋" ๋ฌธ์ ์ ๋ฒ์๋ฅผ ์์ ํ ๋ฒ์ด๋ฉ๋๋ค.
์ง์์ด ์ด๋ป๊ฒ ๋ฐ์ ํ๋์ง ๋ฐ์ํ๊ธฐ ์ํด ๋์ญ ์ธ ํธํ์ฑ ์ ๋ณด๊ฐ ์ ์๋ฉ๋๋ค. ๋ฆด๋ฆฌ์ค ๋น์์๋ ๋นํธํ์ฑ์ด ์๋ ค์ ธ ์์ง ์์์ง๋ง ๊ทธ ๋ค์์๋ ๋ช ๋ฐฑํด์ก์ผ๋ฉฐ ์ด๋ฏธ ๋ฆด๋ฆฌ์ค๋ ๋ฒ์ ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๊ฐ ๊ฒ์๋ฉ๋๋ค. IMHO ์ ์์ ๋ฐ๋ฅด๋ฉด ์ด ์ ๊ทผ ๋ฐฉ์์ ์ข ์์ฑ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ ๋ณ๊ฒฝํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ์ด๊ฒ์ด ๋นํธํ์ฑ ์ ๋ณด๋ฅผ ์ ํ ์ถ์ถํ์ง ์์ต๋๊น?
@redbaron @natefinch
๋นํธํ์ฑ ์ ๋ณด์ ์์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ ์ฌ์ฉ์์๊ฒ ๋นํธํ์ฑ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ ๋๋ค. ํด๋น ์ ๋ณด๊ฐ ๋น๋ ์ ์ฌ์ฉ๋๋์ง ๋ฆด๋ฆฌ์ค ์ ์ฌ์ฉ๋๋์ง๋ ๋ค๋ฅธ ์ง๋ฌธ์ ๋๋ค.
vgo์ ๊ฒฝ์ฐ ํ์ฌ ์์ด๋์ด๋ ๊ฒฝ๊ณ (๋๋ ์ ์ฌ์ ์ผ๋ก ์๊ฑฑ๊ฑฐ๋ฆผ)๋ง ํ์ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ํนํ ์ฌ์ฉ๋๋ ๋ฒ์ ์ ํ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ํด์ผ ํฉ๋๋ค(SAT๋ฅผ ํ์ด์ผ ํ๊ธฐ ๋๋ฌธ์). ๋ฐ๋ผ์ ์ค์ ๋ก๋ ์ค์ํ์ง ์์ต๋๋ค. ๋ ์ค ํ๋ ๋๋ ๋ ๋ชจ๋์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ฐ๋ณต์ฑยน์ ์์ฑ์ ์ ์งํ๋ฉด์ ์๋ฌด๋ฅผ ์ ์ํํ ๊ฒ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์ ๋ณด๋ ๋ฆด๋ฆฌ์ค ์์๋ง ์ฌ์ฉ๋๋ฉฐ ๋น๋ ์ ์ฌ์ฉ๋๋ ์ ๊ธ ํ์ผ์ ๊ธฐ๋ก๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ ์ด๋ vgo ๋ dep์ ๊ดํ ๋ฌธ์ ์ ๊ดํด์๋ ๋ฆด๋ฆฌ์ค ์๊ฐ ์ฌ์ฉ์ "์ถฉ๋ถํ" ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ์ฌ์ ํ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ๋น์ฅ ๊ทธ ์ง๋ฌธ๋ค์ ์ค์ ๋ก ๋ตํด์ผ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
[1] ๊ฐ์ธ์ ์ผ๋ก ์ฌ์ฉ์๊ฐ ๊ฒฝ๊ณ ๊ฐ ์คํ ๊ฐ๋ฅํ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ํ์๊ฐ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฆด๋ฆฌ์ค ์ ์ฌ์ฉํ๊ณ ๋น๋ ์ -v
๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค.
@rsc ๋ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
ํ์ ์กฐ์น๋ฅผ ์ํด ์ผ๋จ ๋ฒ์ ๊ณผ vgo๊ฐ ์ค์ ๋๋ฉด go ๋ช ๋ น์ด ์ฐธ์กฐํ ์ ์๋ ์ ๋ณด์ธ ํจํค์ง์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๋ ์๋ก์ด godoc.org(๋ค๋ฅธ ์ด๋ฆ์ผ ์๋ ์์)๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ ๋ณด ์ค ์ผ๋ถ๋ go ๋ช ๋ น์ด ํน์ ๋น๋์์ ๊ฒฝ๊ณ ๋๋ ์ค๋ฅ๋ก ๋ณด๊ณ ํ ์ ์๋ ์๋ณ ๋นํธํ์ฑ์ผ ์ ์์ต๋๋ค(์ฆ, ํผํด๋ฅผ ๋ณด๊ณ ํ๊ณ ํด๊ฒฐํ์ฌ ์จ๊ธฐ๋ ค๊ณ ํ์ง ์์).
์๋ณ ๋นํธํ์ฑ ๊ธฐ๋ก์ด ํ์ํ์ง ๊ถ๊ธํฉ๋๋ค. ํ์ฌ ๋ด๊ฐ ๋ณด๋ ๋ฐฉ์์ ๋ชจ๋ A@vN ๊ณผ ๋ชจ๋ B@vM ์ฌ์ด์ ๋นํธํ์ฑ์ ์ค์ ๋ก B๊ฐ L < M์ธ ์ผ๋ถ ๋ฒ์ vL์์ ํธํ๋์ง ์๋ ๋ณ๊ฒฝ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ชจ๋ B๊ฐ ํธํ๋์ง ์๋ ๋ณ๊ฒฝ์ ํ์ง ์์๋ค๋ฉด ๋ชจ๋ A์๋ ๋ฒ๊ทธ๊ฐ ์์ ๋ฟ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฌธ์ ๋ A์ B์ ์์ด ์๋๋ผ B โโ์์ฒด์ ๊ดํ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ISTM์ ๋ชจ๋ ๋ฉํ๋ฐ์ดํฐ์ ๋ชจ๋ ๊ณต๊ฐ ์ ์ฅ์๊ฐ ์ด์ ๋ฒ์ ์ ๋ชจ๋๊ณผ์ ๋นํธํ์ฑ ๋ง ๊ธฐ๋กํ ์ ์์ผ๋ฏ๋ก ๋ฌธ์ ๋ฅผ ๋ ๋ค๋ฃจ๊ธฐ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ฌํ ๋นํธํ์ฑ ๋ณด๊ณ ์๋ ๋ฒ๊ทธ ๋ณด๊ณ ์์ ๋งค์ฐ ์ ์ฌํ์ง๋ง ๋ฒ์ ์ด ๊ฒ์๋๋ฉด ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ํด๊ฒฐํ ์๋ ์์ต๋๋ค.
๋ชจ๋ ๋ฒ์ ์ ์ ๊ทธ๋ ์ด๋ํ ๋ go ๋๊ตฌ๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ณ ๋ คํ๊ณ ํ์ฌ ์ ํํ ๋ฒ์ ๊ณผ ํธํ๋์ง ์๋ ๋ฒ์ ์ ๊ณ ๋ คํ์ง ์์ ์ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ด SAT๋ฅผ ํ ํ์๋ฅผ ํผ ํ๋ค๊ณ ์๊ฐ ํฉ๋๋ค. ๋ํ ์ฃผ์ด์ง ๋ชจ๋์ ๋๋ฌด ๋ง์ ๋นํธํ์ฑ ๋ณด๊ณ ์๊ฐ ์๋ค๊ณ ํ๋จํ์ฌ ์ข ์์ฑ์ผ๋ก ์ถ๊ฐํ๋ ๊ฒ์ ๊ฑฐ๋ถํ ์ ์์ต๋๋ค.
( module , oldVersion , newVersion , description ) ํ์์ ํํ ์ธํธ๋ก ์ถฉ๋ถํ ์ ์์ต๋๋ค.
go ๋๊ตฌ๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ณ ๋ คํ๊ณ ํ์ฌ ์ ํํ ๋ฒ์ ๊ณผ ํธํ๋์ง ์๋ ๋ฒ์ ์ ๊ณ ๋ คํ์ง ์์ ์ ์์ต๋๋ค.
๋ฌผ๋ก , ์ด๊ฒ์ ์๋ก์ด ๋ฒ์ ์ด ๊ธฐ์กด ๋ชจ๋์ ์ผ๋ถ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์ข ์์ฑ์ ์ถ๊ฐํ ๋ ์๋ํ์ง ์์ต๋๋ค. ์ข ์์ฑ์ ๋น๊ต์ ๋๋ฌผ๊ฒ ์ถ๊ฐ ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค์ํ AFAICS๋ ์๋๋๋ค.
๋๋ go release
์ด ํ ๋ก ์ "์ถฉ๋ถํ ๋๋ํ ์ปดํ์ผ๋ฌ" ๊ฐ ๋๊ณ ์๋ค๊ณ ๊ฑฑ์ ํฉ๋๋ค. ์ฌ์ฉ์๋ Go 1.11/12์ go release
์์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ฌด์์ ๊ธฐ๋ํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ด MVS/SIV์ ๋ํ ํฉ๋ฆฌ์ ์ธ ๊ธฐ๋๊ฐ ๋ฌด์์ธ์ง์ ๋ํ ์ฐจ์ด๋ฅผ ๋ง๋ ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ง์ ๋ถ๋ค์ด Go์ ํนํ ์ด ์ ์์ ๊ฐ์ ธ์จ ์๋์ง์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ ์ ํ๋ก์ธ์ค์ ์ฒซ ๋ฒ์งธ ๋ชฉํ๋ "๋ช ํํ ๋ต๋ณ๊ณผ ํจ๊ป ์ ์์ด ์ ์ ํ๊ณ ๊ณต์ ํ๋ฉฐ ์๊ธฐ์ ์ ํ๊ณ ๊ธฐ๋ก๋ ํ๊ฐ๋ฅผ ๋ฐ์ ์ ์๋๋ก ํ๋ ๊ฒ"์ ๋๋ค. ์ด ์ ์์ ์ค๋ซ๋์ ๋ ผ์๋์๊ณ ์ฐ๋ฆฌ๋ ํ ๋ก ์์ฝ์ ๋ฐํํ์ต๋๋ค. 6์ฃผ ๋์ ๋ง์ ํ ๋ก ๋์ ๋ด๊ฐ ์ ์์๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ค์ฌ์ ์ญํ ์ ํ๋ ์ ์ ๊ฒํ ์์ํ๊ฐ ์ ์์ ์๋ฝํ์ต๋๋ค.
๋จ์ผ GitHub ๋ฌธ์ ๋ ๊ด๋ฒ์ํ ํ ๋ก ์ ํ๊ธฐ ์ด๋ ค์ด ๊ณณ์ ๋๋ค. GitHub์๋ ๋ํ์ ์ฌ๋ฌ ๊ฐ๋ฅ์ ๋ํ ์ค๋ ๋ฉ์ด ์๊ณ ๋ ์ด์ ๋ชจ๋ ์ฃผ์์ ํ์ํ์ง๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์ ๊ฐ์ ํ ๋ก ์ด ์๋ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ํ ๋ก ์์ฝ์ ์ ๊ทน์ ์ผ๋ก ํ๋ ์ด์ ํ๋ ๊ฒ์ ๋๋ค. ์ ์์ด ๋ฐ์๋ค์ฌ์ง ๋ฌด๋ ต์๋ ์์ฝ์กฐ์ฐจ ๋ค๋ฃจ๊ธฐ ์ด๋ ค์์ก์ต๋๋ค.
์ด์ ์ ์์ด ์๋ฝ๋์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ ๋ ์ด์ ํ ๋ก ํ๊ธฐ์ ์ ํฉํ์ง ์์ผ๋ฉฐ ์์ฝ์ ๋ ์ด์ ์ ๋ฐ์ดํธํ์ง ์์ต๋๋ค. ๋์ , ๊ทํ๊ฐ ๊ฒช๊ณ ์๋ ๋ฌธ์ ์ ๋ํ ์๋กญ๊ณ ๊ตฌ์ฒด์ ์ธ ๋ฌธ์ ๋ฅผ ์ ์ถํ๊ฑฐ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ์ ์์ ์ ์ถํ์ฌ ๊ฐ ํน์ ์ฃผ์ ์ ๋ํด ์ง์ค์ ์ธ ํ ๋ก ์ ํ ์ ์๋๋ก ํ์ญ์์ค. ์ด๋ฌํ ์๋ก์ด ๋ฌธ์ ์๋ "x/vgo:"๋ฅผ ์ ๋์ด๋ก ๋ถ์ด์ญ์์ค. ์ ํธ์ ํ ์คํธ์์ #24301์ ์ธ๊ธํ๋ฉด โโ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฐพ์ ์ ์๋๋ก ์ฌ๊ธฐ์์ ์ํธ ์ฐธ์กฐ๋ฉ๋๋ค.
๋ง์ง๋ง ์์ ์ ์ ์์ ์๋ฝํ๋ค๋ ๊ฒ์ ํ๋กํ ํ์ ๊ตฌํ ๋ฒ๊ทธ ๋ฑ์ด ์๋๋ผ ์์ด๋์ด๋ฅผ ์๋ฝํ๋ ๊ฒ์ ์๋ฏธํ๋ค๋ ๊ฒ์ ๋๋ค. ์์ง ํด๊ฒฐํด์ผ ํ ์ธ๋ถ ์ฌํญ๊ณผ ์์ ํด์ผ ํ ๋ฒ๊ทธ๊ฐ ์์ผ๋ฉฐ ๊ณ์ํด์ ํจ๊ป ํ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๋์์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ํํด์ผ ํ ์์ ์ด ๋ ์์ง๋ง( modules ๋ ์ด๋ธ ์ฐธ์กฐ) ์ด ๋ฌธ์ ์์ ์ ์ํ ์ด๊ธฐ ๋ชจ๋ ๊ตฌํ์ด ๋ฉ์ธ ํธ๋ฆฌ์ ์ปค๋ฐ๋์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ๋ซ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ์ ์์ 2๊ฐ์ ์ด์ ํ๋ฐํ ํ ๋ก ์ ํตํด ๊ณต๊ฐ๋์์ต๋๋ค. @rsc & @spf13 ์ ํผ๋๋ฐฑ ์ธ์ ์ ์ํํ๊ณ ์ปค๋ฎค๋ํฐ์์ ๊ท์คํ ์๊ฒฌ์ ์์งํ์ฌ ์ ์์ ์์ ํ์ต๋๋ค. @rsc ๋ ๋ํ ์ถ๊ฐ ํผ๋๋ฐฑ์ ์ป๊ธฐ ์ํด @sdboyer ์ ๋งค์ฃผ ํ์๋ฅผ ์งํํ์ต๋๋ค. ์ ์์ ๋ํ ๊ท์คํ ํผ๋๋ฐฑ์ด ์ ๊ณต๋์ด ์ถ๊ฐ ์์ ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ ์ ๋ ์ด ํผ๋๋ฐฑ์ ์ ์๋ณด๋ค๋ ์๋ฐ๋๋ ๊ตฌํ์ ๋ํ ๊ฒ์ ๋๋ค. ์๋นํ ๊ฒํ ํ์ ์ฐ๋ฆฌ๋ ์ด ์ ์์ ์๋ฝํ๊ณ Go์ ๊ด๋ฒ์ํ ๋๊ตฌ ๊ตฌํ ์ํ๊ณ๊ฐ ์ค์ํ ์กฐ์ ์ ์์ํ์ฌ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ด ๊ฐ๋ฅํ ์ต๊ณ ์ ๊ฒฝํ์ ํ ์ ์๋๋ก ํ ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ ์ด ์ ์์ ๋ํด ๋ ๊ฐ์ง ๋ฐ๋๊ฐ ์์์ต๋๋ค.
์ด๋ค์ ๊ด์ฐฐ์ ์ ํํ์ง๋ง ์๋ํ ๋๋ก ์๋ํฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ gofmt ์คํ๊ณผ ๊ฐ์ Go์ ๋ค๋ฅธ ์ธ๋ถ ์ฌํญ์ ์ ์ํ ๊ฒ์ฒ๋ผ ์ฝ๋ ์์ฑ์์ ์ฌ์ฉ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ๋ฐ ๋ฆด๋ฆฌ์ค์ ๋ํ ์ผ๋ถ ๊ดํ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ด ๋๋ก๋ ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก vgo๋ ๋นํธํ์ฑ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๊ฐ๋ฅํ ์ํฉ์ ์ฒ๋ฆฌํ ํ์๋ ์์ต๋๋ค. Russ๊ฐ ์ต๊ทผ Gophercon Singapore ์ฐ์ค์์ ์ง์ ํ๋ฏ์ด ๋นํธํ์ฑ์ ๋ํ ์ ์ผํ ์๊ตฌ์ ์ธ ํด๊ฒฐ์ฑ ์ ํจ๊ป ํ๋ ฅํ์ฌ ๋นํธํ์ฑ์ ์์ ํ๊ณ Go ํจํค์ง ์ํ๊ณ๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค. vgo ๋๋ dep์ ๊ฐ์ ๋๊ตฌ์ ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋ฐ์๊ฐ ์ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๊ฐ์ ์ค ์ ์์ ๋งํผ๋ง ์๋ํ๋ฉด ๋๋ฉฐ vgo๋ ์ด ์์ ์ ์ถฉ๋ถํ ์ํํฉ๋๋ค.
์ด ์ค์ํ ๋ฌธ์ ์ ๋ํด ๋ณด๋ด์ฃผ์ ๋ชจ๋ ํผ๋๋ฐฑ๊ณผ ์ด์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ ์์ด ์๋ฝ๋์์ต๋๋ค.
โ ๋ฐ๋์ ์์ฌ์์์ํ