Go: cmd/go: Go ๋„๊ตฌ ๋ชจ์Œ์— ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์ง€์› ์ถ”๊ฐ€

์— ๋งŒ๋“  2018๋…„ 03์›” 07์ผ  ยท  242์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: golang/go

์ œ์•ˆ: Go ๋„๊ตฌ ์ฒด์ธ์— ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์ง€์› ์ถ”๊ฐ€

Go ๊ฐœ๋ฐœ์ž์™€ ๋„๊ตฌ์˜ ์ž‘์—… ์–ดํœ˜์— ๋ฒ„์ „์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์ด๋ฏธ ์˜ค๋ž˜์ „ ์ผ์ž…๋‹ˆ๋‹ค.
์—ฐ๊ฒฐ๋œ ์ œ์•ˆ ์€ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์•ˆ์— ๋Œ€ํ•œ ๋…ผ์˜๋Š” ํŠนํžˆ ๊ทผ๊ฑฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ด GitHub ๋ฌธ์ œ๋Š” ์ œ์•ˆ์˜ ๋‚ด์šฉ์— ๋Œ€ํ•œ ํ† ๋ก ์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ฐธ์กฐ:

Proposal Proposal-Accepted modules

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ์ œ์•ˆ์€ 2๊ฐœ์›” ์ด์ƒ ํ™œ๋ฐœํ•œ ํ† ๋ก ์„ ํ†ตํ•ด ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. @rsc & @spf13 ์€ ํ”ผ๋“œ๋ฐฑ ์„ธ์…˜์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ท€์ค‘ํ•œ ์˜๊ฒฌ์„ ์ˆ˜์ง‘ํ•˜์—ฌ ์ œ์•ˆ์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. @rsc ๋Š” ๋˜ํ•œ ์ถ”๊ฐ€ ํ”ผ๋“œ๋ฐฑ์„ ์–ป๊ธฐ ์œ„ํ•ด @sdboyer ์™€ ๋งค์ฃผ ํšŒ์˜๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ˆ์— ๋Œ€ํ•œ ๊ท€์ค‘ํ•œ ํ”ผ๋“œ๋ฐฑ์ด ์ œ๊ณต๋˜์–ด ์ถ”๊ฐ€ ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ ์  ๋” ์ด ํ”ผ๋“œ๋ฐฑ์€ ์ œ์•ˆ๋ณด๋‹ค๋Š” ์ˆ˜๋ฐ˜๋˜๋Š” ๊ตฌํ˜„์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒ๋‹นํ•œ ๊ฒ€ํ†  ํ›„์— ์šฐ๋ฆฌ๋Š” ์ด ์ œ์•ˆ์„ ์ˆ˜๋ฝํ•˜๊ณ  Go์˜ ๊ด‘๋ฒ”์œ„ํ•œ ๋„๊ตฌ ๊ตฌํ˜„ ์ƒํƒœ๊ณ„๊ฐ€ ์ค‘์š”ํ•œ ์กฐ์ •์„ ์‹œ์ž‘ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜์ด ๊ฐ€๋Šฅํ•œ ์ตœ๊ณ ์˜ ๊ฒฝํ—˜์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ๋•Œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ด์•ผ๊ธฐํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด ์ œ์•ˆ์— ๋Œ€ํ•ด ๋‘ ๊ฐ€์ง€ ๋ฐ˜๋Œ€๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ด ์ œ์•ˆ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ๋ฐ ๋ฐฐํฌ์— ๊ด€ํ•œ ๊ด€ํ–‰์„ ์ผ๋ถ€ ๋ณ€๊ฒฝํ•˜๋„๋ก ์š”๊ตฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  2. ์ œ์•ˆ์€ ๋น„ํ˜ธํ™˜์„ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ๊ธฐ์ˆ  ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ด๋“ค์€ ๊ด€์ฐฐ์— ์ •ํ™•ํ•˜์ง€๋งŒ ์˜๋„ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ gofmt ์‹คํ–‰๊ณผ ๊ฐ™์€ Go์˜ ๋‹ค๋ฅธ ์„ธ๋ถ€ ์‚ฌํ•ญ์— ์ ์‘ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ฝ”๋“œ ์ž‘์„ฑ์ž์™€ ์‚ฌ์šฉ์ž๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ๋ฐ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์ผ๋ถ€ ๊ด€ํ–‰์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ๋•Œ๋กœ๋Š” ์˜ฌ๋ฐ”๋ฅธ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ vgo๋Š” ๋น„ํ˜ธํ™˜์„ฑ๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. Russ๊ฐ€ ์ตœ๊ทผ Gophercon Singapore ์—ฐ์„ค์—์„œ ์ง€์ ํ–ˆ๋“ฏ์ด ๋น„ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•œ ์œ ์ผํ•œ ์˜๊ตฌ์ ์ธ ํ•ด๊ฒฐ์ฑ…์€ ํ•จ๊ป˜ ํ˜‘๋ ฅํ•˜์—ฌ ๋น„ํ˜ธํ™˜์„ฑ์„ ์ˆ˜์ •ํ•˜๊ณ  Go ํŒจํ‚ค์ง€ ์ƒํƒœ๊ณ„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. vgo ๋˜๋Š” dep์™€ ๊ฐ™์€ ๋„๊ตฌ์˜ ์ž„์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ค์ œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์‹œ๊ฐ„์„ ์ค„ ์ˆ˜ ์žˆ์„ ๋งŒํผ๋งŒ ์ž‘๋™ํ•˜๋ฉด ๋˜๋ฉฐ vgo๋Š” ์ด ์ž‘์—…์„ ์ถฉ๋ถ„ํžˆ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ค‘์š”ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ณด๋‚ด์ฃผ์‹  ๋ชจ๋“  ํ”ผ๋“œ๋ฐฑ๊ณผ ์—ด์ •์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ œ์•ˆ์ด ์ˆ˜๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

โ€” ๋ฐ”๋‘‘์ œ์•ˆ์‹ฌ์˜์œ„์›ํšŒ

๋ชจ๋“  242 ๋Œ“๊ธ€

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

์ด ๋ฌธ์ œ ์˜๊ฒฌ์€ ์•„๋ž˜ ํ† ๋ก ์ด๋‚˜ ๋‹ค๋ฅธ ํ† ๋ก ์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ž…๋‹ˆ๋‹ค. ํ† ๋ก ์˜ ๋‹ค๋ฅธ ์งˆ๋ฌธ์€ ๋‹ค์Œ ๋ฌธ์ œ ์˜๊ฒฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆ์ด " dep ์‚ฌ์šฉ"์ด ์•„๋‹Œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ฑฐ์˜ 2๋…„ ์ „ ์ด ์ œ์•ˆ์œผ๋กœ ์ด์–ด์ง„ ์—ฌ์ •์ด ์‹œ์ž‘๋  ๋•Œ ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” Ruby์˜ Bundler์™€ Rust์˜ Cargo๊ฐ€ ์˜ˆ์‹œํ•œ ํŒจํ‚ค์ง€ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์—ˆ์Šต๋‹ˆ๋‹ค. ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ ์˜๋ฏธ ์ฒด๊ณ„ ๋ฒ„์ „, ์†์œผ๋กœ ํŽธ์ง‘ํ•œ ์ข…์†์„ฑ ์ œ์•ฝ ํŒŒ์ผ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ผ๊ณ  ํ•˜๋Š” ๋ณ„๋„์˜ ๊ธฐ๊ณ„ ์ƒ์„ฑ ์ „์ด ์ข…์†์„ฑ ์„ค๋ช…(์ž ๊ธˆ ํŒŒ์ผ), ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ถฉ์กฑํ•˜๋Š” ์ž ๊ธˆ ํŒŒ์ผ์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฒ„์ „ ์†”๋ฒ„, ๋ฒ„์ „ ๊ด€๋ฆฌ ๋‹จ์œ„๋กœ์„œ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ. Dep์€ ์ด ๋Œ€๋žต์ ์ธ ๊ณ„ํš์„ ๊ฑฐ์˜ ์ •ํ™•ํ•˜๊ฒŒ ๋”ฐ๋ฅด๊ณ  ์›๋ž˜ go ๋ช…๋ น ํ†ตํ•ฉ์„ ์œ„ํ•œ ๋ชจ๋ธ ์—ญํ• ์„ ํ•˜๋„๋ก ์˜๋„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Bundler/Cargo/Dep ์ ‘๊ทผ ๋ฐฉ์‹์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ๊ณผ ํŠนํžˆ go ๋ช…๋ น์— ๋‚ด์žฅ๋œ Go์— ๋Œ€ํ•œ ์˜๋ฏธ๋ฅผ ๋” ๋งŽ์ด ์ดํ•ดํ• ์ˆ˜๋ก Go ํŒ€์˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ์ด๋Ÿฌํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ๋…ผ์˜ํ• ์ˆ˜๋ก ๋ช‡ ๊ฐ€์ง€ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ๋ฐ”๋‘‘์— ์ ์  ๋œ ์ ํ•ฉํ•ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์ œ์•ˆ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ๋” ์‰ฌ์šด ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ํŠน์ • ์„ธ๋ถ€์ •๋ณด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ์ œ์•ˆ์„ ๋ฐœํ‘œํ•˜๋Š” ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ œ์•ˆ์˜ ๊ทผ๊ฑฐ ์„น์…˜ ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฃผ์š” ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ์— ํ‘œ์‹œ๋˜์–ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์‹œ์Šคํ…œ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๊ทน์ ์œผ๋กœ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๊ฐ€์ ธ์˜ค๊ธฐ ํ˜ธํ™˜์„ฑ ๊ทœ์น™ ์„ ๋”ฐ๋ฅด๊ธฐ ์œ„ํ•ด. ๋˜ํ•œ ๊ฐ€์ ธ์˜ค๊ธฐ ํ˜ธํ™˜์„ฑ ๊ทœ์น™์— ๋Œ€ํ•œ ๋™๊ธฐ์™€ ์ •๋‹น์„ฑ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช… ํ•˜๋Š” ์ œ์•ˆ์„ ๋ฐœํ‘œํ•˜๋Š” ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฃผ์š” ๋ฒ„์ „ v0, v1์ด ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ์—์„œ ์ƒ๋žต๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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์„ ์ƒ๋žตํ•˜๋Š” ๊ฒƒ์€ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹Œ ํ•„์ˆ˜ ์‚ฌํ•ญ์ด๋ฏ€๋กœ ๊ฐ ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๋‹จ์ผ ์ •๊ทœ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ์—์„œ ๊ณ„์† ์ž‘์—…ํ•˜๋Š” ๋Œ€์‹  v2์šฉ ์ƒˆ ๋ถ„๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ƒˆ ๋ถ„๊ธฐ๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. 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๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

$GOPATH๊ฐ€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋‹ค์šด๋กœ๋“œํ•œ ์ฝ”๋“œ๋Š” ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ?

์ฒดํฌ์•„์›ƒํ•˜๊ณ  ์ž‘์—…ํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์–ด๋Š ๊ณณ์—๋‚˜ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Vgo๋Š” ๋‹ค์šด๋กœ๋“œํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด ์•ฝ๊ฐ„์˜ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด Go 1.9์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ $HOME/go๋กœ ์„ค์ •๋˜๋Š” $GOPATH๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ž๋Š” ์ด๋Ÿฌํ•œ ํŒŒ์ผ์ด ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๊ธฐ๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š” ํ•œ $GOPATH๋ฅผ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ค์น˜ ์œ„์น˜๋งŒ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด $GOBIN์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ•ญ์ƒ ๊ทธ๋ ‡๋“ฏ์ด).

// import ๋Œ“๊ธ€์„ ์™œ ๋„์ž…ํ•ฉ๋‹ˆ๊นŒ?

ํ•˜์ง€ ์•Š์•˜๋‹ค. ๊ทธ๊ฒƒ์€ ๊ธฐ์กด์˜ ๊ด€์Šต ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘˜๋Ÿฌ๋ณด๊ธฐ์—์„œ ํ•ด๋‹น ์˜ˆ์ œ์˜ ์š”์ ์€ go.mod ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ€์ ธ์˜ค๊ธฐ ์ฃผ์„์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๋ชจ๋“ˆ ๊ฒฝ๋กœ๋ฅผ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”„๋กœ์ ํŠธ go.mod ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€์ ธ์˜ค๊ธฐ ์ฃผ์„์ด ์™„์ „ํžˆ ์ค‘๋ณต๋˜๊ณ  ์•„๋งˆ๋„ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ† ๋ก  ์š”์•ฝ(์ตœ์ข… ์—…๋ฐ์ดํŠธ 2017-04-25)

์ด ๋ฌธ์ œ ์˜๊ฒฌ์—๋Š” ์•„๋ž˜์˜ ํ† ๋ก  ๋‚ด์šฉ์ด ์š”์•ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

[ 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์€ ์ด๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ์—์„œ v0, v1์ด ์ƒ๋žต๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์™œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋‚˜ํƒ€๋‚˜์•ผ ํ•ฉ๋‹ˆ๊นŒ? v0, v1์ด ์ ˆ๋Œ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

[ 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์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆ์„œ์— zip ํŒŒ์ผ์ด ์–ธ๊ธ‰๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

[ https://github.com/golang/go/issues/24301#issuecomment -374839409 @nightlyone ์ž‘์„ฑ.]

์ƒํƒœ๊ณ„๋Š” ๊ตฌ์ฒด์ ์ธ ๊ตํ™˜ ํ˜•์‹์„ ์ •์˜ํ•จ์œผ๋กœ์จ ์ด์ต์„ ์–ป์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ”„๋ก์‹œ ๋ฐ ๊ธฐํƒ€ ๋„๊ตฌ๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— ์šฐ๋ฆฌ๋Š” ๋ฒ„์ „ ์ œ์–ด์˜ ์ง์ ‘์ ์ธ ์‚ฌ์šฉ์„ ํฌ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค( ์ด ๊ฒŒ์‹œ๋ฌผ ์ƒ๋‹จ์˜ ๊ทผ๊ฑฐ ์ฐธ์กฐ). ์ด ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘ ํŠน์ • ํ˜•์‹์„ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ๋™๊ธฐ๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๋Š” zip ํŒŒ์ผ์— ๋Œ€ํ•ด ์ „ํ˜€ ์ƒ๊ฐํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. godoc.org์™€ ๊ฐ™์€ ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ฐœ๋ฐœ์ž๋Š” ๋‚ด๋ถ€๋ฅผ ๋ณผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

zip ๋Œ€ tar์— ๋Œ€ํ•œ #24057๋„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฃผ์š” ๋ฒ„์ „์„ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ์— ๋„ฃ์œผ๋ฉด DRY๋ฅผ ์œ„๋ฐ˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

[ 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๊ฐ€ ์ ์ ˆํ•œ ์˜์‚ฌ ๋ฒ„์ „์„ ๊ณ„์‚ฐํ•˜๊ณ  ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

vgo๊ฐ€ C ๋˜๋Š” ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ์™€ ๊ฐ™์€ ๋น„ Go ์ข…์†์„ฑ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ? ์ƒ์„ฑ๋œ ์ฝ”๋“œ?

[ 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๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ๊ฐ€ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ(์˜ˆ: v2, v3, v4)์— ๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ๋ณด์œ ํ•˜๋Š” ๊ฒฝ์šฐ vgo๊ฐ€ ๋‹ค๋ฅธ ์ปค๋ฐ‹์—์„œ ํ˜ผํ•ฉ ๋ฐ ์ผ์น˜์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

[ https://github.com/golang/go/issues/24301#issuecomment -376266648 @jimmyfrasche ์ž‘์„ฑ.]
[ https://github.com/golang/go/issues/24301#issuecomment -376270750 @AlexRouSg.]

์˜ˆ. ๊ฐ ๋ฒ„์ „ ํƒœ๊ทธ๋ฅผ ์ „์ฒด ์ €์žฅ์†Œ์˜ ํ•˜๋‚˜์˜ ํ•˜์œ„ ํŠธ๋ฆฌ์—๋งŒ ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ทจ๊ธ‰ํ•˜๊ณ  ๊ฐ ๊ฒฐ์ •์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ํƒœ๊ทธ(๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์ปค๋ฐ‹)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์—์„œ semver๋ฅผ ์˜ค์šฉํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ์—์„œ ๋ถ€ ๋ฒ„์ „์„ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

[ 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 ์˜ต์…˜์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ ๋Œ€ ๋ฒค๋”, ํŠนํžˆ ์˜คํ”ˆ ์†Œ์Šค ๋Œ€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ์— ๋Œ€ํ•œ vgo ์˜์กด์„ฑ์— ๋Œ€ํ•œ ์šฐ๋ ค.

[ 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๊ฐ€ ๋œ ํ›„์—๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

GOPATH ์‹œ๋งจํ‹ฑ์— ๋”ฐ๋ฅธ ํ”„๋กœํ† ๋นŒ๋“œ์— ๋Œ€ํ•œ ์šฐ๋ ค.

[ 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 ์ œ์•ˆ์ด ์ง์ ‘ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š๋Š” ์‹ค์ œ ๊ธฐ์กด ๋ฌธ์ œ์ด์ง€๋งŒ ๋ถ„๋ช…ํžˆ ์šฐ๋ฆฌ๋Š” ๊ฒฐ๊ตญ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋‹ต์€ ์บ์‹ฑ ํ”„๋ก์‹œ(๋ฏธ๋Ÿฌ)์™€ ํ•จ๊ป˜ ์ด๋ฅผ ์‹ ๋ขฐํ•  ์ด์œ ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋ฏธ๋ž˜์˜ ์ผ์ด๋‹ค. (๋˜๋Š” ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ตœ์ƒ์œ„ ํ”„๋กœ์ ํŠธ์—์„œ ๊ณต๊ธ‰์—…์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.) ์ฝ”๋“œ ์ด๋™์— ๋Œ€ํ•œ ๋Œ€๋‹ต์€ ์œ ํ˜• ๋ณ„์นญ์ด ์œ ํ˜• ๋ฆฌ๋””๋ ‰์…˜์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ชจ๋“ˆ ๋˜๋Š” ํŒจํ‚ค์ง€ ๋ฆฌ๋””๋ ‰์…˜์˜ ๋ช…์‹œ์  ๊ฐœ๋…์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฏธ๋ž˜์˜ ์ผ์ด๊ธฐ๋„ ํ•˜๋‹ค.

๋กœ์ปฌ Git ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

[ 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์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ „์šฉ ํŒจํ‚ค์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ์„ค์น˜๋ฅผ ์ง€์›ํ•œ ์ ์ด ์—†์œผ๋ฉฐ ์•ž์œผ๋กœ๋„ ๊ณ„์† ์ง€์›ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ์ „์šฉ ํŒจํ‚ค์ง€๋Š” ํ•˜๋‚˜์˜ ํŠน์ • ์ปดํŒŒ์ผ๋Ÿฌ์™€ ํ•˜๋‚˜์˜ ํŠน์ • ์ข…์†์„ฑ ๋ณต์‚ฌ๋ณธ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋ฏ€๋กœ ์ง€์›๋  ์ˆ˜ ์žˆ๋Š” ์ •๋„๊ฐ€ ์‹ฌ๊ฐํ•˜๊ฒŒ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์ •๋‹ต์€ ๊ฑฐ์˜ ํ•ญ์ƒ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

go.mod ํŒŒ์ผ์—์„œ path@version ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

[ 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 ์Šคํƒ€์ผ ํŒจํ‚ค์ง€์ธ๊ฐ€์š”? ๋ชจ๋“ˆ ๊ฒฝ๊ณ„๋Š” ์–ด๋””์ธ๊ฐ€์š”? ๋“ฑ)

๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ œ์•ˆ์„ ์ข‹์•„ํ•˜์ง€๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ์— ์ฃผ์š” ๋ฒ„์ „์„ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์— ๋งค๋‹ฌ๋ ธ์Šต๋‹ˆ๋‹ค.

  1. go.mod ์—์„œ ์ฃผ ๋ฒ„์ „์„ ์ด๋ฏธ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ DRY ์›์น™์„ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ์‚ฌ์ด์— ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ๋„ ์ง๊ด€ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  2. v0 ๋ฐ v1 ๊ฐ€ ๋ถ€์žฌํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๋ถˆ๊ทœ์น™์„ฑ๋„ ์ง๊ด€์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  3. ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ๋ชจ๋“  ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ์ž ์žฌ์ ์œผ๋กœ ์ง€๋ฃจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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 ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊ธธ๋“ค์ด๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด์ง€๋งŒ "์ตœ์†Œ ๋ฒ„์ „ ์‚ฌ์šฉ" ๊ทœ์น™์€ ๋งค์šฐ ํ•ด๋กญ์Šต๋‹ˆ๋‹ค.

  • ์ฝ”๋“œ ์ƒํƒœ๊ณ„๊ฐ€ ๋ฐœ์ „ํ•˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์‚ฌ๋žŒ๋“ค์ด ์ƒˆ ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธ ๋ฐ ์‚ฌ์šฉํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ๋ˆ„์ ๋˜๊ธฐ ์ „์— ์กฐ๊ธฐ์— ๊ฐ์ง€ํ•˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ƒˆ ๋ชจ๋“ˆ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ ์šฉ๋˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ƒˆ ๋ชจ๋“ˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ ์ˆ˜์ • ์‚ฌํ•ญ์— ํ•ญ์ƒ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ํ”ผํ•˜๋ฉด ํ•ด๋‹น ์ˆ˜์ • ์‚ฌํ•ญ๋„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ ๋ฆด๋ฆฌ์Šค์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์กฐ๊ธฐ์— ์ ์šฉํ•˜๋Š” ๋ณด์•ˆ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ๋ณด์•ˆ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๊ฒŒ์‹œ๋  ๋•Œ ๊ฒ€์‚ฌํ•  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋นจ๋ฆฌ ํ•˜๋ผ๋Š” ๊ฒƒ์€ ์ด์ „์— ๋ณด์ง€ ์•Š์€ ์ค‘๊ฐ„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ํœฉ์“ธ๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.)
  • ์ค‘๊ฐ„ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ˜ธํ™˜์„ฑ์„ ๊นจ๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋กญ๊ณ  ํ˜ธํ™˜์„ฑ์„ ๊นจ์„œ๋Š” ์•ˆ๋˜๋ฉฐ, ๋งŒ์•ฝ ๊ทธ๋“ค์ด ๊ทธ๊ฒƒ์„ ๊ฐ์ง€ํ•˜๊ณ  ๋ชจ๋“ˆ ์ž‘์„ฑ์ž์—๊ฒŒ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค๋ฅผ ์œ„ํ•œ ์Šต๊ด€์„ ๋งŒ๋“ค๊ธฐ ์ „์— ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ํ˜ธํ™˜์„ฑ์„ ๊นจ๋œจ๋ฆฌ๋ฉด ๊ฒฐ๊ตญ ์ ˆ๋Œ€์ ์œผ๋กœ ๊ทธ๋ ‡๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•„์š”.
  • ์—ฌ์ „ํžˆ ์˜ค๋ž˜๋œ ์ข…์†์„ฑ ๋ฒ„์ „์„ ์ง€์ •ํ•˜๊ณ  ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์‹œ๊ฐ„์„ ์ฐพ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ž˜๋œ ์ฝ”๋“œ๊ฐ€ ๋‹น์‹ ์„ ๋Œ์–ด๋‚ด๋ฆฌ๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ์ฝ”๋“œ ์ƒํƒœ๊ณ„์—์„œ ์ด๋Ÿฌํ•œ ์‚ฌํšŒ์  ์š”๊ตฌ๊ฐ€ ์ถฉ์กฑ๋ฉ๋‹ˆ๋‹ค. "๋” ์ค‘์š”ํ•œ"(์ฆ‰, ๋” ์žฌ๋ฏธ์žˆ๋Š”) ์ผ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ตœ์‹  ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋„ˆ๋ฌด ๋Šฆ์„ ๋•Œ๊นŒ์ง€ ์—ฐ๊ธฐํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    • ์ด๋ก ์ƒ์œผ๋กœ ๋ชจ๋“  ์ฝ”๋“œ ์กฐ๊ฐ์ด ์›ํ•˜๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฌดํ•œํ•œ ์ˆ˜์˜ ๋ชจ๋“ˆ ๋ฒ„์ „์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋™์ผํ•œ dep๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‘ ๊ฐœ์˜ ๋ชจ๋“ˆ์„ ์ž‘์„ฑํ•˜์ž๋งˆ์ž ๋ฒ„์ „์„ ์„ ํƒํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋” ๋ณต์žกํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ๋” ์ ๊ฒŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ณง ์ „์ฒด ํ˜ธ์†ก์˜ ์†๋„๋ฅผ ๋Šฆ์ถ”๋Š” ๋‚™์˜ค์ž๋“ค์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์˜ค๋ž˜๋œ ๋ฌธ์ œ์— ๋ถ€๋”ชํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚™์˜ค์ž๋“ค์—๊ฒŒ "๋‹น์‹  ๋ง์ด ๋งž์•„, ๋‹น์‹ ์ด ์›ํ•˜๋Š” ๋งŒํผ ์ฒœ์ฒœํžˆ ๊ฐ€์„ธ์š”. ๋ชจ๋‘๊ฐ€ ๋‹น์‹ ์„ ๊ธฐ๋‹ค๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•จ์œผ๋กœ์จ ์ด ๋ฌธ์ œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ธ๊ฐ„ ๋ฌธํ™”๋ฅผ ๋งŒ๋‚œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฐฉํ•˜๊ณ  ์ดํƒ€์ ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ƒ์‚ฐ์ ์ด์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์ธ๊ฐ„์˜ ๊ด€์„ฑ๊ณผ ์‹ธ์šฐ๋Š” ๊ฒƒ์€ ํž˜๋“ค๊ณ  ๊ณ ํ†ต์Šค๋Ÿฌ์šด ์ผ์ด๋ฉฐ, ์ฆ๊ฒ๊ธฐ ๋•Œ๋ฌธ์ด ์•„๋‹ˆ๋ผ ๋ฐœ์ „ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ธ์šฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ณ  ์ธ๊ฐ„์ด ๋” ๋ฏธ๋ฃจ๋„๋ก ๋ถ€์ถ”๊ธฐ๋Š” ์œ ์พŒํ•œ ๋„๊ตฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ „ํ˜€ ๋„์›€์ด ๋˜์ง€ ์•Š์œผ๋ฉฐ ํ”„๋กœ์ ํŠธ ์นจ์ „๊ณผ ๊ธฐ์ˆ ์  ๋ถ€์ฑ„ ์ถ•์ ์„ ๊ฐ€์†ํ™”ํ•  ๋ฟ์ž…๋‹ˆ๋‹ค. 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์— ๋Œ€ํ•ด ์ œ์•ˆ๋œ ๋Œ€์•ˆ ๋ชจ๋ธ์ด ์—…๊ทธ๋ ˆ์ด๋“œ ์ผ€์ด๋˜์Šค๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๋ช…ํ™•ํžˆ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜์—๊ฒŒ ๋ช…ํ™•ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋Œ€์ฒด(๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š”) ๋ชจ๋ธ์— ๋Œ€ํ•œ ๋‚˜์˜ ์ดํ•ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ฐœ๋ฐœ์ž๋Š” ์‚ฌ์šฉ๋œ ๋ชจ๋“  ์ข…์†์„ฑ์— ๋Œ€ํ•œ ๋ฒ„์ „ ์ œ์•ฝ์„ ๋‚˜์—ดํ•˜๋Š” ์ˆ˜์ž‘์—… ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž๋Š” ์ž ๊ธˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” $solver๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ง€์ •๋œ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ์ „์ด ์ข…์†์„ฑ ๋ฒ„์ „์˜ ์ผ๋ถ€ ์„ ํƒ๋œ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ์ž ๊ธˆ ํŒŒ์ผ์€ ์ปค๋ฐ‹๋˜๊ณ  ๋นŒ๋“œ ๋ฐ ์„ค์น˜ ์‹œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋นŒ๋“œ๋ฅผ ๋ณด์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์ข…์†์„ฑ์˜ ์ƒˆ ๋ฒ„์ „์ด ์ถœ์‹œ๋˜์–ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž๋Š” ์ž ์žฌ์ ์œผ๋กœ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์†”๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ณ  ์ƒˆ ์ž ๊ธˆ ํŒŒ์ผ์„ ๋‹ค์‹œ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ œ์•ˆ๋œ 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 ์„ธ๊ณ„์—์„œ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๋ชจ๋“ˆ ํ˜ธ์ŠคํŠธ๋กœ ํ‘ธ์‹œํ•˜๊ธฐ ์ „์— API ์ œ๋™ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํฌ์ฐฉํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ฐ ๋ฒ„์ „์€ ์••์ถ•๋˜์–ด ์žˆ์œผ๋ฉฐ ๋‹ค์–‘ํ•œ vcs ๋„๊ตฌ ๋ฐ ๋ช…๋ น ์—†์ด ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ณด์•ˆ ๋ฌธ์ œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ. ๋ถ€๊ฐ€๊ฐ€์น˜๋ฅผ ์œ„ํ•ด ํ˜ธ์ŠคํŠธํ•˜๋Š” ๋ชจ๋“ˆ ์˜†์— ์žˆ๋Š” ํ˜ธ์ŠคํŠธ. ๋„๊ตฌ๋Š” go list ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์ˆ˜๋™ ๋˜๋Š” ์ž๋™์œผ๋กœ ์ฟผ๋ฆฌํ•˜๊ณ  ์ฟผ๋ฆฌ๋กœ ํ•„ํ„ฐ๋ง๋œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

vgo๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋” ์‰ฝ๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฌธ์ œ ๊ณต๊ฐ„ ์ œํ•œ(zip ํŒŒ์ผ์—์„œ๋งŒ ์ž‘๋™, API ๋น„๊ต๋ฅผ ์œ„ํ•ด ์ž„์˜์˜ git/hg/svn ๊ธฐ๋ก์„ ์ €์žฅํ•  ํ•„์š” ์—†์Œ).

    • ๋ฌธ์ œ ๊ณต๊ฐ„ ์ •์˜(MVS, ๋ฒ„์ „ ์ •์˜)

  • ๋นŒ๋“œ ๋ถ€๋ถ„ ํˆด๋ง.

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) ๋ฏธ๋ž˜์—๋Š” ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค :)

๋‹ค๋ฅธ ๊ด€์ ์„ ์ œ๊ณตํ•˜๋ ค๋ฉด:

  • ์šฐ๋ฆฌ๋Š” ์‹œ์Šคํ…œ ์ „์ฒด์˜ ๊ต์ฐจ ์–ธ์–ด ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ ๊ด€๋ฆฌ์ž(Fedora, Centos ๋ฐ RHEL์˜ rpm/dnf)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŽ์€ Go ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • rpm ๊ณ„์ธต ๊ตฌ์„ฑ ์š”์†Œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์žฌ์ƒํ•˜์—ฌ vgo ์ œ์•ˆ๊ณผ ๋™์ผํ•œ ํŠธ๋ฆญ์„ ๋งŽ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ผ๋ฐ˜์ ์œผ๋กœ rpm ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ˆ˜์ค€์—์„œ ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„์„ ํ”„๋กœ์ ํŠธ์—์„œ compat-project-x๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ vgo๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ).
  • ์ด ํŠธ๋ฆญ์€ ๋ณต์žกํ•œ Go ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ๋ฅผ ๋•๋Š” ๋ฐ ํ™•์‹คํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์–ธ์–ด ์ˆ˜์ค€์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๋งŒํผ ์™„์ „ํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜์ง€๋Š” ์•Š์ง€๋งŒ
  • ์›๋ž˜ ์ฝ”๋“œ์— ์ œ์•ฝ ์กฐ๊ฑด์˜ rpm/dnf ์˜ค๋ฒ„๋ ˆ์ด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค rpm/dnf์— ์–ธ์–ด ์ œ์•ฝ ์กฐ๊ฑด์„ ๋ฆด๋ ˆ์ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ Go ๋„๊ตฌ๊ฐ€ Go ํ”„๋กœ์ ํŠธ ์†Œ์Šค๋ฅผ ๋ณด๋„๋ก ์„ค๋“ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ํŒŒ์ผ ์‹œ์Šคํ…œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ง€๊ฒน์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ์  GOPATH๋Š” ์ „ํ˜€ ๋†“์น˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” vgo์— ๋Œ€ํ•ด ํฅ๋ถ„ํ•˜๊ณ  ๊ณง ๋ฐฐํฌ๋˜๊ธฐ๋ฅผ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค(๋ช‡ ๋…„ ์ „์— ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค).

์ฆ‰, vgo์™€ ๊ฐ™์€ ์›Œํฌํ”Œ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์–ด๋ ค์›€์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

vgo ์ œ์•ˆ์€ makefile์„ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋งŒ๋“  ๊ฒƒ์„ ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค.

  • ๋งŽ์€ Go ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž๋™ ์ƒ์„ฑ๋œ go ํŒŒ์ผ๊ณผ ์‚ฌ๋ž‘์— ๋น ์กŒ๊ณ  ์ด๋ฅผ ์žฌ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์„ธ๋Œ€๊ฐ€ ์„ฑ๊ณตํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฒƒ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์š”๊ตฌํ•˜๋Š” ํ‘œ์ค€ ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ๋งŽ์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๋‚˜์ฉ๋‹ˆ๋‹ค(๋•Œ๋กœ๋Š” ์™„์ „ํ•œ ๋ณ„๋„์˜ ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ ํŒŒ์ผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•จ)
  • ์ด๋Ÿฌํ•œ ํŒŒ์ผ์€ ๋ฒ„์ „ ๋น„ํ˜ธํ™˜์„ฑ์˜ ํฐ ์›์ธ์ž…๋‹ˆ๋‹ค. ์ธ๊ฐ„์€ ์ƒˆ๋กœ์šด ์ข…์†์„ฑ ๋ฒ„์ „์— ๋…ธ์ถœ๋˜์—ˆ์„ ๋•Œ ๋งค์ผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค. ์ž๋™ ์ƒ์„ฑ ํŒŒ์ผ OTOH๋Š” ์ข…์ข… ์ •ํ™•ํ•œ ์ƒ์„ฑ ํ™˜๊ฒฝ๊ณผ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ ๋„๊ตฌ ์ž‘์„ฑ์ž๋Š” ํ•„์š”์— ๋”ฐ๋ผ ํŒŒ์ผ์„ ๋‹ค์‹œ ์ƒ์„ฑํ•  ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • vgo๊ฐ€ ์„ฑ๊ณตํ•˜๋ ค๋ฉด ํ•ด๋‹น ํŒŒ์ผ์„ ์‹๋ณ„ํ•˜๊ณ  .zip ๋ชจ๋“ˆ์—์„œ ์ œ๊ฑฐํ•˜๊ณ  .zip ๋ชจ๋“ˆ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŒŒ์ผ์„ ์žฌ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํ˜„์žฌ์˜ "๋ชจ๋“  ๊ฒƒ์ด GOPATH์— ์žˆ์–ด์•ผ ํ•จ" ๊ทœ์น™์— ์˜ํ•ด ์•…ํ™”๋ฉ๋‹ˆ๋‹ค.

  • ์ƒ์„ฑ์ด ๋‹ค๊ตญ์–ด ํ”„๋กœ์ ํŠธ์— ์˜ํ•ด GOPATH ์™ธ๋ถ€์— ๊ฒŒ์‹œ๋œ ํ”„๋กœํ†  ํŒŒ์ผ์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒƒ์ด GOPATH์— ์žˆ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • Go ๋„๊ตฌ ์ฒด์ธ์€ GOPATH ์™ธ๋ถ€์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฝ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Go ๋„๊ตฌ ์ฒด์ธ์€ ๋ฐ˜๋“œ์‹œ Go๋กœ ์ž‘์„ฑ๋˜์ง€ ์•Š์€ ํ”„๋กœ์ ํŠธ์— ๋…ธ์ถœ๋  ๋•Œ GOPATH ์™ธ๋ถ€์— ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒŒ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • GOPATH๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์‚ฌ๋ณธ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณต์ œํ•˜๋Š” ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ฒ„์ „ ๋น„ํ˜ธํ™˜์„ฑ์˜ ๋˜ ๋‹ค๋ฅธ ์›์ธ์ž…๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋™์‹œ์— ๊ฐ™์€ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋•Œ๋•Œ๋กœ ํ”„๋กœ์ ํŠธ๋Š” ์—ฌ๋Ÿฌ ์†Œ์Šค์—์„œ ๋ณต์‚ฌํ•˜์—ฌ ๋…ํŠนํ•œ ๋ฏน์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋Š” ์ž์ฒด ๋ณต์‚ฌ๋ณธ์— ๋Œ€ํ•ด QA๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ Go ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์ด ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค.
  • vgo ๋ฒ„์ „ ์†”๋ฒ„๋Š” ์ฝ”๋“œ ๋ฆด๋ฆฌ์Šค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜์ง€๋งŒ ๋ฆฌ์†Œ์Šค ๋ฆด๋ฆฌ์Šค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒฝ์šฐ ์˜๋„ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • vgo๋Š” ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ชจ๋“ˆ ๋ฒ„์ „์˜ ํญ๋ฐœ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด GOPATH ์™ธ๋ถ€์— ๊ฒŒ์‹œ๋˜๋Š” ํ•ญ๋ชฉ์˜ ๊ฐœ์ธ ๋ณต์‚ฌ๋ณธ์„ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ํ”„๋กœ์ ํŠธ์—์„œ "๋ชจ๋“  Go ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ๋ณ„๋„์˜ ํŒจํ‚ค์ง€" ๊ทœ์น™์„ ์•…์šฉํ•˜์—ฌ ๋ณ„๋„์˜ ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํ˜ธํ™˜๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์™„์ „ํžˆ ์†์ƒ๋œ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹ค๋ฅธ ๋งŽ์€ Go ํ”„๋กœ์ ํŠธ๋Š” ๋™์ผํ•œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๊ณ  ์›๋ž˜ ํ”„๋กœ์ ํŠธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฐ QA์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ปจํ…์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์›๋ž˜ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ํ”„๋กœ์ ํŠธ ์†Œ๋น„์ž๊ฐ€ ์›๋ž˜ ํ”„๋กœ์ ํŠธ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ "์ž‘๋™"ํ•˜๊ณ  "์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋นŒ๋“œ"๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ์Œ“์ธ ๊ธฐ์ˆ ๋ถ€์ฑ„๋กœ ๋ชจ๋ž˜์„ฑ ์ „์ฒด๊ฐ€ ๋ฌด๋„ˆ์ง€๊ณ ,
  • ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ์ด์ „ ์˜ค์šฉ์„ ์ •๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์‹  ํ”„๋กœ์ ํŠธ ๋ฒ„์ „์œผ๋กœ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹น์‹ ์€ Go ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ทธ๋“ค์ด ์žฌ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ์ฑ…์ž„์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด์ƒํ•œ ์ •์‹ ๋ถ„์—ด์ฆ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๋ฐ”๋กœ ๊ทธ ๋™์ผํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค์— ์˜ํ•ด ๊ฒŒ์‹œ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ธฐ๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค(๋‚ด ์ƒ๊ฐ์— ์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ์ธ๊ฐ„์ด๊ณ  ๋ถˆ์พŒํ•œ ํ˜„์‹ค ๋ถ€์ •์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณ ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๊ฐ„์˜ ๋‡Œ์—์„œ)
  • ์ˆ˜์ • ์‚ฌํ•ญ์€ ์ „ํŒŒ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ฒ˜์Œ์— ์ˆ˜์ • ์‚ฌํ•ญ์ด ํ•„์š”ํ•œ ๋ฒ„๊ทธ๋‚˜ ์ฒด๋ฆฌ ํ”ผํ‚น์œผ๋กœ ๋ฌดํšจํ™”๋œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€๋Š” ๋ชจ๋“  ๊ฒƒ์ด "์ •์ƒ"์ž…๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ์˜ ๋ณด์•ˆ ์ƒํƒœ๋ฅผ ๊ณต๊ธ‰์—…์ฒด ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด๋ถ€์˜ ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ์˜ ๋ณด์•ˆ ์ƒํƒœ์™€ ๋น„๊ตํ•˜๋Š” ์ž๋™ํ™”๋œ ๋ณด์•ˆ ๊ฒ€์‚ฌ๊ธฐ์—๋Š” ํ•„๋“œ ๋ฐ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ๊ฐ€ ํด์ˆ˜๋ก ๊ณต๊ธ‰์—…์ฒด ๋‚ด๋ถ€์— ์ด๋Ÿฌํ•œ ๋˜‘๋”ฑ๊ฑฐ๋ฆฌ๋Š” ํญํƒ„์ด ์ˆจ๊ฒจ์ ธ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.
  • zip ๋ชจ๋“ˆ ๋‚ด์—์„œ ํ”„๋กœ์ ํŠธ ๊ฒฝ๊ณ„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ํ•จ์œผ๋กœ์จ vgo๋Š” ์ด๋Ÿฌํ•œ ๊ด€ํ–‰์„ ๋๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿฌ๋‚˜ ๋งŽ์€ Go ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋Œ€๋Œ€์ ์œผ๋กœ ์ •๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • vgo๊ฐ€ ์„ฑ๊ณตํ•˜๋ ค๋ฉด ๊ธฐ์กด Go ํ”„๋กœ์ ํŠธ๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ํ˜ธํ™˜์„ฑ ๊ด€์ ์—์„œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ๋กœ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋ฆฌํŒฉํ„ฐ๋งํ•˜๊ณ  ๋ถ„ํ• ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด vgo๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋Š” ์กฐ์ • ๋ถˆ๊ฐ€๋Šฅํ•œ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ํ˜„์ƒ ์œ ์ง€๋ฅผ ์ž ๊ทธ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค(๊ธฐ์กด ์ฝ”๋“œ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ ์ฝ”๋“œ ์ง„ํ™” ๊ด€์ ์—์„œ๋Š” ๋”์ฐํ•ฉ๋‹ˆ๋‹ค).

ํ”„๋กœ์ ํŠธ ๊ฐ„ ์ œํ•œ์ด ๊ฑฐ์˜ ์—†๋Š” ๋‹จ์ผ GOPATH ํŠธ๋ฆฌ์—์„œ ์ „์ฒด Go ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋…ธ์ถœํ•˜๋Š” ํ˜„์žฌ ๊ด€ํ–‰์€ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง POW์—์„œ ์œ ํ•ดํ•œ ๋ถ€์ž‘์šฉ์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ฝ”๋“œ๋Š” ๊ธฐ์ˆ ์  ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ปค๋ฐ‹๋˜์ง€ ์•Š์ง€๋งŒ ์ฝ”๋“œ ์ž‘์„ฑ์ž์—๊ฒŒ ๊ฐ€์žฅ ํŽธ๋ฆฌํ•œ ์ €์žฅ์†Œ(๊ทธ๊ฐ€ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ์†Œ)์—์„œ ์ปค๋ฐ‹๋ฉ๋‹ˆ๋‹ค.
  • Go ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€์— ๋”ฐ๋ผ ํ•œ ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€์— ์ข…์†๋˜๊ณ  ์ด ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€๋Š” ์›๋ž˜ ํ”„๋กœ์ ํŠธ์— ๋”ฐ๋ผ ์„œ๋กœ ๋ธ”๋ฆฌ๋“œ ์•„์›ƒ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ๋ชจ๋“  ๋ถ€๋ถ„์„ ์ด๋™ํ•˜์ง€ ์•Š๊ณ ๋Š” ํ•œ ๋ถ€๋ถ„์„ ์ด๋™ํ•  ์ˆ˜ ์—†๋Š” ์ž ๊ธด ๋ฒ„์ „ ์ œ์•ฝ ๊ทธ๋ž˜ํ”„๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์•„๋ฌด๋„ ํ•œ ๋ฒˆ์˜ ์ž‘์—…์œผ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ๊ต์ฐฉ ์ƒํƒœ ๋ฐ ์ง„ํ–‰ ์ค‘์ง€
  • ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„๊ฐ€ ์žˆ๋Š” ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ชจ๋“ˆ ๊ฐ„ ๋ฒ„์ „ ์ œํ•œ์„ ๋ช…์‹œ์ ์œผ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์ด ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๊ฒƒ์€ ์—„์ฒญ๋‚˜๊ฒŒ ์ธ๊ธฐ๊ฐ€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค (์˜ค๋Š˜๋‚  ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ๋ฒค๋”์˜ ๋ฒ ์ผ ์•„๋ž˜ ์ˆจ๊ฒจ์ ธ ์žˆ์Œ)
  • ์ข…์ข… ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ํ”„๋กœ์ ํŠธ ์ข…์†์„ฑ์€ A ๋ฐ D ์ˆ˜์ค€์˜ A/B/C/D ๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ B ๋ฐ C์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • vgo๊ฐ€ ์„ฑ๊ณตํ•˜๋ ค๋ฉด ๊ธฐ์กด Go ํ”„๋กœ์ ํŠธ๊ฐ€ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„ ๋ผ์ธ์„ ๋”ฐ๋ฅด๋Š” ๋ณ„๋„์˜ ๋ชจ๋“ˆ์—์„œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋ฆฌํŒฉํ„ฐ๋งํ•˜๊ณ  ๋ถ„ํ• ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Testfing/fixtures, example ๋ฐ testdata๋Š” ์ž์ฒด ์ข…์†์„ฑ ๋ฐ ์ข…์†์„ฑ ๋ฒ„์ „ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ์›œ ์บ”์ž…๋‹ˆ๋‹ค.

  • ๋ณ„๋„์˜ ๋ชจ๋“ˆ์—์„œ ์–ด๋–ค ์‹์œผ๋กœ๋“  ๊ฒฉ๋ฆฌ๋˜์–ด์•ผ ํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ์š”๊ตฌ ์‚ฌํ•ญ์ด ์†”๋ฒ„ ๋ฒ„์ „ ํ™•์ธ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋“ค์˜ ์š”๊ตฌ๋ฅผ ๋ฌด์‹œํ•˜๋ฉด ํšจ๊ณผ์ ์œผ๋กœ ์•„๋ฌด๋„ ๊ฒฐ์ •ํ•˜์ง€ ์•Š์ง€๋งŒ ์›๋ž˜ ํ”„๋กœ์ ํŠธ๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์ด๊ฒƒ์€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ—ˆ์šฉํ•  ๋•Œ ๋งค์šฐ ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๋“ค์„ ๊ฐ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค
  • ์ผ๋ถ€ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์›๋ž˜ ํ”„๋กœ์ ํŠธ ์™ธ์— ๋ˆ„๊ตฌ๋„ ๋ณต์ œํ•  ์ˆ˜ ์—†๋Š” ํŠน์ • ํ™˜๊ฒฝ(์˜ˆ: ๋Œ€ํ™”ํ•  ํŠน์ • ์„œ๋ฒ„ ๋˜๋Š” ์›น์‚ฌ์ดํŠธ)์— ์˜์กดํ•˜๋Š” ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ, ์•„๋งˆ๋„ ํŠน์ • ๊ฒฉ๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์•„๋งˆ๋„ ๋” ๋งŽ์€ ๊ฒƒ์„ ์žŠ์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ๋“ค์ด ๊ฐ€์žฅ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ:

  • Go ํ”„๋กœ์ ํŠธ๋Š” ๊ณ ๋ฆฝ๋˜์–ด ์‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ผ๋ถ€ Go ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ปค๋„ฅํ„ฐ๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์–ธ์–ด์˜ ์ผ๋ถ€ ํ”„๋กœ์ ํŠธ๋Š” Go ์ปค๋„ฅํ„ฐ๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋Š” semver๋ฅผ ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋ฌธ์ œ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ๋‹ค๊ตญ์–ด ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฆด๋ฆฌ์Šค๋  ๋•Œ Go ๋ถ€๋ถ„์„ ์ตœ์‹  ๋ถ€ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ€์งˆ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๊ฒƒ์€ ์šด์˜ ๊ด€๋ฆฌ POW์—์„œ ์ง€์˜ฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์ตœ์‹  ํ•˜์œ„ ๋ฆด๋ฆฌ์Šค๋กœ์˜ ์ž๋™ ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ด์ „ ๋ฒ„์ „์„ ์ง„๊ณต ์ƒํƒœ๋กœ ๋งŒ๋“ค์–ด ์†Œํ”„ํŠธ์›จ์–ด ์ œ์•ฝ ๊ทธ๋ž˜ํ”„๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๋ฐ ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค(์ด์ ์€ ๊ธฐ์ˆ ์ ์ด๊ณ  ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์‚ฌํšŒ์ ์ž„).
  • ๊ณ ํ™”์งˆ ์žฌ๊ตฌ์ถ•์€ ์™„๋ฒฝํ•œ ํ”ฝ์…€ ์›น์‚ฌ์ดํŠธ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ๋ถ„๋ช…ํžˆ ์ข‹์€ ์•„์ด๋””์–ด์ฒ˜๋Ÿผ ๋ณด์ด๋ฉฐ ์›๋ž˜ ์ž‘์„ฑ์ž์˜ ์ž์กด์‹ฌ์— ๋ณด๋‹ตํ•˜์ง€๋งŒ ์ง„ํ™”ํ•  ์ˆ˜ ์—†๊ณ  ์ง€์—ญ(์›๋ณธ์ด ์•„๋‹Œ) ์ปจํ…์ŠคํŠธ์— ์ ์‘ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ณผ๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” PITA์ž…๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ ์„œ๋ฒ„:

์‰ฌ์šด ๋””๋ฒ„๊น…์„ ์œ„ํ•ด $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 ์ด์ƒ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ์ˆ˜๋ฅผ ๊ณผ์†Œํ‰๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

  • github.com/godbus/dbus๋Š” v4.1.0์— ์žˆ์Šต๋‹ˆ๋‹ค(462 ํŒจํ‚ค์ง€์—์„œ ๊ฐ€์ ธ์˜ด).
  • github.com/coreos/etcd/clientv3๋Š” v3.3.3์— ์žˆ์Šต๋‹ˆ๋‹ค(799 ํŒจํ‚ค์ง€์—์„œ ๊ฐ€์ ธ์˜ด).
  • k8s.io/client-go/kubernetes๋Š” v6.0.0์— ์žˆ์Šต๋‹ˆ๋‹ค(1928 ํŒจํ‚ค์ง€์—์„œ ๊ฐ€์ ธ์˜ด).

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์†์ƒ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ๋‹ค์‹œ ๋ฃจํŠธ๋กœ ์ด๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ์–ด๋ณผ๊ฒŒ ๋งŽ์Šต๋‹ˆ๋‹ค.

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๋Š” ํ˜„์žฌ ์ตœ์‹  ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ์˜ ํ† ๋ก ๊ณผ ๋ฌธ์ œ ์™ธ์˜ ํ† ๋ก ์œผ๋กœ ์ธํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค‘์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ด์ „ cmd/go, #25069์˜ ์ตœ์†Œ ๋ชจ๋“ˆ ์ธ์‹.
  • ์ตœ์†Œํ•œ์˜ ๊ณต๊ธ‰์—…์ฒด ์ง€์› ๋ณต์›, #25073.
  • ์ง์ ‘ Git ์•ก์„ธ์Šค ์ง€์› ๋ณต์›, #24915.
  • go.mod, #24641์—์„œ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.
  • gopkg.in, #24099, ๊ธฐํƒ€์— ๋Œ€ํ•œ ๋” ๋‚˜์€ ์ง€์›.
  • ๋ธŒ๋žœ์น˜ ์‹๋ณ„์ž๋กœ ์ปค๋ฐ‹ ์ด๋ฆ„ ์ง€์ • ์ง€์›, #24045.

๋˜ํ•œ 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 ๊ท€ํ•˜์˜ ์‚ฌ๊ณ  ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Go์— ๋Œ€ํ•œ ๊ฒฐ์ •์€ ์ฃผ๋กœ Google ์—”์ง€๋‹ˆ์–ด๋กœ ๊ตฌ์„ฑ๋œ ์†Œ๊ทœ๋ชจ ํŒ€์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
  2. Google ์—”์ง€๋‹ˆ์–ด๋Š” Google์˜ ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋งค์šฐ ๊ตฌ์ฒด์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋จธ์ง€ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๊ฒฉ๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์ด๋Š” Google์˜ ๊ด€์ ์„ ์„ ํ˜ธํ•˜๊ณ  ๋‹ค๋ฅธ Go ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฐ์ •์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.
  4. ์ด๊ฒƒ์€ Go ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์†์ƒ์‹œํ‚ค๊ณ  ๋ถ„์—ด์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด Go ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋‹ค์–‘์„ฑ์„ ๋ฐ˜์˜ํ•˜๋Š” ๊ทธ๋ฃน("๋ฏผ์ฃผ์ "์ธ ๊ฒƒ)์ด ๊ณต๋™์œผ๋กœ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๊ณต์‹ ๊ฒฐ์ • ํ”„๋กœ์„ธ์Šค๋ฅผ Go์—์„œ ์ฑ„ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ก ์ ์œผ๋กœ๋Š” "๋ฏผ์ฃผ์ "์ธ ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • 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 )๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์›Œํฌํ”Œ๋กœ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ์ข…์†์„ฑ์˜ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ์†Œ์Šค ์ฝ”๋“œ
  • VCS์—์„œ ์ข…์†์„ฑ์˜ ์†Œ์Šค ์ฝ”๋“œ
  • ์ข…์†์„ฑ์˜ ์ตœ์‹  ๊ฐœ์ •ํŒ

์ข…์†์„ฑ์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” ๊ณ„์† ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 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๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ• ๊นŒ์š”?

  • lib X์— ๋”ฐ๋ผ ์„œ๋น„์Šค A์™€ ์„œ๋น„์Šค B์—์„œ ๋ชจ๋‘ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค(์ €๋„ ์ž‘์—… ์ค‘).
  • lib X์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‚˜๋Š” ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์„œ๋น„์Šค 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๊ฐ€ ์šฐ๋ฆฌ์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ:

  • ๋‚ด๊ฐ€ ์–ธ๊ธ‰ํ•œ ์žฌ์ •์˜ ์‹œ์Šคํ…œ
  • ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์ข‹์€ ์ด์ „ GOPATH๋กœ ํด๋ฐฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์ด ๊ต‰์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ์ด ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜๊ธฐ๋ฅผ ์ •๋ง๋กœ ์›ํ•ฉ๋‹ˆ๋‹ค.

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 ๋Š” ๋น„์Šทํ•œ ํŠธ๋ฆญ์„ ๋ฐฐ์›๋‹ˆ๋‹ค.


๊ตฌ๋ฌธ์ ์œผ๋กœ ์œ ์ผํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. .go ํŒŒ์ผ์—์„œ $ v2 import "repo/v2/pkg" ๋Š” import "repo/v2/pkg" $๋กœ ์œ ์ง€๋˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด import "repo/pkg" ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜„์žฌ go get ์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  2. go.mod ํŒŒ์ผ์—์„œ v2 ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ์œผ๋ฉด module "repo/v2" ๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜์ง€๋งŒ ์ตœ์ƒ์œ„ ์ˆ˜์ค€์— ์žˆ์œผ๋ฉด module "repo" ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. (์ด๊ฒƒ์€ ํ‘œ์ค€ ๊ฐ€์ ธ์˜ค๊ธฐ ์ ‘๋‘์‚ฌ์ž…๋‹ˆ๋‹ค.)
  3. 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)

    • v2.0.0 ์ด์ „์˜ ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“ˆ์„ ์ธ์‹ํ•˜์ง€ ์•Š๋Š” go get ์™€์˜ ํ˜ธํ™˜์„ฑ์„ ๊นจ๋œจ๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“ˆ ์ž์ฒด๊ฐ€ ๋˜๊ธฐ ์ „์— ์ข…์†์„ฑ์ด ๋ชจ๋“ˆ์ด ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. [1]
  • ๋ชจ๋“ˆ์„ ์ธ์‹ํ•˜์ง€ ์•Š๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž‘์„ฑ์ž๊ฐ€ ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉํ•ดํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ํ˜„์žฌ go get ์˜ ๋ฒ„์ „ ์—†๋Š” ์›Œํฌํ”Œ๋กœ์— ๋Œ€ํ•œ ์ง€์›์„ ์œ ์ง€ํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค( ์—ฌ๊ธฐ ๋ฐ ์œ„์—์„œ ์„ค๋ช…๋จ).

๋‹จ์ :

  • ์ด๋ฏธ ์ž‘์„ฑ๋œ go.mod ํŒŒ์ผ์ด ๊ณ„์† ์ž‘๋™ํ•œ๋‹ค๋Š” ์•ฝ์†์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์ด ๋ถˆํŽธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ƒˆ ๋ชจ๋“ˆ ํŒŒ์ผ์˜ ์ด๋ฆ„์ด go.mod ์™€ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •๋˜์ง€ ์•Š๋Š” ํ•œ).

์–‘๋ฉด์„ฑ:

  • ๋‹ค๋ฅธ ๋ชจ๋“ˆ์˜ ๋™์ผํ•œ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ๋Š” ๋‹ค๋ฅธ ์ฃผ์š” ๋ฒ„์ „์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์ข‹์Œ: ์ด์ „ v2.0.0 ๋ฐ ์ฃผ์š” ๋ฒ„์ „ ๋ณ€๊ฒฝ ์‹œ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

    • ๋‚˜์œ: 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์˜ ๊ด‘๋ฒ”์œ„ํ•œ ๋„๊ตฌ ๊ตฌํ˜„ ์ƒํƒœ๊ณ„๊ฐ€ ์ค‘์š”ํ•œ ์กฐ์ •์„ ์‹œ์ž‘ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜์ด ๊ฐ€๋Šฅํ•œ ์ตœ๊ณ ์˜ ๊ฒฝํ—˜์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ๋•Œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ด์•ผ๊ธฐํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด ์ œ์•ˆ์— ๋Œ€ํ•ด ๋‘ ๊ฐ€์ง€ ๋ฐ˜๋Œ€๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ด ์ œ์•ˆ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ๋ฐ ๋ฐฐํฌ์— ๊ด€ํ•œ ๊ด€ํ–‰์„ ์ผ๋ถ€ ๋ณ€๊ฒฝํ•˜๋„๋ก ์š”๊ตฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  2. ์ œ์•ˆ์€ ๋น„ํ˜ธํ™˜์„ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ๊ธฐ์ˆ  ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ด๋“ค์€ ๊ด€์ฐฐ์— ์ •ํ™•ํ•˜์ง€๋งŒ ์˜๋„ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ 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

์ด๋Ÿฌํ•œ ์–ธ์–ด์™€ ํŒจํ‚ค์ง€๊ฐ€ SemVer ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ค‘๋‹จ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์˜๋„์ ์œผ๋กœ ๋•Œ๋กœ๋Š” ์šฐ์—ฐํžˆ. ์‚ฌ๋žŒ๋“ค์ด ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋‹ค๋ฅธ ๋ชจ๋“  ์–ธ์–ด์— ์กด์žฌํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด Go๋Š” ๋ฌด์—‡์„ ๋‹ค๋ฅด๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€?

vgo๊ฐ€ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์— dep๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋” ๋‚˜์œ ๊ฒƒ์œผ๋กœ ๊ฐ€์ •๋˜๋Š” ์ด์œ ๋Š” ์—ฌ์ „ํžˆ ๋‚˜์—๊ฒŒ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค vgo๊ฐ€ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ ์—์„œ vgo ๋ชจ๋ธ์˜ ์‹คํŒจ์— ๋Œ€ํ•œ ์ฆ๊ฑฐ๋กœ helm์˜ ํŠน์ • ๋ฌธ์ œ๋ฅผ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ vgo ์„ธ๊ณ„์—๋Š” vgo๊ฐ€ grpc์— v1.4.0์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ์„ ํƒํ•œ ๋‘ ๊ฐ€์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. helm์˜ ๊ฐœ๋ฐœ์ž๋Š” go.mod grpc >= v1.4.0 ๋ฅผ ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ์ง€์ •ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋‹จ์ˆœํžˆ ์ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋˜๋Œ๋ ค ์ž์‹ ์—๊ฒŒ ์ ํ•ฉํ•œ ์ด์ „ ๋ฒ„์ „์˜ grpc ๋กœ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. helm ์ข…์†์„ฑ์˜ ๊ฐœ๋ฐœ์ž๋Š” grpc >= v1.4.0 ๋ฅผ ์ง€์ •ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ dep๋„ ์„ค์น˜ํ–ˆ์œผ๋ฉฐ helm์ด grpc < v1.4.0 ๋ฅผ ์ œํ•œํ•˜์—ฌ ๋กค๋ฐฑํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์ถฉ๋Œํ•˜๋Š” ์š”๊ตฌ ์‚ฌํ•ญ ๋•Œ๋ฌธ์— dep๊ฐ€ ์‚๊ฑฑ๊ฑฐ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ œ ์ƒ๊ฐ์—๋Š” vgo๊ฐ€ ์ตœ์†Œํ•œ dep๋งŒํผ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•œํŽธ, dep ์„ธ๊ณ„์—๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. helm ์˜ ์ „์ด์  ์ข…์†์„ฑ์€ 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๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ณ ๋ คํ–ˆ์„ ๋•Œ ์ธ์œ„์ ์œผ๋กœ ๋งค์šฐ ์งง์•˜์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ด์•ผ๊ธฐํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด ์ œ์•ˆ์— ๋Œ€ํ•ด ๋‘ ๊ฐ€์ง€ ๋ฐ˜๋Œ€๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ œ์•ˆ์€ ๋น„ํ˜ธํ™˜์„ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ๊ธฐ์ˆ  ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ 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 ์†”๋ฒ„ ์—†์ด ์ƒํ•œ์„ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ด ์™„์ „ํžˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ์†”๋ฃจ์…˜์ด ์ตœ์ ์ด ๋˜๋„๋ก ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์†”๋ฃจ์…˜์ด ๋ฐœ๊ฒฌ๋  ๊ฒƒ์ด๋ผ๊ณ  ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ƒํ•œ์„ ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  2. MVS๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ๋•Œ ๋ฌด์‹œ
  3. ๋ชจ๋“  ๊ฒฝ๊ณ„์— ๋Œ€ํ•ด ์ฐพ์€ ์†”๋ฃจ์…˜์„ ํ™•์ธํ•˜๊ณ  ๋งž์ง€ ์•Š์œผ๋ฉด ์‚๊ฑฑ ๊ฑฐ๋ฆฌ์‹ญ์‹œ์˜ค(์ด๊ฒƒ์ด ์ฃผ์š” ์ฐจ์ด์ ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋Œ€์‹  ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์„ ์ฐพ์œผ๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค).

๊ทธ๋Ÿฌ๋ฉด MVS(๋ณ‘๋ฆฌํ•™์  ๋Ÿฐํƒ€์ž„์ด ์—†๋Š” ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜)์˜ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์–ด ๋น„ํ˜ธํ™˜์„ฑ์„ ํ‘œ์‹œํ•˜๊ณ  ์ด๋ฅผ ์ •์ ์œผ๋กœ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์œ ์ง€ํ•˜์ง€๋งŒ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ํ•ญ์ƒ ์†”๋ฃจ์…˜์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ณด์žฅ์„ ํฌ๊ธฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋…ผ์Ÿ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ์ง€๋งŒ, ๋‹น์‹  ์ด ์ฐพ์„ ์†”๋ฃจ์…˜์€ ์‹ค์ œ๋กœ ์†”๋ฃจ์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋น„ํ˜ธํ™˜์„ฑ์ด ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์•Œ๋ ค์ง€์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ ์–ด๋„ ๋‚˜์—๊ฒŒ๋Š” MVS์˜ ์ƒํ•œ์„ ์„ ์–ป๊ธฐ ์œ„ํ•ด ์–ด๋–ค ์‹์œผ๋กœ๋“  ๊ฐœ์กฐํ•˜๋Š” ๊ฒƒ์ด ์™„๋ฒฝํ•˜๊ฒŒ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์‹ค์ œ๋กœ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์—ฌ์ „ํžˆ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•˜์ง€๋งŒ, ๊ทธ๊ฒƒ์ด ์‚ฌ์‹ค๋กœ ๋ฐํ˜€์ง€๋ฉด ๋‚˜์ค‘์— ์–ธ์ œ๋“ ์ง€ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "MVS๋Š” ๊ทผ๋ณธ์ ์œผ๋กœ ๋ถ€์ ํ•ฉํ•˜๋‹ค"๋Š” ์ฃผ์žฅ์„ ๋ฌธ์ œ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๋ฌธ์ œ๋ฅผ ์˜คํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ๋” ์ž˜ ๋ณด์—ฌ์ฃผ๋Š” ์‹คํŒจ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@sdboyer ๊ฑฑ์ • ๋งˆ์„ธ์š”. ๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด, ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋‹น์‹ ์˜ ์ผ์ƒ์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์™„์ „ํžˆ ์ดํ•ดํ•˜๊ณ  ์ฐธ์—ฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ "๋…ผ์ฆ์„ ๋ชจ๋ฅด๋ฉด ๋…ผํ•  ์ˆ˜ ์—†๋‹ค"๋Š” ํ˜„์‹ค์ ์ธ ๋ฌธ์ œ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ๋‚˜๋งŒํผ ์ „์ฒด ์ƒํ™ฉ์— ์ขŒ์ ˆ๊ฐ์„ ๋Š๊ผˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

PCRE๋ณด๋‹ค Go์˜ ์ •๊ทœ ํ‘œํ˜„์‹์„ ์„ ํ˜ธํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋…ผ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด 2์ฐจ/์ง€์ˆ˜ ์ตœ์•…์˜ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜์กดํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@cznic ์ €๋Š” ์ข…์†์„ฑ ๊ด€๋ฆฌ๊ฐ€ ๊ธฐ์ˆ ์ ์ธ ๋ฌธ์ œ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‚ฌํšŒ์  ์ œ์•ฝ ๋ฐ ๊ณ ๋ ค ์‚ฌํ•ญ๊ณผ ์–ฝํ˜€ ์žˆ๋‹ค๋Š” ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ •๊ทœ์‹๊ณผ ๋น„๊ตํ•˜๊ณ (์ˆœ์ „ํžˆ ๊ธฐ์ˆ ์ ์ธ ๊ตฌํ˜„ ๋ฌธ์ œ) ์‹œ๊ฐ„ ๋ณต์žก์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํ˜ธํ•˜๋Š” ๊ฒƒ์ด ๊ณต์ •ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ธ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

MVS๊ฐ€ ๋” ๊ฐ„๋‹จํ•˜๊ณ  ์ถ”๋ก ํ•˜๊ธฐ ์‰ฝ๊ณ  ๋‹น๋ฉดํ•œ ๋ฌธ์ œ์˜ ๋‹ค๋ฅธ ์ธก๋ฉด์„ ํ•ด๊ฒฐ ํ•œ๋‹ค๋ฉด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๋ ค ์‚ฌํ•ญ์ด๊ธฐ ๋•Œ๋ฌธ์— MVS๋ฅผ ์„ ํ˜ธํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด SAT ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค ์„ ํ˜ธํ•˜๋Š” ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด SAT ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค ์„ ํ˜ธํ•˜๋Š” ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

@ibrasho MVS์—๋Š” ์ž ๊ธˆ ํŒŒ์ผ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด SAT ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค ์„ ํ˜ธํ•˜๋Š” ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ ์ด์œ ๋Š”

  1. ์ž ๊ธˆ ํŒŒ์ผ๊ณผ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ํ†ตํ•ฉํ•˜๋ฉฐ ๋Œ€๋ถ€๋ถ„ ์ปดํ“จํ„ฐ์—์„œ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์— ์žฌํ˜„์„ฑ(๋˜๋Š” "๊ณ ์ถฉ์‹ค๋„") ๋นŒ๋“œ๋ฅผ ์–ป๋Š” ๋™์•ˆ ๋…ธ์ด์ฆˆ๊ฐ€ ์ ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. AFAICT ์ด๊ฒƒ์€ MVS๋งŒ์˜ ๊ณ ์œ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์— ๋Œ€ํ•œ ๋‚˜์˜ ์ฃผ์š” ๋ถˆ๋งŒ ์ค‘ ํ•˜๋‚˜๋Š” ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ด์•ผ ํ•˜๋Š” ์ˆ˜๊ณ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์—„์ฒญ๋‚œ ์ผ์ž…๋‹ˆ๋‹ค.
  2. ์ ์ง„์ ์ธ ์ˆ˜๋ฆฌ๊ฐ€ ๋” ์‰ฌ์›Œ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค/๊ฐ€๋Šฅํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ๋ถ„์‚ฐ ๊ฐœ๋ฐœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ตณ๊ฒŒ ๋ฏฟ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ €์—๊ฒŒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋Œ€๋ถ€๋ถ„์˜ ๋„์„œ๊ด€์—์„œ ์ƒํƒœ๊ณ„๊ฐ€ ์ง‘ํ•ฉ์ ์œผ๋กœ HEAD์— ๊ฐ€๊น๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋Œ€๋ถ€๋ถ„ ์ถ”์ธก์ด๋ฉฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ "๋ชจ๋“  ๊ฒƒ์„ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ"๊ฐ€ ์ถฉ๋ถ„ํžˆ ๊ฐ„๋‹จํ•˜๋‹ค๋ฉด ํ”„๋กœ๋•์…˜์—์„œ ์ตœ์‹  ๋ฒ„์ „์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์„œ๋กœ ํ…Œ์ŠคํŠธ๋˜๋Š” ์ฃผ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์ธ AFAICT์˜ ๋ฐ”๋žŒ์งํ•œ ํŠน์„ฑ์„ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ ๋Šฅ๊ฐ€ํ•˜๋ฉด์„œ ์ด ๋ชจ๋“  ๊ฒƒ์„ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๋Š” ์›ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒจํ‚ค์ง€๋Š” ์ƒˆ ๋ฒ„์ „์—์„œ ์ผ๋ถ€ ์ข…์†์„ฑ ๋นŒ๋“œ๊ฐ€ ์†์ƒ๋˜๋”๋ผ๋„ ๊ณ„์† ๋นŒ๋“œ๋˜๋ฏ€๋กœ ์ž‘์„ฑ์ž์—๊ฒŒ ์ˆ˜์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์‹œ๊ฐ„์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

ํŠนํžˆ ์ด ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์€ ์ข€ ์•„์ด๋Ÿฌ๋‹ˆํ•˜๋‹ค. ์ด ์ •ํ™•ํ•œ ํ’ˆ์งˆ์€ @sdboyer ์˜ ์ง€๋‚œ ๊ฒŒ์‹œ๋ฌผ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•˜๊ฒŒ ๊ทธ๋ ค์กŒ๊ธฐ ๋•Œ๋ฌธ์— - ๊ทธ๋Ÿฌ๋‚˜ ์ด ์‹œ์ ์—์„œ ๋‚˜๋Š” ์—ฌ์ „ํžˆ vgo๊ฐ€ ์ด ์ ์—์„œ ์ „ํ†ต์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹๋ณด๋‹ค ์—„๊ฒฉํ•˜๊ฒŒ ๋” ๋‚ซ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

@๋ฉ”๋กœ๋น„์šฐ์Šค
"์ž ๊ธˆ ํŒŒ์ผ๊ณผ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค."

  • ๋งค๋‹ˆํŽ˜์ŠคํŠธ๊ฐ€ ํŒŒ์ผ ์ „์ฒด์— ํšจ๊ณผ์ ์œผ๋กœ ํฉ์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์™„์ „ํžˆ ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค. Import ๋ฌธ์€ ํšจ๊ณผ์ ์œผ๋กœ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

@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 ๋“ฑ)์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ์˜ ๊ฒฝ๋กœ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์ผ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ํˆฌ์žํ•˜๊ณ  ์ง€์‹์ด ํ’๋ถ€ํ•œ ์‚ฌ๋žŒ๋“ค์˜ ๊ทธ๋ฃน์ด ํ•œ ์œ„์›ํšŒ์— ๋ชจ ์˜€์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ Google์˜ go ํŒ€ ๊ตฌ์„ฑ์›์€ ์ด ๊ทธ๋ฃน์— ์†ํ•ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  2. ์ข…์†์„ฑ ๊ด€๋ฆฌ์ž๋ฅผ ์ž‘์„ฑํ–ˆ๊ฑฐ๋‚˜ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๋‘ ๋ฒˆ์งธ ๊ทธ๋ฃน์ด ์ด ์ฒซ ๋ฒˆ์งธ ๊ทธ๋ฃน์„ ์ง€์›ํ–ˆ์Šต๋‹ˆ๋‹ค.
  3. ๊ธฐ์กด ๋„๊ตฌ(Go ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€)์— ๋Œ€ํ•œ ํ•„์š”์™€ ์ƒ๊ฐ์— ๋Œ€ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„ค๋ฌธ์กฐ์‚ฌ๊ฐ€ ์ˆ˜ํ–‰ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ฒฐ๊ณผ๋Š” ์œ„์›ํšŒ์˜ ๋ˆˆ์—๋งŒ ๋น„๊ณต๊ฐœ์˜€์Šต๋‹ˆ๋‹ค.
  4. Go๋ฅผ ํ”„๋กœ๋•์…˜์— ์‚ฌ์šฉํ•˜๋Š” ํšŒ์‚ฌ๋ฅผ ์ธํ„ฐ๋ทฐํ•˜์—ฌ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์•„ ์‚ฌ๋žŒ๋“ค์ด ์ž์œ ๋กญ๊ฒŒ ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค๋ฌธ ์กฐ์‚ฌ ๋ฐ ์ธํ„ฐ๋ทฐ ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ ์œ„์›ํšŒ์— ํ”ผ๋“œ๋ฐฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ํ† ๋ก ํ•œ ํ›„ ๊ทธ๋“ค์€ ์šฐ๋ฆฌ๊ฐ€ ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๊ฒฐ์ • ํ•˜๊ณ  ์‚ฌ์–‘ ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„ 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๋Š” ์•ž์„œ ์‹œ์ž‘ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ช‡ ๊ฐ€์ง€ ๊ฐ€์ •์„ ํ•ฉ๋‹ˆ๋‹ค.

  1. ์•„๋ฌด๋„ ์šฐ์—ฐํžˆ๋ผ๋„ semver์—์„œ ํ—ค์–ด์ง€์ง€ ์•Š๋„๋ก
  2. ๊ธฐ์กด ์ƒํƒœ๊ณ„์—์„œ ๊ธฐ์กด ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์žฌ์ž‘์—…ํ•ด์•ผ ํ•จ

vgo๋Š” "์™„๋ฒฝํ•œ ์„ธ๊ณ„"์—์„œ "์™„๋ฒฝํ•œ ์†”๋ฃจ์…˜"์— ๋” ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ๋Š” ๋ฐ˜๋ฉด dep๋Š” ๋‚ด๊ฒฐํ•จ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ƒํƒœ๊ณ„์—์„œ ์ด๋ฏธ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋”ฐ๋ผ ์˜ค๋Š˜๋‚  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๋ฐฉ๊ธˆ ์ž‘์„ฑํ•œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋ฌธ์ œ ๊ณต๊ฐ„์˜ ์—ญ์‚ฌ ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด (์•„๋งˆ๋„ ํ˜•ํŽธ์—†๊ฒ ์ง€๋งŒ) vgo์— ๋Œ€ํ•œ ์ฃผ์š” ๊ธฐ์ˆ  ๋…ผ์Ÿ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ž์ฒด ์ข…์†์„ฑ์— ๋Œ€ํ•ด ์ „์—ญ์ ์œผ๋กœ ์กด์ค‘๋˜๋Š” ์ œ์•ฝ ์กฐ๊ฑด์„ ์„ ์–ธํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์š”์•ฝ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

GPS2๊ฐ€ vgo ์–‘์ธก์ด ์ข‹์•„ํ•˜๋Š” ๋ถ€๋ถ„์— ์–ด๋–ป๊ฒŒ ๋งž์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํƒ๊ตฌํ•˜๋Š” ๊ฒฝ์Ÿ ์ œ์•ˆ์„ ์Šน์ธํ•˜๋Š” ๋ฐ ์–‘์ธก์ด ๋™์˜ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด ์‹œ์ ์—์„œ ๋‚˜๋Š” GPS2๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์‹ฌ์ง€์–ด ์ข‹์€ ์•„์ด๋””์–ด๋ผ๋Š” ํ™•์‹ ์ด ์—†์Šต๋‹ˆ๋‹ค. ์œ„์— ๋‚˜์—ดํ•œ ๊ธฐ๋Šฅ์€ MVS( ์ด๊ฒƒ ๋˜๋Š” ์ด๊ฒƒ ์ฒ˜๋Ÿผ) ์œ„์— vgo๋กœ ๊ฐœ์กฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ @sdboyer ์˜ ๋‹ค์Œ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์— MVS ์ž์ฒด์— ๋Œ€ํ•œ ์ข‹์€ ์ฃผ์žฅ์ด ํฌํ•จ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ ๋‹น์žฅ์€ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ํŠนํžˆ vgo์˜ ์ƒ๋‹นํ•œ UX ์ด์ ์„ ์š”ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ์ „ํ˜€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ๊ณต์ •ํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด, ๋‚˜๋Š” ๋˜ํ•œ ๊ทธ๊ฒƒ์„ ์‹คํ—˜ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ค ์ด์œ ๋„ ๋ณด์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

dep๋Š” ์˜ค๋Š˜๋‚  ์ข‹์€ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

๋™์˜ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์ง€๋งŒ SAT ํ•ด๊ฒฐ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ์ง์ ‘ ์ถ”์  ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์ด ๋ถˆํ‰ํ•˜๋Š” ๊ณณ์—์„œ ์—ฌ์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” deps ์ „์ฒด ๋””์ž์ธ์— ๋Œ€ํ•ด ๋งค์šฐ ๋ถˆํ–‰ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์ข…์†์„ฑ ์†”๋ฒ„ ์ž์ฒด์— ๋Œ€ํ•œ ์งˆ๋ฌธ์€ ์ œ์™ธํ•˜๊ณ  ์ผ๋ฐ˜์ ์ธ ์›Œํฌํ”Œ๋กœ ๋ฐ UX).

  1. ์•„๋ฌด๋„ ์šฐ์—ฐํžˆ๋ผ๋„ 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 ๊ฐ€ ์†”๋ฃจ์…˜์„ ์ฐพ๊ณ  ํ•ด๋‹น ์†”๋ฃจ์…˜์— ์ž˜๋ชป๋œ ๋ฒ„์ „์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ์šฐ๋ฆฌ๊ฐ€ ํ”ผํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋‚˜์œ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค๋Š” ์ ์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ›Œ๋ฅญํ•œ ์˜ˆ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋น„๋””์˜ค๋ฅผ ์‹ค์ œ๋กœ ๋ณด์•„์•ผ ํ•˜์ง€๋งŒ ์ดํ•ด/๊ธฐ์–ตํ•˜๋Š” ์š”์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํŒจํ‚ค์ง€ ๋ฒ„์ „(์ข…์†์„ฑ ์š”๊ตฌ ์‚ฌํ•ญ ํฌํ•จ)์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ํŒจํ‚ค์ง€์˜ ๊ธฐ์กด ์ข…์†์„ฑ์— ์ตœ๋Œ€ ๋ฒ„์ „ ์ œํ•œ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ํŒจํ‚ค์ง€์˜ ์ƒˆ ๋ฒ„์ „์„ ๊ฒŒ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด 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๊ฐ€ ๋ฏธ๋ž˜์— ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉด ๋ฆด๋ฆฌ์Šค ์‹œ์ ์—์„œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ง€์ •ํ•˜์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ตœ์†Œ ๋ฒ„์ „ ์š”๊ตฌ ์‚ฌํ•ญ ์ด์™ธ์˜ ๋‹ค๋ฅธ ๊ฒƒ์„ ์ •์˜ํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๊ฐ–๊ณ  ์‹ถ๋‹ค๋ฉด ํ•ด๋‹น ์š”๊ตฌ ์‚ฌํ•ญ์€ ํŠน์ • ๋ฆด๋ฆฌ์Šค์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹ˆ์–ด์•ผ ํ•˜๋ฉฐ ๋Œ€์‹  ํŒจํ‚ค์ง€์™€ ๊ด€๋ จ๋œ ์ผ์ข…์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ์ž์ฒด๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๊ณ  ์–ธ์ œ๋“ ์ง€. ์ฆ‰, "์ด ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ" ์ž‘์—…์€ "ํ˜„์žฌ ํŒจํ‚ค์ง€ ๋ฒ„์ „์ด ํ˜ธํ™˜๋˜๋Š”์ง€ ํ™•์ธ" ์ž‘์—…๊ณผ ๋ถ„๋ฆฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ถ”๊ฐ€๋กœ ์ฃผ์žฅํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์œ„์˜ ๊ฒƒ๋ณด๋‹ค ํ™•์‹คํžˆ ๋” ๋ฏธ์•ฝํ•ฉ๋‹ˆ๋‹ค. "ํ˜„์žฌ ํŒจํ‚ค์ง€ ๋ฒ„์ „์ด ํ˜ธํ™˜๋˜๋Š”์ง€ ํ™•์ธ"์ด ์‹คํŒจํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋„๊ตฌ๋„ ์‹ ๋ขฐํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ํ˜„๋ช…ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. "๋ชจ๋“  ๊ด€๋ จ ํŒจํ‚ค์ง€๋ฅผ ํ˜„์žฌ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ"ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์ž‘์—…์œผ๋กœ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ์ƒ๊ฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋„๊ตฌ๋Š” ๊ทธ๋Ÿฌํ•œ ์ƒ๊ฐ์„ ์•ˆ๋‚ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๊ฒƒ์„ ๋Œ€์ฒดํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋„๊ตฌ๊ฐ€ ์ž๋™์œผ๋กœ ํŒจํ‚ค์ง€ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ํ˜„๋ช…ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๊ฐ€ ์ธก๋ฉด์—์„œ ์ƒ๊ฐํ•˜๋ฉด

  1. ํŒจํ‚ค์ง€ ๋น„ํ˜ธํ™˜์„ฑ์„ ์„ค๋ช…ํ•˜๋Š” ํŒจํ‚ค์ง€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•
  2. ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ˜„์žฌ ํŒจํ‚ค์ง€๊ฐ€ ํ˜ธํ™˜๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๋„๊ตฌ

๊ทธ๋Ÿฌ๋ฉด 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 ๋ ˆ์ด๋ธ” ์ฐธ์กฐ) ์ด ๋ฌธ์ œ์—์„œ ์ œ์•ˆํ•œ ์ดˆ๊ธฐ ๋ชจ๋“ˆ ๊ตฌํ˜„์ด ๋ฉ”์ธ ํŠธ๋ฆฌ์— ์ปค๋ฐ‹๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰